From d8b22e9db6b143e1e8d469469decdf83e48f77a5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 11 Aug 2025 01:37:51 +0000 Subject: [PATCH] Sync latest dev docs --- docs/api/qiskit-c/dev/_toc.json | 4 + docs/api/qiskit-c/dev/index.mdx | 5 +- .../dev/qk-elide-permutations-result.mdx | 102 +++ docs/api/qiskit-c/dev/qk-target-entry.mdx | 38 +- docs/api/qiskit-c/dev/qk-target.mdx | 100 +-- .../api/qiskit-c/dev/qk-transpiler-passes.mdx | 108 ++- .../qiskit-c/dev/qk-vf-2-layout-result.mdx | 18 +- .../dev/execution-span-double-slice-span.mdx | 12 +- .../dev/execution-span-execution-span.mdx | 12 +- .../dev/execution-span-slice-span.mdx | 12 +- .../dev/execution-span-twirled-slice-span.mdx | 16 +- .../dev/fake-provider-fake-algiers.mdx | 39 +- .../dev/fake-provider-fake-almaden-v2.mdx | 37 +- .../dev/fake-provider-fake-armonk-v2.mdx | 39 +- .../dev/fake-provider-fake-athens-v2.mdx | 39 +- .../dev/fake-provider-fake-auckland.mdx | 39 +- .../dev/fake-provider-fake-belem-v2.mdx | 39 +- .../dev/fake-provider-fake-boeblingen-v2.mdx | 39 +- .../dev/fake-provider-fake-bogota-v2.mdx | 39 +- .../dev/fake-provider-fake-brisbane.mdx | 39 +- .../dev/fake-provider-fake-brooklyn-v2.mdx | 39 +- .../dev/fake-provider-fake-burlington-v2.mdx | 37 +- .../dev/fake-provider-fake-cairo-v2.mdx | 39 +- .../dev/fake-provider-fake-cambridge-v2.mdx | 37 +- .../dev/fake-provider-fake-casablanca-v2.mdx | 39 +- .../dev/fake-provider-fake-cusco.mdx | 39 +- .../dev/fake-provider-fake-essex-v2.mdx | 37 +- .../dev/fake-provider-fake-fez.mdx | 39 +- .../fake-provider-fake-fractional-backend.mdx | 39 +- .../dev/fake-provider-fake-geneva.mdx | 39 +- .../dev/fake-provider-fake-guadalupe-v2.mdx | 39 +- .../dev/fake-provider-fake-hanoi-v2.mdx | 39 +- .../dev/fake-provider-fake-jakarta-v2.mdx | 39 +- .../fake-provider-fake-johannesburg-v2.mdx | 37 +- .../dev/fake-provider-fake-kawasaki.mdx | 39 +- .../dev/fake-provider-fake-kolkata-v2.mdx | 39 +- .../dev/fake-provider-fake-kyiv.mdx | 39 +- .../dev/fake-provider-fake-kyoto.mdx | 39 +- .../dev/fake-provider-fake-lagos-v2.mdx | 39 +- .../dev/fake-provider-fake-lima-v2.mdx | 39 +- .../dev/fake-provider-fake-london-v2.mdx | 37 +- .../dev/fake-provider-fake-manhattan-v2.mdx | 39 +- .../dev/fake-provider-fake-manila-v2.mdx | 39 +- .../dev/fake-provider-fake-marrakesh.mdx | 39 +- .../dev/fake-provider-fake-melbourne-v2.mdx | 37 +- .../dev/fake-provider-fake-montreal-v2.mdx | 39 +- .../dev/fake-provider-fake-mumbai-v2.mdx | 39 +- .../dev/fake-provider-fake-nairobi-v2.mdx | 39 +- .../dev/fake-provider-fake-osaka.mdx | 39 +- .../dev/fake-provider-fake-oslo.mdx | 39 +- .../dev/fake-provider-fake-ourense-v2.mdx | 37 +- .../dev/fake-provider-fake-paris-v2.mdx | 39 +- .../dev/fake-provider-fake-peekskill.mdx | 39 +- .../dev/fake-provider-fake-perth.mdx | 39 +- .../fake-provider-fake-poughkeepsie-v2.mdx | 39 +- .../dev/fake-provider-fake-prague.mdx | 37 +- .../dev/fake-provider-fake-quebec.mdx | 39 +- .../dev/fake-provider-fake-quito-v2.mdx | 39 +- .../dev/fake-provider-fake-rochester-v2.mdx | 37 +- .../dev/fake-provider-fake-rome-v2.mdx | 39 +- .../dev/fake-provider-fake-santiago-v2.mdx | 39 +- .../dev/fake-provider-fake-sherbrooke.mdx | 39 +- .../dev/fake-provider-fake-singapore-v2.mdx | 37 +- .../dev/fake-provider-fake-sydney-v2.mdx | 39 +- .../dev/fake-provider-fake-torino.mdx | 39 +- .../dev/fake-provider-fake-toronto-v2.mdx | 39 +- .../dev/fake-provider-fake-valencia-v2.mdx | 39 +- .../dev/fake-provider-fake-vigo-v2.mdx | 37 +- .../dev/fake-provider-fake-washington-v2.mdx | 39 +- .../dev/fake-provider-fake-yorktown-v2.mdx | 37 +- .../qiskit-ibm-runtime/dev/ibm-backend.mdx | 40 +- .../dev/qiskit-runtime-service.mdx | 28 +- .../dev/runtime-decoder.mdx | 4 +- .../dev/runtime-encoder.mdx | 4 +- .../dev/transpiler-passes-fold-rzz-angle.mdx | 4 +- docs/api/qiskit/dev/_toc.json | 8 + docs/api/qiskit/dev/circuit.mdx | 16 +- docs/api/qiskit/dev/qasm3.mdx | 10 +- .../dev/qiskit.circuit.AnnotatedOperation.mdx | 4 +- .../qiskit/dev/qiskit.circuit.Parameter.mdx | 163 +++-- .../qiskit.circuit.ParameterExpression.mdx | 163 ++--- .../dev/qiskit.circuit.ParameterVector.mdx | 6 +- .../qiskit.circuit.ParameterVectorElement.mdx | 157 +++-- .../dev/qiskit.circuit.QuantumCircuit.mdx | 34 +- .../qiskit/dev/qiskit.circuit.library.AND.mdx | 464 ------------- ...t.circuit.library.CDKMRippleCarryAdder.mdx | 474 -------------- .../dev/qiskit.circuit.library.Diagonal.mdx | 464 ------------- .../qiskit.circuit.library.DraperQFTAdder.mdx | 474 -------------- .../qiskit.circuit.library.EfficientSU2.mdx | 584 ----------------- ....circuit.library.EvolvedOperatorAnsatz.mdx | 574 ---------------- ...qiskit.circuit.library.ExactReciprocal.mdx | 464 ------------- ...t.circuit.library.ExcitationPreserving.mdx | 584 ----------------- ...qiskit.circuit.library.FourierChecking.mdx | 464 ------------- ...rcuit.library.FunctionalPauliRotations.mdx | 452 ------------- .../qiskit/dev/qiskit.circuit.library.GMS.mdx | 464 ------------- .../qiskit/dev/qiskit.circuit.library.GR.mdx | 464 ------------- .../qiskit/dev/qiskit.circuit.library.GRX.mdx | 464 ------------- .../qiskit/dev/qiskit.circuit.library.GRY.mdx | 464 ------------- .../qiskit/dev/qiskit.circuit.library.GRZ.mdx | 464 ------------- ...qiskit.circuit.library.GlobalPhaseGate.mdx | 2 +- .../dev/qiskit.circuit.library.GraphState.mdx | 464 ------------- .../qiskit.circuit.library.GroverOperator.mdx | 464 ------------- ...ircuit.library.HRSCumulativeMultiplier.mdx | 484 -------------- ...t.circuit.library.HiddenLinearFunction.mdx | 464 ------------- .../qiskit/dev/qiskit.circuit.library.IQP.mdx | 464 ------------- .../qiskit.circuit.library.InnerProduct.mdx | 464 ------------- ...skit.circuit.library.IntegerComparator.mdx | 452 ------------- ...ircuit.library.LinearAmplitudeFunction.mdx | 464 ------------- ...t.circuit.library.LinearPauliRotations.mdx | 484 -------------- .../dev/qiskit.circuit.library.MCMT.mdx | 464 ------------- .../dev/qiskit.circuit.library.MCMTVChain.mdx | 464 ------------- .../qiskit.circuit.library.MCXGrayCode.mdx | 117 +--- .../qiskit.circuit.library.MCXRecursive.mdx | 117 +--- .../dev/qiskit.circuit.library.MCXVChain.mdx | 115 ---- .../dev/qiskit.circuit.library.NLocal.mdx | 446 ------------- .../qiskit/dev/qiskit.circuit.library.OR.mdx | 464 ------------- ...kit.circuit.library.PauliEvolutionGate.mdx | 4 +- ...qiskit.circuit.library.PauliFeatureMap.mdx | 568 ---------------- .../qiskit.circuit.library.PauliTwoDesign.mdx | 578 ----------------- .../qiskit.circuit.library.Permutation.mdx | 464 ------------- ...qiskit.circuit.library.PhaseEstimation.mdx | 464 ------------- .../qiskit.circuit.library.PhaseOracle.mdx | 464 ------------- ...kit.circuit.library.PiecewiseChebyshev.mdx | 452 ------------- ....library.PiecewiseLinearPauliRotations.mdx | 484 -------------- ...rary.PiecewisePolynomialPauliRotations.mdx | 484 -------------- ...rcuit.library.PolynomialPauliRotations.mdx | 484 -------------- .../dev/qiskit.circuit.library.QAOAAnsatz.mdx | 564 ---------------- .../qiskit/dev/qiskit.circuit.library.QFT.mdx | 446 ------------- .../qiskit.circuit.library.QuadraticForm.mdx | 464 ------------- .../qiskit.circuit.library.QuantumVolume.mdx | 464 ------------- ...qiskit.circuit.library.RGQFTMultiplier.mdx | 484 -------------- .../dev/qiskit.circuit.library.RGate.mdx | 4 +- .../qiskit.circuit.library.RealAmplitudes.mdx | 584 ----------------- .../dev/qiskit.circuit.library.TwoLocal.mdx | 594 ----------------- .../dev/qiskit.circuit.library.U2Gate.mdx | 4 +- .../qiskit.circuit.library.UnitaryOverlap.mdx | 464 ------------- ...it.circuit.library.VBERippleCarryAdder.mdx | 474 -------------- .../qiskit.circuit.library.WeightedAdder.mdx | 452 ------------- .../qiskit/dev/qiskit.circuit.library.XOR.mdx | 464 ------------- .../qiskit.circuit.library.ZFeatureMap.mdx | 614 ------------------ .../qiskit.circuit.library.ZZFeatureMap.mdx | 614 ------------------ .../qiskit.passmanager.BasePassManager.mdx | 6 +- ...nthesis.unitary.aqc.ApproximateCircuit.mdx | 464 ------------- ....synthesis.unitary.aqc.CNOTUnitCircuit.mdx | 464 ------------- ...ynthesis.unitary.aqc.CNOTUnitObjective.mdx | 6 - ...s.unitary.aqc.DefaultCNOTUnitObjective.mdx | 20 - ...esis.unitary.aqc.FastCNOTUnitObjective.mdx | 20 - .../dev/qiskit.transpiler.PassManager.mdx | 16 +- .../qiskit.transpiler.StagedPassManager.mdx | 18 +- ...transpiler.passes.ALAPScheduleAnalysis.mdx | 4 +- ...spiler.passes.InstructionDurationCheck.mdx | 4 +- ....transpiler.passes.InverseCancellation.mdx | 33 +- .../dev/qiskit.transpiler.passes.PadDelay.mdx | 4 +- ...anspiler.passes.PadDynamicalDecoupling.mdx | 4 +- ...is.hls_plugins.ACGSynthesisPermutation.mdx | 4 +- ...thesis.hls_plugins.AGSynthesisClifford.mdx | 4 +- ...thesis.hls_plugins.BMSynthesisClifford.mdx | 4 +- ....hls_plugins.BasicSynthesisPermutation.mdx | 4 +- ...s.hls_plugins.DefaultSynthesisClifford.mdx | 4 +- ...plugins.DefaultSynthesisLinearFunction.mdx | 4 +- ...esis.hls_plugins.FullAdderSynthesisC04.mdx | 4 +- ....hls_plugins.FullAdderSynthesisDefault.mdx | 4 +- ...esis.hls_plugins.FullAdderSynthesisV95.mdx | 4 +- ...is.hls_plugins.GreedySynthesisClifford.mdx | 4 +- ...esis.hls_plugins.HalfAdderSynthesisC04.mdx | 4 +- ...esis.hls_plugins.HalfAdderSynthesisD00.mdx | 4 +- ....hls_plugins.HalfAdderSynthesisDefault.mdx | 4 +- ...esis.hls_plugins.HalfAdderSynthesisR25.mdx | 4 +- ...esis.hls_plugins.HalfAdderSynthesisV95.mdx | 4 +- ...s.hls_plugins.IntComparatorSynthesis2s.mdx | 4 +- ..._plugins.IntComparatorSynthesisDefault.mdx | 4 +- ...ls_plugins.IntComparatorSynthesisNoAux.mdx | 4 +- ...hls_plugins.KMSSynthesisLinearFunction.mdx | 4 +- ...is.hls_plugins.KMSSynthesisPermutation.mdx | 4 +- ....hls_plugins.LayerLnnSynthesisClifford.mdx | 4 +- ...sis.hls_plugins.LayerSynthesisClifford.mdx | 4 +- ...hesis.hls_plugins.MCMTSynthesisDefault.mdx | 4 +- ...nthesis.hls_plugins.MCMTSynthesisNoAux.mdx | 4 +- ...thesis.hls_plugins.MCMTSynthesisVChain.mdx | 4 +- ...nthesis.hls_plugins.MCMTSynthesisXGate.mdx | 42 ++ ...esis.hls_plugins.MCXSynthesis1CleanB95.mdx | 4 +- ...sis.hls_plugins.MCXSynthesis1CleanKG24.mdx | 6 +- ...sis.hls_plugins.MCXSynthesis1DirtyKG24.mdx | 6 +- ...sis.hls_plugins.MCXSynthesis2CleanKG24.mdx | 6 +- ...sis.hls_plugins.MCXSynthesis2DirtyKG24.mdx | 6 +- ...thesis.hls_plugins.MCXSynthesisDefault.mdx | 4 +- ...hesis.hls_plugins.MCXSynthesisGrayCode.mdx | 4 +- ...esis.hls_plugins.MCXSynthesisNCleanM15.mdx | 4 +- ...esis.hls_plugins.MCXSynthesisNDirtyI15.mdx | 4 +- ...esis.hls_plugins.MCXSynthesisNoAuxHP24.mdx | 34 + ...hesis.hls_plugins.MCXSynthesisNoAuxV24.mdx | 6 +- ...s.hls_plugins.ModularAdderSynthesisC04.mdx | 4 +- ...s.hls_plugins.ModularAdderSynthesisD00.mdx | 4 +- ...s_plugins.ModularAdderSynthesisDefault.mdx | 4 +- ...s.hls_plugins.ModularAdderSynthesisV95.mdx | 4 +- ...sis.hls_plugins.MultiplierSynthesisH18.mdx | 4 +- ...sis.hls_plugins.MultiplierSynthesisR17.mdx | 4 +- ...hls_plugins.PMHSynthesisLinearFunction.mdx | 4 +- ...plugins.PauliEvolutionSynthesisDefault.mdx | 4 +- ..._plugins.PauliEvolutionSynthesisRustiq.mdx | 4 +- ...synthesis.hls_plugins.QFTSynthesisFull.mdx | 4 +- ...synthesis.hls_plugins.QFTSynthesisLine.mdx | 4 +- ...ugins.TokenSwapperSynthesisPermutation.mdx | 4 +- ...ls_plugins.WeightedSumSynthesisDefault.mdx | 4 +- ...t.visualization.plot_bloch_multivector.mdx | 2 +- ...qiskit.visualization.plot_bloch_vector.mdx | 4 +- ...qiskit.visualization.plot_distribution.mdx | 2 +- .../qiskit.visualization.plot_histogram.mdx | 2 +- .../qiskit.visualization.plot_state_city.mdx | 6 +- ...qiskit.visualization.plot_state_hinton.mdx | 6 +- ...skit.visualization.plot_state_paulivec.mdx | 4 +- ...iskit.visualization.plot_state_qsphere.mdx | 4 +- docs/api/qiskit/dev/synthesis.mdx | 146 ++++- .../dev/transpiler_synthesis_plugins.mdx | 24 +- public/docs/api/qiskit-c/dev/objects.inv | Bin 2937 -> 3110 bytes .../api/qiskit-ibm-runtime/dev/objects.inv | Bin 54477 -> 52350 bytes public/docs/api/qiskit/dev/objects.inv | Bin 75655 -> 62291 bytes .../dev/fake_provider-3.avif | Bin 5413 -> 5336 bytes .../dev/twirling_strategy_options.avif | Bin 30650 -> 30650 bytes .../api/qiskit/dev/circuit_library-6_01.avif | Bin 81450 -> 81212 bytes .../api/qiskit/dev/circuit_random-1.avif | Bin 8260 -> 7438 bytes .../api/qiskit/dev/circuit_random-3.avif | Bin 5989 -> 5917 bytes .../dev/providers_fake_provider-1_01.avif | Bin 17490 -> 17696 bytes .../dev/providers_fake_provider-1_02.avif | Bin 4830 -> 4810 bytes .../dev/qiskit-circuit-ControlledGate-1.avif | Bin 1972 -> 1972 bytes .../dev/qiskit-circuit-ControlledGate-2.avif | Bin 7056 -> 7177 bytes .../dev/qiskit-circuit-Parameter-1_00.avif | Bin 1170 -> 1170 bytes .../qiskit-circuit-QuantumCircuit-15_00.avif | Bin 2008 -> 2008 bytes .../qiskit-circuit-QuantumCircuit-15_01.avif | Bin 2004 -> 2004 bytes .../qiskit-circuit-QuantumCircuit-16_00.avif | Bin 1930 -> 1930 bytes .../qiskit-circuit-QuantumCircuit-16_01.avif | Bin 2086 -> 2086 bytes .../dev/qiskit-circuit-QuantumCircuit-31.avif | Bin 1797 -> 1797 bytes .../dev/qiskit-circuit-library-AndGate-1.avif | Bin 25066 -> 24938 bytes .../dev/qiskit-circuit-library-AndGate-2.avif | Bin 20087 -> 20191 bytes ...skit-circuit-library-BitwiseXorGate-1.avif | Bin 23378 -> 23413 bytes ...qiskit-circuit-library-InnerProduct-1.avif | Bin 22600 -> 21957 bytes ...it-circuit-library-InnerProductGate-1.avif | Bin 20014 -> 19996 bytes .../dev/qiskit-circuit-library-OrGate-1.avif | Bin 24912 -> 24729 bytes .../dev/qiskit-circuit-library-OrGate-2.avif | Bin 21940 -> 21720 bytes ...kit-circuit-library-PermutationGate-2.avif | Bin 20975 -> 20886 bytes ...kit-circuit-library-PhaseEstimation-1.avif | Bin 14823 -> 14681 bytes ...it-circuit-library-phase_estimation-1.avif | Bin 17941 -> 17957 bytes .../qiskit-circuit-library-random_iqp-1.avif | Bin 7150 -> 7518 bytes ...kit-circuit-library-unitary_overlap-1.avif | Bin 13354 -> 13050 bytes .../qiskit-quantum_info-Statevector-1.avif | Bin 3694 -> 3694 bytes ...kit-transpiler-passes-FilterOpNodes-1.avif | Bin 971 -> 971 bytes ...it-transpiler-passes-RemoveBarriers-1.avif | Bin 1050 -> 1050 bytes ...qiskit-visualization-circuit_drawer-1.avif | Bin 1797 -> 1797 bytes ...t-visualization-plot_circuit_layout-1.avif | Bin 10434 -> 10539 bytes ...qiskit-visualization-plot_error_map-1.avif | Bin 49057 -> 49431 bytes ...kit-visualization-plot_histogram-1_01.avif | Bin 5492 -> 5492 bytes ...kit-visualization-plot_histogram-1_02.avif | Bin 5497 -> 5497 bytes ...kit-visualization-plot_state_hinton-1.avif | Bin 5510 -> 5510 bytes ...t-visualization-plot_state_paulivec-1.avif | Bin 7542 -> 7542 bytes ...iskit-visualization-timeline_drawer-1.avif | Bin 16342 -> 16176 bytes ...iskit-visualization-timeline_drawer-2.avif | Bin 11025 -> 11109 bytes ...iskit-visualization-timeline_drawer-3.avif | Bin 26530 -> 26457 bytes .../images/api/qiskit/dev/transpiler-10.avif | Bin 19227 -> 19412 bytes .../images/api/qiskit/dev/transpiler-9.avif | Bin 25328 -> 24388 bytes .../api/qiskit/dev/visualization-1.avif | Bin 3944 -> 3944 bytes .../api/qiskit/dev/visualization-3.avif | Bin 3735 -> 3735 bytes scripts/config/api-html-artifacts.json | 4 +- .../config/historical-pages-to-latest.json | 6 +- 263 files changed, 1538 insertions(+), 28203 deletions(-) create mode 100644 docs/api/qiskit-c/dev/qk-elide-permutations-result.mdx create mode 100644 docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate.mdx create mode 100644 docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24.mdx diff --git a/docs/api/qiskit-c/dev/_toc.json b/docs/api/qiskit-c/dev/_toc.json index 60616db84ce..c27c9338bbb 100644 --- a/docs/api/qiskit-c/dev/_toc.json +++ b/docs/api/qiskit-c/dev/_toc.json @@ -21,6 +21,10 @@ "title": "QkComplex64", "url": "/docs/api/qiskit-c/dev/qk-complex-64" }, + { + "title": "QkElidePermutationsResult", + "url": "/docs/api/qiskit-c/dev/qk-elide-permutations-result" + }, { "title": "QkExitCode", "url": "/docs/api/qiskit-c/dev/qk-exit-code" diff --git a/docs/api/qiskit-c/dev/index.mdx b/docs/api/qiskit-c/dev/index.mdx index 36a50cf31b4..93c921914f1 100644 --- a/docs/api/qiskit-c/dev/index.mdx +++ b/docs/api/qiskit-c/dev/index.mdx @@ -34,8 +34,9 @@ As this interface is still new in Qiskit it should be considered experimental an Using the transpiler from the C API is intended to only cover circuits created solely via the C API. If you are in a hybrid mode where you’re using the C API with Python you should invoke the transpiler via the Python [`qiskit.transpiler`](/docs/api/qiskit/dev/transpiler#module-qiskit.transpiler "qiskit.transpiler") module instead; the functionality is the same Rust internals they just offer different entrypoints. The C API for transpilation makes assumptions about the input only using constructs exposed to the C Quantum Circuit API and you will potentially get incomplete results transpiling circuits from Python via the C API. -* [Transpiler Passes](qk-transpiler-passes) -* [QkVF2LayoutResult](qk-vf-2-layout-result) * [QkTarget](qk-target) * [QkTargetEntry](qk-target-entry) +* [Transpiler Passes](qk-transpiler-passes) +* [QkVF2LayoutResult](qk-vf-2-layout-result) +* [QkElidePermutationsResult](qk-elide-permutations-result) diff --git a/docs/api/qiskit-c/dev/qk-elide-permutations-result.mdx b/docs/api/qiskit-c/dev/qk-elide-permutations-result.mdx new file mode 100644 index 00000000000..76889e89fea --- /dev/null +++ b/docs/api/qiskit-c/dev/qk-elide-permutations-result.mdx @@ -0,0 +1,102 @@ +--- +title: QkElidePermutationsResult (dev version) +description: API reference for QkElidePermutationsResult in the dev version of qiskit-c +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: QkElidePermutationsResult +--- + +# QkElidePermutationsResult + +```c +typedef struct QkElidePermutationsResult QkElidePermutationsResult +``` + +When running the `qk_transpiler_pass_standalone_elide_permutations` function it returns a modified circuit and a permutation array as a QkElidePermutationsResult object. This object contains the outcome of the transpiler pass, whether the pass was able to elide any gates or not, and what the results of that elision were. + +## Functions + +### qk\_elide\_permutations\_result\_elided\_gates + + + Check whether the elide permutations was able to elide anything + + + + #### Safety + + + + Behavior is undefined if `result` is not a valid, non-null pointer to a `QkElidePermutationsResult`. + + **Parameters** + + **result** – a pointer to the result + + **Returns** + + `true` if the `qk_transpiler_pass_standalone_elide_permutations()` run elided any gates + + +### qk\_elide\_permutations\_result\_circuit + + + Get the circuit from the elide permutations result + + + + #### Safety + + + + Behavior is undefined if `result` is not a valid, non-null pointer to a `QkElidePermutationsResult`. The pointer to the returned circuit is owned by the result object, it should not be passed to `qk_circuit_free()` as it will be freed by `qk_elide_permutations_result_free()`. + + **Parameters** + + **result** – a pointer to the result of the pass. It must have elided gates as checked by `qk_elide_permutations_result_elided_gates()` + + **Returns** + + A pointer to the circuit with the permutation gates elided + + +### qk\_elide\_permutations\_result\_permutation + + + Get the permutation array for the elided gates + + + + #### Safety + + + + Behavior is undefined if `layout` is not a valid, non-null pointer to a `QkElidePermutationsResult`. Also qubit must be a valid qubit for the circuit and there must be a result found. The pointer to the permutation array is owned by the result object, it should not be passed to `free()` as it will be freed by `qk_elide_permutations_result_free()` when that is called. + + **Parameters** + + **result** – a pointer to the result of the pass. It must have elided gates as checked by `qk_elide_permutations_result_elided_gates()` + + **Returns** + + A pointer to the permutation array caused by the swap elision performed by the pass. This array has a length equal to the number of qubits of the circuit returned by `qk_elide_permutations_result_elided_gates()` (or the circuit passed into `qk_transpiler_pass_standalone_elide_permutations()`). The permutation array maps the virtual qubit in the original circuit at each index to its new output position after all the elision performed by the pass. For example, and array of `[2, 1, 0]` means that qubit 0 is now in qubit 2 on the output of the circuit and qubit 2’s is now at 0 (qubit 1 remains unchanged) + + +### qk\_elide\_permutations\_result\_free + + + Free a `QkElidePermutationsResult` object + + + + #### Safety + + + + Behavior is undefined if `layout` is not a valid, non-null pointer to a `QkElidePermutationsResult`. + + **Parameters** + + **result** – a pointer to the result object to free + + diff --git a/docs/api/qiskit-c/dev/qk-target-entry.mdx b/docs/api/qiskit-c/dev/qk-target-entry.mdx index e233cb11fd8..3d77526ba84 100644 --- a/docs/api/qiskit-c/dev/qk-target-entry.mdx +++ b/docs/api/qiskit-c/dev/qk-target-entry.mdx @@ -36,9 +36,9 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); ### qk\_target\_entry\_new - Creates an entry to the `QkTarget` based on a `QkGate` instance with no parameters. + Creates an entry to the `QkTarget` based on a `QkGate` instance. - + #### Example @@ -46,13 +46,9 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); QkTargetEntry *entry = qk_target_entry_new(QkGate_H); ``` - - If the instance of `QkGate` uses fixed parameters, use `qk_target_entry_new_fixed`. Regular parameters are not currently supported. - - **Parameters** - **operation** – The `QkGate` whose properties this target entry defines. + **operation** – The `QkGate` whose properties this target entry defines. If the `QkGate` takes parameters (which can be checked with `qk_gate_num_params`) it will be added as a an instruction on the target which accepts any parameter value. If the gate only accepts a fixed parameter value you can use `qk_target_entry_new_fixed` instead. **Returns** @@ -64,7 +60,7 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); Creates a new entry for adding a measurement instruction to a `QkTarget`. - + #### Example @@ -92,7 +88,7 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); Creates a new entry for adding a reset instruction to a `QkTarget`. - + #### Example @@ -120,7 +116,7 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); Creates an entry to the `QkTarget` based on a `QkGate` instance with no parameters. - + #### Example @@ -129,11 +125,11 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); QkTargetEntry *entry = qk_target_entry_new(QkGate_CRX, crx_params); ``` - + #### Safety - + The `params` type is expected to be a pointer to an array of `double` where the length matches the the expectations of the `QkGate`. If the array is insufficently long the behavior of this function is undefined as this will read outside the bounds of the array. It can be a null pointer if there are no params for a given gate. You can check `qk_gate_num_params` to determine how many qubits are required for a given gate. @@ -156,7 +152,7 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); Retrieves the number of properties stored in the target entry. - + #### Example @@ -166,11 +162,11 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); size_t props_size = qk_target_entry_num_properties(entry); ``` - + #### Safety - + The behavior is undefined if `entry` is not a valid, non-null pointer to a `QkTargetEntry` object. @@ -188,7 +184,7 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); Frees the entry. - + #### Example @@ -197,11 +193,11 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); qk_target_entry_free(entry); ``` - + #### Safety - + The behavior is undefined if `entry` is not a valid, non-null pointer to a `QkTargetEntry` object. @@ -219,7 +215,7 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); Adds an instruction property instance based on its assigned qargs. - + #### Example @@ -229,11 +225,11 @@ qk_target_entry_add(entry, NULL, 0, NAN, 0.003); qk_target_entry_add_property(entry, qargs, 2, 0.0, 0.1); ``` - + #### Safety - + The behavior is undefined if `entry` is not a valid, non-null pointer to a `QkTargetEntry` object. diff --git a/docs/api/qiskit-c/dev/qk-target.mdx b/docs/api/qiskit-c/dev/qk-target.mdx index 775df13638d..27445c67e16 100644 --- a/docs/api/qiskit-c/dev/qk-target.mdx +++ b/docs/api/qiskit-c/dev/qk-target.mdx @@ -48,7 +48,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Construct a new `QkTarget` with the given number of qubits. The number of qubits is bound to change if an instruction is added with properties that apply to a collection of qargs in which any index is higher than the specified number of qubits - + #### Example @@ -70,7 +70,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Returns the number of qubits of this `QkTarget`. - + #### Example @@ -79,11 +79,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei uint32_t num_qubits = qk_target_num_qubits(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -101,7 +101,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Returns the dt value of this `QkTarget`. - + #### Example @@ -111,11 +111,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei double dt = qk_target_dt(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -133,7 +133,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Returns the granularity value of this `QkTarget`. - + #### Example @@ -143,11 +143,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei uint32_t granularity = qk_target_granularity(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -165,7 +165,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Returns the `min_length` value of this `QkTarget`. - + #### Example @@ -175,11 +175,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei size_t min_length = qk_target_min_length(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -197,7 +197,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Returns the `pulse_alignment` value of this `QkTarget`. - + #### Example @@ -207,11 +207,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei uint32_t pulse_alignment = qk_target_pulse_alignment(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -229,7 +229,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Returns the `acquire_alignment` value of this `QkTarget`. - + #### Example @@ -239,11 +239,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei uint32_t acquire_alignment = qk_target_pulse_alignment(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -261,7 +261,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Sets the dt value of this `QkTarget`. - + #### Example @@ -270,11 +270,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei double dt = qk_target_set_dt(target, 10e-9); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -293,7 +293,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Sets the `granularity` value of this `QkTarget`. - + #### Example @@ -303,11 +303,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei qk_target_set_granularity(target, 2); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -326,7 +326,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Sets the `min_length` value of this `QkTarget`. - + #### Example @@ -336,11 +336,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei qk_target_set_min_length(target, 3); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -359,7 +359,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Returns the `pulse_alignment` value of this `QkTarget`. - + #### Example @@ -369,11 +369,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei qk_target_set_pulse_alignment(target, 4); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -392,19 +392,19 @@ The Target C API currently only supports additions of `QkGate` instances with ei Sets the `acquire_alignment` value of this `QkTarget`. - + #### Example - + QkTarget \*target = qk\_target\_new(5); // The value defaults to 0 qk\_target\_set\_acquire\_alignment(target, 5); - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -423,7 +423,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Creates a copy of the `QkTarget`. - + #### Example @@ -437,11 +437,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei QkTarget *copied = qk_target_copy(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -459,7 +459,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Free the `QkTarget`. - + #### Example @@ -468,11 +468,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei qk_target_free(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -486,7 +486,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Adds a gate to the `QkTarget` through a `QkTargetEntry`. - + #### Example @@ -498,11 +498,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei QkExitCode result = qk_target_add_instruction(target, entry); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -523,7 +523,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Modifies the properties of a gate in the `QkTarget`. - + #### Example @@ -538,11 +538,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei qk_target_update_property(target, QkGate_CRX, qargs, 2, 0.0012, 1.1) ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. @@ -567,7 +567,7 @@ The Target C API currently only supports additions of `QkGate` instances with ei Returns the number of instructions tracked by a `QkTarget`. - + #### Example @@ -579,11 +579,11 @@ The Target C API currently only supports additions of `QkGate` instances with ei size_t num_instructions = qk_target_num_instructions(target); ``` - + #### Safety - + Behavior is undefined if `QkTarget` is not a valid, non-null pointer to a `QkTarget`. diff --git a/docs/api/qiskit-c/dev/qk-transpiler-passes.mdx b/docs/api/qiskit-c/dev/qk-transpiler-passes.mdx index c562042800d..dee4aae95f4 100644 --- a/docs/api/qiskit-c/dev/qk-transpiler-passes.mdx +++ b/docs/api/qiskit-c/dev/qk-transpiler-passes.mdx @@ -18,6 +18,108 @@ The Qiskit C API provides functions that execute transpiler passes in a standalo ## Functions +### qk\_transpiler\_pass\_standalone\_elide\_permutations + + + Run the ElidePermutations transpiler pass on a circuit. + + The ElidePermutations transpiler pass removes any permutation operations from a pre-layout circuit. + + This pass is intended to be run before a layout (mapping virtual qubits to physical qubits) is set during the transpilation pipeline. This pass iterates over the circuit and when a Swap gate is encountered it permutes the virtual qubits in the circuit and removes the swap gate. This will effectively remove any swap gates in the cirucit prior to running layout. This optimization is not valid after a layout has been set and should not be run in this case. + + + + #### Example + + ```c + QkCircuit *qc = qk_circuit_new(4, 0); + for (uint32_t i = 0; i < qk_circuit_num_qubits(qc) - 1; i++) { + uint32_t qargs[2] = {i, i + 1}; + for (uint32_t j = 0; j + + #### Safety + + + + Behavior is undefined if `circuit` is not a valid, non-null pointer to a `QkCircuit`. + + **Parameters** + + **circuit** – A pointer to the circuit to run ElidePermutations on + + **Returns** + + QkElidePermutationsResult object that contains the results of the pass + + +### qk\_transpiler\_pass\_standalone\_remove\_identity\_equivalent + + + Run the RemoveIdentityEquivalent transpiler pass on a circuit. + + Removes gates whose effect is close to an identity operation up to a global phase and up to the specified tolerance. Parameterized gates are not considered by this pass. + + For a cutoff fidelity $f$, this pass removes gates whose average gate fidelity with respect to the identity is below $f$. Concretely, a gate $G$ is removed if $\bar F < f$ where + +$$ + +bar{F} = \frac{1 + d F_{\text{process}}}{1 + d},\ + +F_{\text{process}} = \frac{|\mathrm{Tr}(G)|^2}{d^2} + +$$ + + where $d = 2^n$ is the dimension of the gate for $n$ qubits. + + + + #### Example + + ```c + QkTarget *target = qk_target_new(5) + QkTargetEntry *cx_entry = qk_target_entry_new(QkGate_CX); + for (uint32_t i = 0; i < current_num_qubits - 1; i++) { + uint32_t qargs[2] = {i, i + 1}; + double inst_error = 0.0090393 * (current_num_qubits - i); + double inst_duration = 0.020039; + qk_target_entry_add_property(cx_entry, qargs, 2, inst_duration, inst_error); + } + QkExitCode result_cx = qk_target_add_instruction(target, cx_entry); + QkCircuit *qc = qk_circuit_new(4, 0); + for (uint32_t i = 0; i < qk_circuit_num_qubits(qc) - 1; i++) { + uint32_t qargs[2] = {i, i + 1}; + for (uint32_t j = 0; j + + #### Safety + + + + Behavior is undefined if `circuit` or `target` is not a valid, non-null pointer to a `QkCircuit` and `QkTarget`. + + **Parameters** + + * **circuit** – A pointer to the circuit to run RemoveIdentityEquivalent on. This circuit pointed to will be updated with the modified circuit if the pass is able to remove any gates. + * **target** – The target for the RemoveIdentityEquivalent pass. If `approximation_degree` is set to `NAN` the tolerance for determining whether an operation is equivalent to identity will be set to the reported error rate in the target. Otherwise the `target` is not used as the tolerance is independent of the target. + * **approximation\_degree** – The degree to approximate for the equivalence check. This can be a floating point value between 0 and 1, or `NAN`. If the value is 1 this does not approximate above the floating point precision. For a value \< 1 this is used as a scaling factor for the cutoff fidelity. If the value is `NAN` this approximates up to the fidelity for the gate specified in `target`. + + ### qk\_transpiler\_pass\_standalone\_vf2\_layout @@ -29,7 +131,7 @@ The Qiskit C API provides functions that execute transpiler passes in a standalo By default, this pass will construct a heuristic scoring map based on the error rates in the provided `target` argument. The function will continue searching for layouts and use the heuristic scoring to return the layout which will run with the best estimated fidelity. - + #### Example @@ -54,11 +156,11 @@ The Qiskit C API provides functions that execute transpiler passes in a standalo qk_vf2_layout_result_free(layout_result); ``` - + #### Safety - + Behavior is undefined if `circuit` or `target` is not a valid, non-null pointer to a `QkCircuit` and `QkTarget`. diff --git a/docs/api/qiskit-c/dev/qk-vf-2-layout-result.mdx b/docs/api/qiskit-c/dev/qk-vf-2-layout-result.mdx index 49b4838ca84..add6e944ab4 100644 --- a/docs/api/qiskit-c/dev/qk-vf-2-layout-result.mdx +++ b/docs/api/qiskit-c/dev/qk-vf-2-layout-result.mdx @@ -21,11 +21,11 @@ When running the `qk_transpiler_pass_standalone_vf2_layout` function it returns Check whether a result was found. - + #### Safety - + Behavior is undefined if `layout` is not a valid, non-null pointer to a `QkVF2LayoutResult`. @@ -43,11 +43,11 @@ When running the `qk_transpiler_pass_standalone_vf2_layout` function it returns Get the number of virtual qubits in the layout. - + #### Safety - + Behavior is undefined if `layout` is not a valid, non-null pointer to a `QkVF2LayoutResult`. The result must have a layout found. @@ -65,11 +65,11 @@ When running the `qk_transpiler_pass_standalone_vf2_layout` function it returns Get the physical qubit for a given virtual qubit - + #### Safety - + Behavior is undefined if `layout` is not a valid, non-null pointer to a `QkVF2LayoutResult`. Also qubit must be a valid qubit for the circuit and there must be a result found. @@ -88,7 +88,7 @@ When running the `qk_transpiler_pass_standalone_vf2_layout` function it returns Free a `QkVF2LayoutResult` object - + #### Example @@ -96,11 +96,11 @@ When running the `qk_transpiler_pass_standalone_vf2_layout` function it returns QkCircuit *qc = qk_circuit_new(1, 0); ``` - + #### Safety - + Behavior is undefined if `layout` is not a valid, non-null pointer to a `QkVF2Layout`. diff --git a/docs/api/qiskit-ibm-runtime/dev/execution-span-double-slice-span.mdx b/docs/api/qiskit-ibm-runtime/dev/execution-span-double-slice-span.mdx index 659ec9a74c5..a40284d933b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/execution-span-double-slice-span.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/execution-span-double-slice-span.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.DoubleSliceSpan # DoubleSliceSpan - + Bases: [`ExecutionSpan`](execution-span-execution-span "qiskit_ibm_runtime.execution_span.execution_span.ExecutionSpan") An [`ExecutionSpan`](execution-span-execution-span "qiskit_ibm_runtime.execution_span.ExecutionSpan") for data stored in a sliceable format. @@ -53,7 +53,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.DoubleSliceSpan ### contains\_pub - + Return whether the pub with the given index has data with dependence on this span. **Parameters** @@ -71,7 +71,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.DoubleSliceSpan ### filter\_by\_pub - + Return a new span whose slices are filtered to the provided pub indices. For example, if this span contains slice information for pubs with indices 1, 3, 4 and `[1, 4]` is provided, then the span returned by this method will contain slice information for only those two indices, but be identical otherwise. @@ -91,7 +91,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.DoubleSliceSpan ### mask - + Return an array-valued mask specifying which parts of a pub result depend on this span. **Parameters** @@ -102,6 +102,10 @@ python_api_name: qiskit_ibm_runtime.execution_span.DoubleSliceSpan An array with the same shape as the pub data. + **Raises** + + **KeyError** – if the pub is not included in the span + **Return type** [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.3)")\[*Any*, [*dtype*](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.3)")\[[*bool*](https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.bool "(in NumPy v2.3)")]] diff --git a/docs/api/qiskit-ibm-runtime/dev/execution-span-execution-span.mdx b/docs/api/qiskit-ibm-runtime/dev/execution-span-execution-span.mdx index 8337b23d430..feec9309710 100644 --- a/docs/api/qiskit-ibm-runtime/dev/execution-span-execution-span.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/execution-span-execution-span.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan # ExecutionSpan - + Bases: `ABC` Abstract parent for classes that store an execution time span for a subset of job data. @@ -66,7 +66,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan ### contains\_pub - + Return whether the pub with the given index has data with dependence on this span. **Parameters** @@ -84,7 +84,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan ### filter\_by\_pub - + Return a new span whose slices are filtered to the provided pub indices. For example, if this span contains slice information for pubs with indices 1, 3, 4 and `[1, 4]` is provided, then the span returned by this method will contain slice information for only those two indices, but be identical otherwise. @@ -104,7 +104,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan ### mask - + Return an array-valued mask specifying which parts of a pub result depend on this span. **Parameters** @@ -115,6 +115,10 @@ python_api_name: qiskit_ibm_runtime.execution_span.ExecutionSpan An array with the same shape as the pub data. + **Raises** + + **KeyError** – if the pub is not included in the span + **Return type** [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.3)")\[*Any*, [*dtype*](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.3)")\[[*bool*](https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.bool "(in NumPy v2.3)")]] diff --git a/docs/api/qiskit-ibm-runtime/dev/execution-span-slice-span.mdx b/docs/api/qiskit-ibm-runtime/dev/execution-span-slice-span.mdx index 0abc0fd67c7..ba38b3d53cb 100644 --- a/docs/api/qiskit-ibm-runtime/dev/execution-span-slice-span.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/execution-span-slice-span.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan # SliceSpan - + Bases: [`ExecutionSpan`](execution-span-execution-span "qiskit_ibm_runtime.execution_span.execution_span.ExecutionSpan") An [`ExecutionSpan`](execution-span-execution-span "qiskit_ibm_runtime.execution_span.ExecutionSpan") for data stored in a sliceable format. @@ -53,7 +53,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan ### contains\_pub - + Return whether the pub with the given index has data with dependence on this span. **Parameters** @@ -71,7 +71,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan ### filter\_by\_pub - + Return a new span whose slices are filtered to the provided pub indices. For example, if this span contains slice information for pubs with indices 1, 3, 4 and `[1, 4]` is provided, then the span returned by this method will contain slice information for only those two indices, but be identical otherwise. @@ -91,7 +91,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan ### mask - + Return an array-valued mask specifying which parts of a pub result depend on this span. **Parameters** @@ -102,6 +102,10 @@ python_api_name: qiskit_ibm_runtime.execution_span.SliceSpan An array with the same shape as the pub data. + **Raises** + + **KeyError** – if the pub is not included in the span + **Return type** [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.3)")\[*Any*, [*dtype*](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.3)")\[[*bool*](https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.bool "(in NumPy v2.3)")]] diff --git a/docs/api/qiskit-ibm-runtime/dev/execution-span-twirled-slice-span.mdx b/docs/api/qiskit-ibm-runtime/dev/execution-span-twirled-slice-span.mdx index f8f7e2d55b3..3b6cc71807d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/execution-span-twirled-slice-span.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/execution-span-twirled-slice-span.mdx @@ -8,12 +8,12 @@ python_api_name: qiskit_ibm_runtime.execution_span.TwirledSliceSpan # TwirledSliceSpan - + Bases: [`ExecutionSpan`](execution-span-execution-span "qiskit_ibm_runtime.execution_span.execution_span.ExecutionSpan") An [`ExecutionSpan`](execution-span-execution-span "qiskit_ibm_runtime.execution_span.ExecutionSpan") for data stored in a sliceable format when twirling. - This type of execution span references pub result data that came from a twirled sampler experiment which was executed by either prepending or appending an axis to paramater values to account for twirling. Concretely, `data_slices` is a map from pub slices to tuples `(twirled_shape, at_front, shape_slice, shots_slice)` where + This type of execution span references pub result data that came from a twirled sampler experiment which was executed by either prepending or appending an axis to parameter values to account for twirling. Concretely, `data_slices` is a map from pub slices to tuples `(twirled_shape, at_front, shape_slice, shots_slice)` where * `twirled_shape` is the shape tuple including a twirling axis, and where the last axis is shots per randomization, * `at_front` is whether `num_randomizations` is at the front of the tuple, as opposed to right before the `shots` axis at the end, @@ -24,7 +24,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.TwirledSliceSpan * **start** (*datetime*) – The start time of the span, in UTC. * **stop** (*datetime*) – The stop time of the span, in UTC. - * **data\_slices** (*dict\[int, tuple\[ShapeType, bool, slice, slice]]*) – A map from pub indices to length-4 tuples described above. + * **data\_slices** (*Mapping\[int, tuple\[ShapeType, bool, slice, slice]]*) – A map from pub indices to length-4 tuples described above. ## Attributes @@ -58,7 +58,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.TwirledSliceSpan ### contains\_pub - + Return whether the pub with the given index has data with dependence on this span. **Parameters** @@ -76,7 +76,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.TwirledSliceSpan ### filter\_by\_pub - + Return a new span whose slices are filtered to the provided pub indices. For example, if this span contains slice information for pubs with indices 1, 3, 4 and `[1, 4]` is provided, then the span returned by this method will contain slice information for only those two indices, but be identical otherwise. @@ -96,7 +96,7 @@ python_api_name: qiskit_ibm_runtime.execution_span.TwirledSliceSpan ### mask - + Return an array-valued mask specifying which parts of a pub result depend on this span. **Parameters** @@ -107,6 +107,10 @@ python_api_name: qiskit_ibm_runtime.execution_span.TwirledSliceSpan An array with the same shape as the pub data. + **Raises** + + **KeyError** – if the pub is not included in the span + **Return type** [*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.3)")\[*Any*, [*dtype*](https://numpy.org/doc/stable/reference/generated/numpy.dtype.html#numpy.dtype "(in NumPy v2.3)")\[[*bool*](https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.bool "(in NumPy v2.3)")]] diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-algiers.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-algiers.mdx index 833c02a3d17..b3bc9b497f0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-algiers.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-algiers.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers # FakeAlgiers - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-almaden-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-almaden-v2.mdx index 46c46f3bafd..00da1b5bde2 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-almaden-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-almaden-v2.mdx @@ -41,10 +41,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -191,7 +187,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -209,7 +205,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### configuration - + Return the backend configuration. **Return type** @@ -217,27 +213,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -279,7 +257,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -292,7 +270,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -306,7 +285,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -347,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-armonk-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-armonk-v2.mdx index 1d792739f85..433e8592558 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-armonk-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-armonk-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 # FakeArmonkV2 - + Bases: `FakeBackendV2` A fake 1 qubit backend. @@ -35,10 +35,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -185,7 +181,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -203,7 +199,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### configuration - + Return the backend configuration. **Return type** @@ -211,27 +207,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -273,7 +251,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -286,7 +264,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -300,7 +279,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -341,7 +320,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-athens-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-athens-v2.mdx index 7b336533326..9222a99ee80 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-athens-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-athens-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 # FakeAthensV2 - + Bases: `FakeBackendV2` A fake 5 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-auckland.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-auckland.mdx index e380ceb6be5..3c71ab59909 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-auckland.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-auckland.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland # FakeAuckland - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-belem-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-belem-v2.mdx index 31a05bfff4c..48d19afae84 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-belem-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-belem-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 # FakeBelemV2 - + Bases: `FakeBackendV2` A fake 5 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-boeblingen-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-boeblingen-v2.mdx index a75e9c1774f..b508752133e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-boeblingen-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-boeblingen-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 # FakeBoeblingenV2 - + Bases: `FakeBackendV2` A fake Boeblingen V2 backend. @@ -41,10 +41,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -191,7 +187,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -209,7 +205,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### configuration - + Return the backend configuration. **Return type** @@ -217,27 +213,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -279,7 +257,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -292,7 +270,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -306,7 +285,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -347,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-bogota-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-bogota-v2.mdx index a901473ff4e..a4784842cf9 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-bogota-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-bogota-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 # FakeBogotaV2 - + Bases: `FakeBackendV2` A fake 5 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-brisbane.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-brisbane.mdx index deda2c8baf2..8e478255e28 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-brisbane.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-brisbane.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane # FakeBrisbane - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-brooklyn-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-brooklyn-v2.mdx index 3a30c520cee..9e02870b8b3 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-brooklyn-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-brooklyn-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 # FakeBrooklynV2 - + Bases: `FakeBackendV2` A fake Brooklyn V2 backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-burlington-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-burlington-v2.mdx index 8777d55254d..36329f4bcf6 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-burlington-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-burlington-v2.mdx @@ -37,10 +37,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -187,7 +183,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -205,7 +201,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### configuration - + Return the backend configuration. **Return type** @@ -213,27 +209,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -275,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -288,7 +266,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -302,7 +281,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -343,7 +322,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cairo-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cairo-v2.mdx index 82d001430ec..ae0e51136b4 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cairo-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cairo-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 # FakeCairoV2 - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cambridge-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cambridge-v2.mdx index 7ef60ed0ddc..f36cd5bb425 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cambridge-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cambridge-v2.mdx @@ -43,10 +43,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -193,7 +189,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -211,7 +207,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### configuration - + Return the backend configuration. **Return type** @@ -219,27 +215,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -281,7 +259,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -294,7 +272,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -308,7 +287,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -349,7 +328,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-casablanca-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-casablanca-v2.mdx index 978f335f135..42f07f6f171 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-casablanca-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-casablanca-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 # FakeCasablancaV2 - + Bases: `FakeBackendV2` A fake 7 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cusco.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cusco.mdx index e65c7acfc60..8cc557943d2 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cusco.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-cusco.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco # FakeCusco - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-essex-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-essex-v2.mdx index 160f6642cae..f453a74697b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-essex-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-essex-v2.mdx @@ -39,10 +39,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -189,7 +185,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -207,7 +203,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### configuration - + Return the backend configuration. **Return type** @@ -215,27 +211,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -277,7 +255,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -290,7 +268,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -304,7 +283,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -345,7 +324,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-fez.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-fez.mdx index 91423d0db07..bb29bab450d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-fez.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-fez.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez # FakeFez - + Bases: `FakeBackendV2` A fake 156 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFez ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-fractional-backend.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-fractional-backend.mdx index 11722d79070..04d98ac37fe 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-fractional-backend.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-fractional-backend.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend # FakeFractionalBackend - + Bases: `FakeBackendV2` A fake 5 qubit backend with dynamic and fractional feature modeled based on FakeLima. @@ -38,10 +38,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -188,7 +184,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -206,7 +202,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### configuration - + Return the backend configuration. **Return type** @@ -214,27 +210,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -276,7 +254,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -289,7 +267,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -303,7 +282,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -344,7 +323,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeFractionalBackend ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-geneva.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-geneva.mdx index 17ab9bf8c5d..c861a1f9f3b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-geneva.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-geneva.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva # FakeGeneva - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-guadalupe-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-guadalupe-v2.mdx index d96adaa3664..e9e18acdbe1 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-guadalupe-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-guadalupe-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 # FakeGuadalupeV2 - + Bases: `FakeBackendV2` A fake 16 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-hanoi-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-hanoi-v2.mdx index 167cfb54a70..4498590f1af 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-hanoi-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-hanoi-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 # FakeHanoiV2 - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-jakarta-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-jakarta-v2.mdx index 32369bf232e..552b2f927f7 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-jakarta-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-jakarta-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 # FakeJakartaV2 - + Bases: `FakeBackendV2` A fake 7 qubit V2 backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-johannesburg-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-johannesburg-v2.mdx index d2c94d0edd5..3bb07024ae0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-johannesburg-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-johannesburg-v2.mdx @@ -41,10 +41,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -191,7 +187,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -209,7 +205,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### configuration - + Return the backend configuration. **Return type** @@ -217,27 +213,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -279,7 +257,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -292,7 +270,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -306,7 +285,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -347,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kawasaki.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kawasaki.mdx index 1bb8306a054..ccbbdfeed2e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kawasaki.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kawasaki.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki # FakeKawasaki - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kolkata-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kolkata-v2.mdx index 8329eb4db98..014e9404c35 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kolkata-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kolkata-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 # FakeKolkataV2 - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kyiv.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kyiv.mdx index 2a489054f19..046d4a931c1 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kyiv.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kyiv.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv # FakeKyiv - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kyoto.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kyoto.mdx index ab982092ab2..4e5dae5bda7 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kyoto.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-kyoto.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto # FakeKyoto - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-lagos-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-lagos-v2.mdx index 8b97bed77f9..39dde54d524 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-lagos-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-lagos-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 # FakeLagosV2 - + Bases: `FakeBackendV2` A fake 7 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-lima-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-lima-v2.mdx index eed7b06a817..258e8db9bcb 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-lima-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-lima-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 # FakeLimaV2 - + Bases: `FakeBackendV2` A fake 5 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-london-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-london-v2.mdx index 25a6195c0e5..802230cb627 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-london-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-london-v2.mdx @@ -39,10 +39,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -189,7 +185,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -207,7 +203,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### configuration - + Return the backend configuration. **Return type** @@ -215,27 +211,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -277,7 +255,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -290,7 +268,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -304,7 +283,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -345,7 +324,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-manhattan-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-manhattan-v2.mdx index ee2d652e3f1..2cfd6637503 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-manhattan-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-manhattan-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 # FakeManhattanV2 - + Bases: `FakeBackendV2` A fake Manhattan backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-manila-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-manila-v2.mdx index eba13d875ff..33b310388b0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-manila-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-manila-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 # FakeManilaV2 - + Bases: `FakeBackendV2` A fake 5 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-marrakesh.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-marrakesh.mdx index d6720a2b927..f3a3719b277 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-marrakesh.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-marrakesh.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh # FakeMarrakesh - + Bases: `FakeBackendV2` A fake 156 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMarrakesh ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-melbourne-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-melbourne-v2.mdx index 470d7a65fcc..e5648b6f857 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-melbourne-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-melbourne-v2.mdx @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-montreal-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-montreal-v2.mdx index 6b54d87a5d5..4f552623e34 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-montreal-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-montreal-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 # FakeMontrealV2 - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-mumbai-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-mumbai-v2.mdx index 85140f64429..f5cbeaec1eb 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-mumbai-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-mumbai-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 # FakeMumbaiV2 - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-nairobi-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-nairobi-v2.mdx index a7fc300e9ce..a86798c3031 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-nairobi-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-nairobi-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 # FakeNairobiV2 - + Bases: `FakeBackendV2` A fake 7 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-osaka.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-osaka.mdx index 5090c03dda9..a56fbba5cf7 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-osaka.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-osaka.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka # FakeOsaka - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-oslo.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-oslo.mdx index 23b59c2aede..fa4f07d594b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-oslo.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-oslo.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo # FakeOslo - + Bases: `FakeBackendV2` A fake 7 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-ourense-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-ourense-v2.mdx index 813a3f090d4..599775003a5 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-ourense-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-ourense-v2.mdx @@ -37,10 +37,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -187,7 +183,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -205,7 +201,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### configuration - + Return the backend configuration. **Return type** @@ -213,27 +209,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -275,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -288,7 +266,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -302,7 +281,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -343,7 +322,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-paris-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-paris-v2.mdx index 1ef58fbf916..cef17606c9c 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-paris-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-paris-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 # FakeParisV2 - + Bases: `FakeBackendV2` A fake Paris backend. @@ -43,10 +43,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -193,7 +189,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -211,7 +207,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### configuration - + Return the backend configuration. **Return type** @@ -219,27 +215,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -281,7 +259,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -294,7 +272,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -308,7 +287,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -349,7 +328,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-peekskill.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-peekskill.mdx index 1fd91ed4be8..17fda667e20 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-peekskill.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-peekskill.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill # FakePeekskill - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-perth.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-perth.mdx index de36a70105c..50f4dc63ebe 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-perth.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-perth.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth # FakePerth - + Bases: `FakeBackendV2` A fake 7 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-poughkeepsie-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-poughkeepsie-v2.mdx index 88fdab56315..ba7fa264da1 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-poughkeepsie-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-poughkeepsie-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 # FakePoughkeepsieV2 - + Bases: `FakeBackendV2` A fake Poughkeepsie backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-prague.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-prague.mdx index 82ab8ea9429..0903960ea01 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-prague.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-prague.mdx @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-quebec.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-quebec.mdx index fbacfcf8def..edf796099e0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-quebec.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-quebec.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec # FakeQuebec - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-quito-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-quito-v2.mdx index 932c6dafaf2..75cb6bf5e36 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-quito-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-quito-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 # FakeQuitoV2 - + Bases: `FakeBackendV2` A fake 5 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-rochester-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-rochester-v2.mdx index dd755fae780..b6b1c7abde3 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-rochester-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-rochester-v2.mdx @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-rome-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-rome-v2.mdx index bd86aff7bdf..11949615116 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-rome-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-rome-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 # FakeRomeV2 - + Bases: `FakeBackendV2` A fake 5 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-santiago-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-santiago-v2.mdx index 2186a6df85a..2a71e032ac6 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-santiago-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-santiago-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 # FakeSantiagoV2 - + Bases: `FakeBackendV2` A fake Santiago backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-sherbrooke.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-sherbrooke.mdx index 3aa44c2fe01..6af8cdcc330 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-sherbrooke.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-sherbrooke.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke # FakeSherbrooke - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-singapore-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-singapore-v2.mdx index fb6dfc95524..f5d882fd8e9 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-singapore-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-singapore-v2.mdx @@ -41,10 +41,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -191,7 +187,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -209,7 +205,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### configuration - + Return the backend configuration. **Return type** @@ -217,27 +213,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -279,7 +257,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -292,7 +270,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -306,7 +285,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -347,7 +326,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-sydney-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-sydney-v2.mdx index 7336b292c9d..857fb852e54 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-sydney-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-sydney-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 # FakeSydneyV2 - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-torino.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-torino.mdx index e3564280a66..4d99a9d2dfb 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-torino.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-torino.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino # FakeTorino - + Bases: `FakeBackendV2` A fake 133 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-toronto-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-toronto-v2.mdx index 84ed49be7b2..97489d2eb92 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-toronto-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-toronto-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 # FakeTorontoV2 - + Bases: `FakeBackendV2` A fake 27 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-valencia-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-valencia-v2.mdx index 3acd6913217..01841a79f8d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-valencia-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-valencia-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 # FakeValenciaV2 - + Bases: `FakeBackendV2` A fake 5 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-vigo-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-vigo-v2.mdx index 242fc942ae9..1b48a593821 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-vigo-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-vigo-v2.mdx @@ -37,10 +37,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -187,7 +183,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -205,7 +201,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### configuration - + Return the backend configuration. **Return type** @@ -213,27 +209,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -275,7 +253,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -288,7 +266,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -302,7 +281,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -343,7 +322,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-washington-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-washington-v2.mdx index ad914424523..2d6d0e7f2c6 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-washington-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-washington-v2.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 # FakeWashingtonV2 - + Bases: `FakeBackendV2` A fake 127 qubit backend. @@ -31,10 +31,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -181,7 +177,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -199,7 +195,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### configuration - + Return the backend configuration. **Return type** @@ -207,27 +203,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -269,7 +247,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -282,7 +260,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -296,7 +275,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -337,7 +316,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-yorktown-v2.mdx b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-yorktown-v2.mdx index c4337ba74a6..b8dd8f1ab29 100644 --- a/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-yorktown-v2.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/fake-provider-fake-yorktown-v2.mdx @@ -39,10 +39,6 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap "(in Qiskit v2.1)") object - ### defs\_filename - - - ### dirname @@ -189,7 +185,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -207,7 +203,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### configuration - + Return the backend configuration. **Return type** @@ -215,27 +211,9 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED)Return the pulse defaults for the backend - - **Parameters** - - **refresh** (*bool*) – If `True`, re-retrieve the backend defaults from the local file. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* - - ### properties - + Return the backend properties **Parameters** @@ -277,7 +255,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### refresh - + Update the data files from its real counterpart This method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation: @@ -290,7 +268,8 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 **Parameters** - **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance + * **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates. **Raises** @@ -304,7 +283,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### run - + Run on the fake backend using a simulator. This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.Job "(in Qiskit v2.1)") object. @@ -345,7 +324,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 ### status - + Return the backend status. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/ibm-backend.mdx b/docs/api/qiskit-ibm-runtime/dev/ibm-backend.mdx index 5218b4a27e1..9bffe71c65e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/ibm-backend.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/ibm-backend.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend # IBMBackend - + Bases: [`BackendV2`](/docs/api/qiskit/qiskit.providers.BackendV2 "(in Qiskit v2.1)") Backend class interfacing with an IBM Quantum backend. @@ -296,7 +296,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### \_\_call\_\_ - + Call self as a function. **Return type** @@ -306,7 +306,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### check\_faulty - + Check if the input circuit uses faulty qubits or edges. **Parameters** @@ -324,7 +324,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### configuration - + Return the backend configuration. Backend configuration contains fixed information about the backend, such as its name, number of qubits, basis gates, coupling map, quantum volume, etc. @@ -352,29 +352,9 @@ python_api_name: qiskit_ibm_runtime.IBMBackend *QasmBackendConfiguration* - ### defaults - - - (DEPRECATED) Return the pulse defaults for the backend. - - The schema for default pulse configuration can be found in [Qiskit/ibm-quantum-schemas/default\_pulse\_configuration](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/default_pulse_configuration_schema.json). - - **Parameters** - - **refresh** (*bool*) – If `True`, re-query the server for the backend pulse defaults. Otherwise, return a cached version. - - **Returns** - - The backend pulse defaults or `None` if the backend does not support pulse. - - **Return type** - - *PulseDefaults* | None - - ### get\_translation\_stage\_plugin - + Return the default translation stage plugin name for IBM backends. **Return type** @@ -384,7 +364,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### properties - + Return the backend properties, subject to optional filtering. This data describes qubits properties (such as T1 and T2), gates properties (such as gate length and error), and other general properties of the backend. @@ -436,7 +416,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### refresh - + Retrieve the newest backend configuration and refresh the current backend target. **Return type** @@ -446,7 +426,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### run - + **Raises** **IBMBackendError** – The run() method is no longer supported. @@ -474,7 +454,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### status - + Return the backend status. @@ -496,7 +476,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend ### target\_history - + A [`qiskit.transpiler.Target`](/docs/api/qiskit/qiskit.transpiler.Target "(in Qiskit v2.1)") object for the backend. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit-runtime-service.mdx b/docs/api/qiskit-ibm-runtime/dev/qiskit-runtime-service.mdx index c0d61f96cd0..a71df9f09b0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit-runtime-service.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit-runtime-service.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService # QiskitRuntimeService - + Bases: `object` Class for interacting with the Qiskit Runtime service. @@ -87,6 +87,16 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService *Dict*\[str, str] | None + ### active\_instance + + + Return the crn of the current active instance. + + **Return type** + + str + + ### backend @@ -174,7 +184,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### check\_pending\_jobs - + (DEPRECATED) Check the number of pending jobs and wait for the oldest pending job if the maximum number of pending jobs has been reached. **Return type** @@ -204,7 +214,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### delete\_job - + (DEPRECATED) Delete a runtime job. Note that this operation cannot be reversed. @@ -225,7 +235,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### instances - + **Return a list that contains a series of dictionaries with the** following instance identifiers per instance: “crn”, “plan”, “name”. @@ -264,7 +274,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### jobs - + Retrieve all runtime jobs, subject to optional filtering. **Parameters** @@ -274,7 +284,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService * **backend\_name** (*str | None*) – Name of the backend to retrieve jobs from. * **pending** (*bool | None*) – Filter by job pending state. If `True`, ‘QUEUED’ and ‘RUNNING’ jobs are included. If `False`, ‘DONE’, ‘CANCELLED’ and ‘ERROR’ jobs are included. * **program\_id** (*str | None*) – Filter by Program ID. - * **instance** (*str | None*) – (DEPRECATED) This is parameter is no longer supported on the new IBM Quantum Platform. It will be removed in a future release. + * **instance** (*str | None*) – Filter by IBM Cloud instance crn. * **job\_tags** (*List\[str] | None*) – Filter by tags assigned to jobs. Matched jobs are associated with all tags. * **session\_id** (*str | None*) – Filter by session id. All jobs in the session will be returned in desceding order of the job creation date. * **created\_after** (*datetime | None*) – Filter by the given start date, in local time. This is used to find jobs whose creation dates are after (greater than or equal to) this local date/time. @@ -296,7 +306,7 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### least\_busy - + Return the least busy available backend. **Parameters** @@ -382,8 +392,8 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService ### usage - - For the ibm\_quantum channel return monthly open plan usage information. For the ibm\_cloud and ibm\_quantum\_platform channels return usage information for the current active instance. + + Return usage information for the current active instance. **Returns** diff --git a/docs/api/qiskit-ibm-runtime/dev/runtime-decoder.mdx b/docs/api/qiskit-ibm-runtime/dev/runtime-decoder.mdx index 10b71575692..bcfd494705f 100644 --- a/docs/api/qiskit-ibm-runtime/dev/runtime-decoder.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/runtime-decoder.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeDecoder # RuntimeDecoder - + Bases: `JSONDecoder` JSON Decoder used by runtime service. @@ -40,7 +40,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeDecoder ### object\_hook - + Called to decode object. **Parameters** diff --git a/docs/api/qiskit-ibm-runtime/dev/runtime-encoder.mdx b/docs/api/qiskit-ibm-runtime/dev/runtime-encoder.mdx index 3151e7c3f81..2af82f45282 100644 --- a/docs/api/qiskit-ibm-runtime/dev/runtime-encoder.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/runtime-encoder.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeEncoder # RuntimeEncoder - + Bases: `JSONEncoder` JSON Encoder used by runtime service. @@ -45,7 +45,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeEncoder ### default - + Implement this method in a subclass such that it returns a serializable object for `o`, or calls the base implementation (to raise a `TypeError`). For example, to support arbitrary iterators, you could implement default like this: diff --git a/docs/api/qiskit-ibm-runtime/dev/transpiler-passes-fold-rzz-angle.mdx b/docs/api/qiskit-ibm-runtime/dev/transpiler-passes-fold-rzz-angle.mdx index 612a499eaa6..0cd952f23ff 100644 --- a/docs/api/qiskit-ibm-runtime/dev/transpiler-passes-fold-rzz-angle.mdx +++ b/docs/api/qiskit-ibm-runtime/dev/transpiler-passes-fold-rzz-angle.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.FoldRzzAngle # FoldRzzAngle - + Bases: [`TransformationPass`](/docs/api/qiskit/qiskit.transpiler.TransformationPass "(in Qiskit v2.1)") Fold Rzz gate angle into calibrated range of 0-pi/2 with local gate tweaks. @@ -92,7 +92,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.FoldRzzAngle ### run - + Run a pass on the DAGCircuit. This is implemented by the pass developer. **Parameters** diff --git a/docs/api/qiskit/dev/_toc.json b/docs/api/qiskit/dev/_toc.json index 3fb689da4e9..78da7478775 100644 --- a/docs/api/qiskit/dev/_toc.json +++ b/docs/api/qiskit/dev/_toc.json @@ -1460,6 +1460,10 @@ "title": "MCMTSynthesisVChain", "url": "/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain" }, + { + "title": "MCMTSynthesisXGate", + "url": "/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate" + }, { "title": "MCXSynthesis1CleanB95", "url": "/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95" @@ -1496,6 +1500,10 @@ "title": "MCXSynthesisNDirtyI15", "url": "/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15" }, + { + "title": "MCXSynthesisNoAuxHP24", + "url": "/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24" + }, { "title": "MCXSynthesisNoAuxV24", "url": "/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24" diff --git a/docs/api/qiskit/dev/circuit.mdx b/docs/api/qiskit/dev/circuit.mdx index 8ffab3cacfc..28dd623429c 100644 --- a/docs/api/qiskit/dev/circuit.mdx +++ b/docs/api/qiskit/dev/circuit.mdx @@ -583,10 +583,10 @@ A circuit can contain manual classical storage locations, represented internally Various parametric [`Instruction`](qiskit.circuit.Instruction "qiskit.circuit.Instruction") instances in Qiskit can be parametrized in ways that are designed to be resolved at compile time. These are characterized by the use of the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") and [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression") classes. -| | | -| ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter")(name, \*\[, uuid]) | A compile-time symbolic parameter. | -| [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression")(symbol\_map, expr, \*\[, ...]) | ParameterExpression class to enable creating expressions of Parameters. | +| | | +| ------------------------------------------------------------------------------------------------ | ---------------------------------- | +| [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") | A compile-time symbolic parameter. | +| [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression") | A parameter expression. | The main way that this differs from the `expr.Var` variables used in real-time classical computation is that [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression") is a symbolic representation of a mathematical expression. The semantics of the expression are those of regular mathematics over the continuous real numbers (and, in limited cases, over the complex numbers). In contrast, [`Var`](circuit_classical#qiskit.circuit.classical.expr.Var "qiskit.circuit.classical.expr.Var") is a handle to a variable stored on a classical computer, such as a floating-point value or an fixed-width integer, which are always discrete. @@ -596,10 +596,10 @@ The “compile-time” part of these parameters means that you typically will wa You may want to use many parameters that are related to each other. To make this easier (and to avoid you needing to come up with many names), you can use the convenience constructor [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector"). The elements of the vector are all valid [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") instances, of a special subclass [`ParameterVectorElement`](qiskit.circuit.ParameterVectorElement "qiskit.circuit.ParameterVectorElement"). -| | | -| --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector")(name\[, length]) | A container of many related [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects. | -| [`ParameterVectorElement`](qiskit.circuit.ParameterVectorElement "qiskit.circuit.ParameterVectorElement")(vector, index\[, uuid]) | An element of a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector"). | +| | | +| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector")(name\[, length]) | A container of many related [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects. | +| [`ParameterVectorElement`](qiskit.circuit.ParameterVectorElement "qiskit.circuit.ParameterVectorElement") | An element of a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector"). | diff --git a/docs/api/qiskit/dev/qasm3.mdx b/docs/api/qiskit/dev/qasm3.mdx index 638425987a6..947cdcc2873 100644 --- a/docs/api/qiskit/dev/qasm3.mdx +++ b/docs/api/qiskit/dev/qasm3.mdx @@ -94,7 +94,7 @@ Both of these exporter functions are single-use wrappers around the main [`Expor If `True`, then bits may be contained in more than one register. If so, the registers will be emitted using “alias” definitions, which might not be well supported by consumers of OpenQASM 3. Defaults to `False` or the value of `alias_classical_registers`. - New in version 0.25.0. + * **indent** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – the indentation string to use for each level within an indented block. Can be set to the empty string to disable indentation. @@ -249,7 +249,9 @@ Currently only two high-level functions are offered, as Qiskit support for impor [**QASM3ImporterError**](#qiskit.qasm3.QASM3ImporterError "qiskit.qasm3.QASM3ImporterError") – if the OpenQASM 3 file is invalid, or cannot be represented by a [`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit"). - New in version 2.1: The `annotation_handlers` argument. This requires `qiskit_qasm3_import>=0.6.0`. + + The `annotation_handlers` argument. This requires `qiskit_qasm3_import>=0.6.0`. + ### loads @@ -274,7 +276,9 @@ Currently only two high-level functions are offered, as Qiskit support for impor [**QASM3ImporterError**](#qiskit.qasm3.QASM3ImporterError "qiskit.qasm3.QASM3ImporterError") – if the OpenQASM 3 file is invalid, or cannot be represented by a [`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit"). - New in version 2.1: The `annotation_handlers` argument. This requires `qiskit_qasm3_import>=0.6.0`. + + The `annotation_handlers` argument. This requires `qiskit_qasm3_import>=0.6.0`. + Both of these two functions raise [`QASM3ImporterError`](#qiskit.qasm3.QASM3ImporterError "qiskit.qasm3.QASM3ImporterError") on failure. diff --git a/docs/api/qiskit/dev/qiskit.circuit.AnnotatedOperation.mdx b/docs/api/qiskit/dev/qiskit.circuit.AnnotatedOperation.mdx index 19a18d6d0b8..8fe703046bb 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.AnnotatedOperation.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.AnnotatedOperation.mdx @@ -156,11 +156,11 @@ python_api_name: qiskit.circuit.AnnotatedOperation **Parameters** - **parameter** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – + **parameter** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – **Return type** - [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") | [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") + [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") | [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") diff --git a/docs/api/qiskit/dev/qiskit.circuit.Parameter.mdx b/docs/api/qiskit/dev/qiskit.circuit.Parameter.mdx index aba15f352b5..d707d2a7c2c 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.Parameter.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.Parameter.mdx @@ -8,8 +8,8 @@ python_api_name: qiskit.circuit.Parameter # Parameter - - Bases: [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") + + Bases: [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") A compile-time symbolic parameter. @@ -25,28 +25,23 @@ python_api_name: qiskit.circuit.Parameter from qiskit.circuit import QuantumCircuit, Parameter # create the parameter - phi = Parameter('phi') + phi = Parameter("phi") qc = QuantumCircuit(1) # parameterize the rotation qc.rx(phi, 0) - qc.draw('mpl') + qc.draw("mpl") # bind the parameters after circuit to create a bound circuit bc = qc.assign_parameters({phi: 3.14}) bc.measure_all() - bc.draw('mpl') + bc.draw("mpl") ``` ![Circuit diagram output by the previous code.](/docs/images/api/qiskit/dev/qiskit-circuit-Parameter-1_00.avif) ![Circuit diagram output by the previous code.](/docs/images/api/qiskit/dev/qiskit-circuit-Parameter-1_01.avif) - **Parameters** - - * **name** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – name of the `Parameter`, used for visual representation. This can be any Unicode string, e.g. “ϕ”. - * **uuid** (*UUID | None*) – For advanced usage only. Override the UUID of this parameter, in order to make it compare equal to some other parameter object. By default, two parameters with the same name do not compare equal to help catch shadowing bugs when two circuits containing the same named parameters are spurious combined. Setting the `uuid` field when creating two parameters to the same thing (along with the same name) allows them to be equal. This is useful during serialization and deserialization. - ## Attributes ### name @@ -58,7 +53,11 @@ python_api_name: qiskit.circuit.Parameter ### parameters - Returns a set of the unbound Parameters in the expression. + Get the parameters present in the expression. + + + Qiskit guarantees equality (via `==`) of parameters retrieved from an expression with the original [`Parameter`](#qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects used to create this expression, but does **not guarantee** `is` comparisons to succeed. + ### uuid @@ -73,36 +72,36 @@ python_api_name: qiskit.circuit.Parameter ### abs - - Absolute of a ParameterExpression + + Take the absolute value of the expression. ### arccos - - Arccos of a ParameterExpression + + Arccosine of the expression. ### arcsin - - Arcsin of a ParameterExpression + + Arcsine of the expression. ### arctan - - Arctan of a ParameterExpression + + Arctangent of the expression. ### assign - + Assign one parameter to a value, which can either be numeric or another parameter expression. **Parameters** - * **parameter** ([*Parameter*](#qiskit.circuit.Parameter "qiskit.circuit.Parameter")) – A parameter in this expression whose value will be updated. + * **parameter** – A parameter in this expression whose value will be updated. * **value** – The new value to bind to. **Returns** @@ -112,19 +111,19 @@ python_api_name: qiskit.circuit.Parameter ### bind - + Binds the provided set of parameters to their corresponding values. **Parameters** - * **parameter\_values** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")) – Mapping of Parameter instances to the numeric value to which they will be bound. - * **allow\_unknown\_parameters** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – If `False`, raises an error if `parameter_values` contains Parameters in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. + * **parameter\_values** – Mapping of [`Parameter`](#qiskit.circuit.Parameter "qiskit.circuit.Parameter") instances to the numeric value to which they will be bound. + * **allow\_unknown\_parameters** – If `False`, raises an error if `parameter_values` contains [`Parameter`](#qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. **Raises** * [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – - * If parameter\_values contains Parameters outside those in self. - If a non-numeric value is passed in parameter\_values. + * If parameter\_values contains parameters outside those in self. - If a non-numeric value is passed in `parameter_values`. * [**ZeroDivisionError**](https://docs.python.org/3/library/exceptions.html#ZeroDivisionError "(in Python v3.13)") – @@ -132,128 +131,122 @@ python_api_name: qiskit.circuit.Parameter **Returns** - A new expression parameterized by any parameters which were not bound by parameter\_values. - - **Return type** - - [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") + A new expression parameterized by any parameters which were not bound by `parameter_values`. ### conjugate - - Return the conjugate. - - **Return type** - - [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") + + Return the complex conjugate of the expression. ### cos - - Cosine of a ParameterExpression + + Cosine of the expression. ### exp - - Exponential of a ParameterExpression + + Exponentiate the expression. ### gradient - - Get the derivative of a real parameter expression w\.r.t. a specified parameter. - - - This method assumes that the parameter expression represents a **real expression only**. Calling this method on a parameter expression that contains complex values, or binding complex values to parameters in the expression is undefined behavior. - + + Return derivative of this expression with respect to the input parameter. **Parameters** - **param** ([*Parameter*](#qiskit.circuit.Parameter "qiskit.circuit.Parameter")) – Parameter w\.r.t. which we want to take the derivative + **param** – The parameter with respect to which the derivative is calculated. **Returns** - ParameterExpression representing the gradient of param\_expr w\.r.t. param or complex or float number - - **Return type** - - [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") | [complex](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") + The derivative. ### is\_real - - Return whether the expression is real - + + Check whether the expression represents a real number. - ### log - - - Logarithm of a ParameterExpression + Note that this will return `None` if there are unbound parameters, in which case it cannot be determined whether the expression is real. - ### numeric + ### is\_symbol - - Return a Python number representing this object, using the most restrictive of [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") and [`complex`](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") that is valid for this object. + + Check if the expression corresponds to a plain symbol. - In general, an [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") is only returned if the expression only involved symbolic integers. If floating-point values were used during the evaluation, the return value will be a [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") regardless of whether the represented value is an integer. This is because floating-point values “infect” symbolic computations by their inexact nature, and symbolic libraries will use inexact floating-point semantics not exact real-number semantics when they are involved. If you want to assert that all floating-point calculations *were* carried out at infinite precision (i.e. [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") could represent every intermediate value exactly), you can use [`float.is_integer()`](https://docs.python.org/3/library/stdtypes.html#float.is_integer "(in Python v3.13)") to check if the return float represents an integer and cast it using [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") if so. This would be an unusual pattern; typically one requires this by only ever using explicitly [`Rational`](https://docs.python.org/3/library/numbers.html#numbers.Rational "(in Python v3.13)") objects while working with symbolic expressions. + **Returns** - This is more reliable and performant than using [`is_real()`](#qiskit.circuit.Parameter.is_real "qiskit.circuit.Parameter.is_real") followed by calling [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") or [`complex`](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)"), as in some cases [`is_real()`](#qiskit.circuit.Parameter.is_real "qiskit.circuit.Parameter.is_real") needs to force a floating-point evaluation to determine an accurate result to work around bugs in the upstream symbolic libraries. + `True` is this expression corresponds to a symbol, `False` otherwise. + - **Returns** + ### log - A Python number representing the object. + + Take the natural logarithm of the expression. + - **Raises** + ### numeric - [**TypeError**](https://docs.python.org/3/library/exceptions.html#TypeError "(in Python v3.13)") – if there are unbound parameters. + + Cast this expression to a numeric value. - **Return type** + **Parameters** - [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") | [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") | [complex](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") + **strict** – If `True` (default) this function raises an error if there are any unbound symbols in the expression. If `False`, this allows casting if the expression represents a numeric value, regardless of unbound symbols. For example `(0 * Parameter("x"))` is 0 but has the symbol `x` present. ### sign - - Sign of a ParameterExpression + + Return the sign of the expression. ### sin - - Sine of a ParameterExpression + + Sine of the expression. ### subs - - Substitute self with the corresponding parameter in `parameter_map`. + + Returns a new expression with replacement parameters. **Parameters** - * **parameter\_map** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")) – - * **allow\_unknown\_parameters** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – + * **parameter\_map** – Mapping from [`Parameter`](#qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in `self` to the [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression") instances with which they should be replaced. + * **allow\_unknown\_parameters** – If `False`, raises an error if `parameter_map` contains [`Parameter`](#qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. + + **Raises** + + [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – + + * If parameter\_map contains parameters outside those in self. - If the replacement parameters in `parameter_map` would result in a name conflict in the generated expression. + + **Returns** + + A new expression with the specified parameters replaced. ### sympify - - Return symbolic expression as a raw Sympy object. + + Return a SymPy equivalent of this expression. - - This is for interoperability only. Qiskit will not accept or work with raw Sympy or Symegine expressions in its parameters, because they do not contain the tracking information used in circuit-parameter binding and assignment. - + **Returns** + + A SymPy equivalent of this expression. ### tan - - Tangent of a ParameterExpression + + Tangent of the expression. diff --git a/docs/api/qiskit/dev/qiskit.circuit.ParameterExpression.mdx b/docs/api/qiskit/dev/qiskit.circuit.ParameterExpression.mdx index 48746af5c4f..dbc13ec3b93 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.ParameterExpression.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.ParameterExpression.mdx @@ -8,88 +8,81 @@ python_api_name: qiskit.circuit.ParameterExpression # ParameterExpression - + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") - ParameterExpression class to enable creating expressions of Parameters. + A parameter expression. - Create a new [`ParameterExpression`](#qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression"). - - Not intended to be called directly, but to be instantiated via operations on other [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") or [`ParameterExpression`](#qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression") objects. The constructor of this object is **not** a public interface and should not ever be used directly. - - **Parameters** - - * **symbol\_map** (*Dict\[*[*Parameter*](qiskit.circuit.Parameter "qiskit.circuit.Parameter")*, \[*[*ParameterExpression*](#qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression")*,* [*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*, or* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]]*) – Mapping of [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") instances to the `sympy.Symbol` serving as their placeholder in expr. - * **expr** (*SymbolExpr or* [*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – Expression with Rust’s SymbolExprPy or string + This is backed by Qiskit’s symbolic expression engine and a cache for the parameters inside the expression. ## Attributes ### parameters - Returns a set of the unbound Parameters in the expression. + Get the parameters present in the expression. + + + Qiskit guarantees equality (via `==`) of parameters retrieved from an expression with the original [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects used to create this expression, but does **not guarantee** `is` comparisons to succeed. + ## Methods ### abs - - Absolute of a ParameterExpression + + Take the absolute value of the expression. ### arccos - - Arccos of a ParameterExpression + + Arccosine of the expression. ### arcsin - - Arcsin of a ParameterExpression + + Arcsine of the expression. ### arctan - - Arctan of a ParameterExpression + + Arctangent of the expression. ### assign - + Assign one parameter to a value, which can either be numeric or another parameter expression. **Parameters** - * **parameter** ([*Parameter*](qiskit.circuit.Parameter "qiskit.circuit.Parameter")) – A parameter in this expression whose value will be updated. - * **value** ([*ParameterExpression*](#qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The new value to bind to. + * **parameter** – A parameter in this expression whose value will be updated. + * **value** – The new value to bind to. **Returns** A new expression parameterized by any parameters which were not bound by assignment. - - **Return type** - - [*ParameterExpression*](#qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") ### bind - + Binds the provided set of parameters to their corresponding values. **Parameters** - * **parameter\_values** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")) – Mapping of Parameter instances to the numeric value to which they will be bound. - * **allow\_unknown\_parameters** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – If `False`, raises an error if `parameter_values` contains Parameters in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. + * **parameter\_values** – Mapping of [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") instances to the numeric value to which they will be bound. + * **allow\_unknown\_parameters** – If `False`, raises an error if `parameter_values` contains [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. **Raises** * [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – - * If parameter\_values contains Parameters outside those in self. - If a non-numeric value is passed in parameter\_values. + * If parameter\_values contains parameters outside those in self. - If a non-numeric value is passed in `parameter_values`. * [**ZeroDivisionError**](https://docs.python.org/3/library/exceptions.html#ZeroDivisionError "(in Python v3.13)") – @@ -97,142 +90,122 @@ python_api_name: qiskit.circuit.ParameterExpression **Returns** - A new expression parameterized by any parameters which were not bound by parameter\_values. - - **Return type** - - [*ParameterExpression*](#qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") + A new expression parameterized by any parameters which were not bound by `parameter_values`. ### conjugate - - Return the conjugate. - - **Return type** - - [*ParameterExpression*](#qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") + + Return the complex conjugate of the expression. ### cos - - Cosine of a ParameterExpression + + Cosine of the expression. ### exp - - Exponential of a ParameterExpression + + Exponentiate the expression. ### gradient - - Get the derivative of a real parameter expression w\.r.t. a specified parameter. - - - This method assumes that the parameter expression represents a **real expression only**. Calling this method on a parameter expression that contains complex values, or binding complex values to parameters in the expression is undefined behavior. - + + Return derivative of this expression with respect to the input parameter. **Parameters** - **param** ([*Parameter*](qiskit.circuit.Parameter "qiskit.circuit.Parameter")) – Parameter w\.r.t. which we want to take the derivative + **param** – The parameter with respect to which the derivative is calculated. **Returns** - ParameterExpression representing the gradient of param\_expr w\.r.t. param or complex or float number - - **Return type** - - [*ParameterExpression*](#qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") | [complex](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") + The derivative. ### is\_real - - Return whether the expression is real - + + Check whether the expression represents a real number. - ### log - - - Logarithm of a ParameterExpression + Note that this will return `None` if there are unbound parameters, in which case it cannot be determined whether the expression is real. - ### numeric + ### is\_symbol - - Return a Python number representing this object, using the most restrictive of [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") and [`complex`](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") that is valid for this object. + + Check if the expression corresponds to a plain symbol. - In general, an [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") is only returned if the expression only involved symbolic integers. If floating-point values were used during the evaluation, the return value will be a [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") regardless of whether the represented value is an integer. This is because floating-point values “infect” symbolic computations by their inexact nature, and symbolic libraries will use inexact floating-point semantics not exact real-number semantics when they are involved. If you want to assert that all floating-point calculations *were* carried out at infinite precision (i.e. [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") could represent every intermediate value exactly), you can use [`float.is_integer()`](https://docs.python.org/3/library/stdtypes.html#float.is_integer "(in Python v3.13)") to check if the return float represents an integer and cast it using [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") if so. This would be an unusual pattern; typically one requires this by only ever using explicitly [`Rational`](https://docs.python.org/3/library/numbers.html#numbers.Rational "(in Python v3.13)") objects while working with symbolic expressions. + **Returns** - This is more reliable and performant than using [`is_real()`](#qiskit.circuit.ParameterExpression.is_real "qiskit.circuit.ParameterExpression.is_real") followed by calling [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") or [`complex`](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)"), as in some cases [`is_real()`](#qiskit.circuit.ParameterExpression.is_real "qiskit.circuit.ParameterExpression.is_real") needs to force a floating-point evaluation to determine an accurate result to work around bugs in the upstream symbolic libraries. + `True` is this expression corresponds to a symbol, `False` otherwise. + - **Returns** + ### log - A Python number representing the object. + + Take the natural logarithm of the expression. + - **Raises** + ### numeric - [**TypeError**](https://docs.python.org/3/library/exceptions.html#TypeError "(in Python v3.13)") – if there are unbound parameters. + + Cast this expression to a numeric value. - **Return type** + **Parameters** - [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") | [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") | [complex](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") + **strict** – If `True` (default) this function raises an error if there are any unbound symbols in the expression. If `False`, this allows casting if the expression represents a numeric value, regardless of unbound symbols. For example `(0 * Parameter("x"))` is 0 but has the symbol `x` present. ### sign - - Sign of a ParameterExpression + + Return the sign of the expression. ### sin - - Sine of a ParameterExpression + + Sine of the expression. ### subs - - Returns a new Expression with replacement Parameters. + + Returns a new expression with replacement parameters. **Parameters** - * **parameter\_map** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")) – Mapping from Parameters in self to the ParameterExpression instances with which they should be replaced. - * **allow\_unknown\_parameters** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – If `False`, raises an error if `parameter_map` contains Parameters in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. + * **parameter\_map** – Mapping from [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in `self` to the [`ParameterExpression`](#qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression") instances with which they should be replaced. + * **allow\_unknown\_parameters** – If `False`, raises an error if `parameter_map` contains [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. **Raises** [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – - * If parameter\_map contains Parameters outside those in self. - If the replacement Parameters in parameter\_map would result in a name conflict in the generated expression. + * If parameter\_map contains parameters outside those in self. - If the replacement parameters in `parameter_map` would result in a name conflict in the generated expression. **Returns** A new expression with the specified parameters replaced. - - **Return type** - - [*ParameterExpression*](#qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") ### sympify - - Return symbolic expression as a raw Sympy object. + + Return a SymPy equivalent of this expression. - - This is for interoperability only. Qiskit will not accept or work with raw Sympy or Symegine expressions in its parameters, because they do not contain the tracking information used in circuit-parameter binding and assignment. - + **Returns** + + A SymPy equivalent of this expression. ### tan - - Tangent of a ParameterExpression + + Tangent of the expression. diff --git a/docs/api/qiskit/dev/qiskit.circuit.ParameterVector.mdx b/docs/api/qiskit/dev/qiskit.circuit.ParameterVector.mdx index 2d99cac7af0..6b46981ab47 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.ParameterVector.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.ParameterVector.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.circuit.ParameterVector # ParameterVector - + Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)") A container of many related [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects. @@ -39,7 +39,7 @@ python_api_name: qiskit.circuit.ParameterVector ### index - + Find the index of a [`ParameterVectorElement`](qiskit.circuit.ParameterVectorElement "qiskit.circuit.ParameterVectorElement") within the list. It is typically much faster to use the [`ParameterVectorElement.index`](qiskit.circuit.ParameterVectorElement#index "qiskit.circuit.ParameterVectorElement.index") property. @@ -47,7 +47,7 @@ python_api_name: qiskit.circuit.ParameterVector ### resize - + Resize the parameter vector. If necessary, new elements are generated. Note that the UUID of each [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") element will be generated deterministically given the root UUID of the `ParameterVector` and the index of the element. In particular, if a `ParameterVector` is resized to be smaller and then later resized to be larger, the UUID of the later generated element at a given index will be the same as the UUID of the previous element at that index. This is to ensure that the parameter instances do not change. diff --git a/docs/api/qiskit/dev/qiskit.circuit.ParameterVectorElement.mdx b/docs/api/qiskit/dev/qiskit.circuit.ParameterVectorElement.mdx index a9ba9a9ac02..673ed1ad722 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.ParameterVectorElement.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.ParameterVectorElement.mdx @@ -8,8 +8,8 @@ python_api_name: qiskit.circuit.ParameterVectorElement # ParameterVectorElement - - Bases: [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.parameter.Parameter") + + Bases: [`Parameter`](qiskit.circuit.Parameter "qiskit._accelerate.circuit.Parameter") An element of a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector"). @@ -17,11 +17,6 @@ python_api_name: qiskit.circuit.ParameterVectorElement There is very little reason to ever construct this class directly. Objects of this type are automatically constructed efficiently as part of creating a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector"). - **Parameters** - - * **name** – name of the `Parameter`, used for visual representation. This can be any Unicode string, e.g. “ϕ”. - * **uuid** – For advanced usage only. Override the UUID of this parameter, in order to make it compare equal to some other parameter object. By default, two parameters with the same name do not compare equal to help catch shadowing bugs when two circuits containing the same named parameters are spurious combined. Setting the `uuid` field when creating two parameters to the same thing (along with the same name) allows them to be equal. This is useful during serialization and deserialization. - ## Attributes ### index @@ -39,7 +34,11 @@ python_api_name: qiskit.circuit.ParameterVectorElement ### parameters - Returns a set of the unbound Parameters in the expression. + Get the parameters present in the expression. + + + Qiskit guarantees equality (via `==`) of parameters retrieved from an expression with the original [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects used to create this expression, but does **not guarantee** `is` comparisons to succeed. + ### uuid @@ -60,36 +59,36 @@ python_api_name: qiskit.circuit.ParameterVectorElement ### abs - - Absolute of a ParameterExpression + + Take the absolute value of the expression. ### arccos - - Arccos of a ParameterExpression + + Arccosine of the expression. ### arcsin - - Arcsin of a ParameterExpression + + Arcsine of the expression. ### arctan - - Arctan of a ParameterExpression + + Arctangent of the expression. ### assign - + Assign one parameter to a value, which can either be numeric or another parameter expression. **Parameters** - * **parameter** ([*Parameter*](qiskit.circuit.Parameter "qiskit.circuit.Parameter")) – A parameter in this expression whose value will be updated. + * **parameter** – A parameter in this expression whose value will be updated. * **value** – The new value to bind to. **Returns** @@ -99,19 +98,19 @@ python_api_name: qiskit.circuit.ParameterVectorElement ### bind - + Binds the provided set of parameters to their corresponding values. **Parameters** - * **parameter\_values** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")) – Mapping of Parameter instances to the numeric value to which they will be bound. - * **allow\_unknown\_parameters** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – If `False`, raises an error if `parameter_values` contains Parameters in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. + * **parameter\_values** – Mapping of [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") instances to the numeric value to which they will be bound. + * **allow\_unknown\_parameters** – If `False`, raises an error if `parameter_values` contains [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. **Raises** * [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – - * If parameter\_values contains Parameters outside those in self. - If a non-numeric value is passed in parameter\_values. + * If parameter\_values contains parameters outside those in self. - If a non-numeric value is passed in `parameter_values`. * [**ZeroDivisionError**](https://docs.python.org/3/library/exceptions.html#ZeroDivisionError "(in Python v3.13)") – @@ -119,128 +118,122 @@ python_api_name: qiskit.circuit.ParameterVectorElement **Returns** - A new expression parameterized by any parameters which were not bound by parameter\_values. - - **Return type** - - [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") + A new expression parameterized by any parameters which were not bound by `parameter_values`. ### conjugate - - Return the conjugate. - - **Return type** - - [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") + + Return the complex conjugate of the expression. ### cos - - Cosine of a ParameterExpression + + Cosine of the expression. ### exp - - Exponential of a ParameterExpression + + Exponentiate the expression. ### gradient - - Get the derivative of a real parameter expression w\.r.t. a specified parameter. - - - This method assumes that the parameter expression represents a **real expression only**. Calling this method on a parameter expression that contains complex values, or binding complex values to parameters in the expression is undefined behavior. - + + Return derivative of this expression with respect to the input parameter. **Parameters** - **param** ([*Parameter*](qiskit.circuit.Parameter "qiskit.circuit.Parameter")) – Parameter w\.r.t. which we want to take the derivative + **param** – The parameter with respect to which the derivative is calculated. **Returns** - ParameterExpression representing the gradient of param\_expr w\.r.t. param or complex or float number - - **Return type** - - [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") | [complex](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") + The derivative. ### is\_real - - Return whether the expression is real - + + Check whether the expression represents a real number. - ### log - - - Logarithm of a ParameterExpression + Note that this will return `None` if there are unbound parameters, in which case it cannot be determined whether the expression is real. - ### numeric + ### is\_symbol - - Return a Python number representing this object, using the most restrictive of [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)"), [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") and [`complex`](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") that is valid for this object. + + Check if the expression corresponds to a plain symbol. - In general, an [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") is only returned if the expression only involved symbolic integers. If floating-point values were used during the evaluation, the return value will be a [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") regardless of whether the represented value is an integer. This is because floating-point values “infect” symbolic computations by their inexact nature, and symbolic libraries will use inexact floating-point semantics not exact real-number semantics when they are involved. If you want to assert that all floating-point calculations *were* carried out at infinite precision (i.e. [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") could represent every intermediate value exactly), you can use [`float.is_integer()`](https://docs.python.org/3/library/stdtypes.html#float.is_integer "(in Python v3.13)") to check if the return float represents an integer and cast it using [`int`](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") if so. This would be an unusual pattern; typically one requires this by only ever using explicitly [`Rational`](https://docs.python.org/3/library/numbers.html#numbers.Rational "(in Python v3.13)") objects while working with symbolic expressions. + **Returns** - This is more reliable and performant than using [`is_real()`](#qiskit.circuit.ParameterVectorElement.is_real "qiskit.circuit.ParameterVectorElement.is_real") followed by calling [`float`](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") or [`complex`](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)"), as in some cases [`is_real()`](#qiskit.circuit.ParameterVectorElement.is_real "qiskit.circuit.ParameterVectorElement.is_real") needs to force a floating-point evaluation to determine an accurate result to work around bugs in the upstream symbolic libraries. + `True` is this expression corresponds to a symbol, `False` otherwise. + - **Returns** + ### log - A Python number representing the object. + + Take the natural logarithm of the expression. + - **Raises** + ### numeric - [**TypeError**](https://docs.python.org/3/library/exceptions.html#TypeError "(in Python v3.13)") – if there are unbound parameters. + + Cast this expression to a numeric value. - **Return type** + **Parameters** - [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") | [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") | [complex](https://docs.python.org/3/library/functions.html#complex "(in Python v3.13)") + **strict** – If `True` (default) this function raises an error if there are any unbound symbols in the expression. If `False`, this allows casting if the expression represents a numeric value, regardless of unbound symbols. For example `(0 * Parameter("x"))` is 0 but has the symbol `x` present. ### sign - - Sign of a ParameterExpression + + Return the sign of the expression. ### sin - - Sine of a ParameterExpression + + Sine of the expression. ### subs - - Substitute self with the corresponding parameter in `parameter_map`. + + Returns a new expression with replacement parameters. **Parameters** - * **parameter\_map** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")) – - * **allow\_unknown\_parameters** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – + * **parameter\_map** – Mapping from [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in `self` to the [`ParameterExpression`](qiskit.circuit.ParameterExpression "qiskit.circuit.ParameterExpression") instances with which they should be replaced. + * **allow\_unknown\_parameters** – If `False`, raises an error if `parameter_map` contains [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter")s in the keys outside those present in the expression. If `True`, any such parameters are simply ignored. + + **Raises** + + [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – + + * If parameter\_map contains parameters outside those in self. - If the replacement parameters in `parameter_map` would result in a name conflict in the generated expression. + + **Returns** + + A new expression with the specified parameters replaced. ### sympify - - Return symbolic expression as a raw Sympy object. + + Return a SymPy equivalent of this expression. - - This is for interoperability only. Qiskit will not accept or work with raw Sympy or Symegine expressions in its parameters, because they do not contain the tracking information used in circuit-parameter binding and assignment. - + **Returns** + + A SymPy equivalent of this expression. ### tan - - Tangent of a ParameterExpression + + Tangent of the expression. diff --git a/docs/api/qiskit/dev/qiskit.circuit.QuantumCircuit.mdx b/docs/api/qiskit/dev/qiskit.circuit.QuantumCircuit.mdx index 2edf9171e79..e6977aac9f7 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.QuantumCircuit.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.QuantumCircuit.mdx @@ -2513,7 +2513,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. * **q\_controls** ([*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]]*) – The qubits used as the controls. * **q\_target** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit targeted by the gate. * **use\_basis\_gates** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – use p, u, cx basis gates. @@ -2541,7 +2541,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **lam** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. + * **lam** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. * **q\_controls** ([*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]]*) – The qubits used as the controls. * **q\_target** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit targeted by the gate. * **use\_basis\_gates** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – use p, u, cx basis gates. @@ -2672,7 +2672,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. * **qubits** ([*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]]*) – The qubits to apply the gate to. **Returns** @@ -2693,7 +2693,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – THe angle of the rotation. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – THe angle of the rotation. * **qubit** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. **Returns** @@ -2828,8 +2828,8 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. - * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the axis of rotation in the x-y plane. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. + * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the axis of rotation in the x-y plane. * **qubit** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. **Returns** @@ -2915,9 +2915,9 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **vx** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – x-component of the rotation axis. - * **vy** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – y-component of the rotation axis. - * **vz** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – z-component of the rotation axis. + * **vx** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – x-component of the rotation axis. + * **vy** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – y-component of the rotation axis. + * **vz** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – z-component of the rotation axis. * **qubit** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. **Returns** @@ -2960,7 +2960,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The angle of the rotation. * **qubit1** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. * **qubit2** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. @@ -3004,7 +3004,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The rotation angle of the gate. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The rotation angle of the gate. * **qubit1** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. * **qubit2** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. @@ -3026,7 +3026,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The rotation angle of the gate. + * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The rotation angle of the gate. * **qubit** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. **Returns** @@ -3047,7 +3047,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The rotation angle of the gate. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The rotation angle of the gate. * **qubit1** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. * **qubit2** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. @@ -3069,7 +3069,7 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The rotation angle of the gate. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The rotation angle of the gate. * **qubit1** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. * **qubit2** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. @@ -3259,9 +3259,9 @@ python_api_name: qiskit.circuit.QuantumCircuit **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The $\theta$ rotation angle of the gate. - * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The $\phi$ rotation angle of the gate. - * **lam** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The $\lambda$ rotation angle of the gate. + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The $\theta$ rotation angle of the gate. + * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The $\phi$ rotation angle of the gate. + * **lam** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The $\lambda$ rotation angle of the gate. * **qubit** ([*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*QuantumRegister*](circuit#qiskit.circuit.QuantumRegister "qiskit.circuit.QuantumRegister") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *|*[*slice*](https://docs.python.org/3/library/functions.html#slice "(in Python v3.13)") *|*[*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.13)")*\[*[*Qubit*](circuit#qiskit.circuit.Qubit "qiskit.circuit.Qubit") *|*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]*) – The qubit(s) to apply the gate to. **Returns** diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.AND.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.AND.mdx index 65435a14287..5b11f3df579 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.AND.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.AND.mdx @@ -37,470 +37,6 @@ python_api_name: qiskit.circuit.library.AND ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.AND.unit "qiskit.circuit.library.AND.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.AND.num_input_vars "qiskit.circuit.library.AND.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.AND.num_input_vars "qiskit.circuit.library.AND.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.AND.num_vars "qiskit.circuit.library.AND.num_vars") + [`num_stretches()`](#qiskit.circuit.library.AND.num_stretches "qiskit.circuit.library.AND.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.AND.num_captured_vars "qiskit.circuit.library.AND.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.AND.duration "qiskit.circuit.library.AND.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.CDKMRippleCarryAdder.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.CDKMRippleCarryAdder.mdx index 603bd8f08d8..d94d3acd46e 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.CDKMRippleCarryAdder.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.CDKMRippleCarryAdder.mdx @@ -95,480 +95,6 @@ python_api_name: qiskit.circuit.library.CDKMRippleCarryAdder ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.CDKMRippleCarryAdder.unit "qiskit.circuit.library.CDKMRippleCarryAdder.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.CDKMRippleCarryAdder.num_input_vars "qiskit.circuit.library.CDKMRippleCarryAdder.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.CDKMRippleCarryAdder.num_input_vars "qiskit.circuit.library.CDKMRippleCarryAdder.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.CDKMRippleCarryAdder.num_vars "qiskit.circuit.library.CDKMRippleCarryAdder.num_vars") + [`num_stretches()`](#qiskit.circuit.library.CDKMRippleCarryAdder.num_stretches "qiskit.circuit.library.CDKMRippleCarryAdder.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.CDKMRippleCarryAdder.num_captured_vars "qiskit.circuit.library.CDKMRippleCarryAdder.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_state\_qubits - - - The number of state qubits, i.e. the number of bits in each input register. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.CDKMRippleCarryAdder.duration "qiskit.circuit.library.CDKMRippleCarryAdder.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.Diagonal.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.Diagonal.mdx index f860ab18ec2..ee89257896a 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.Diagonal.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.Diagonal.mdx @@ -27,470 +27,6 @@ python_api_name: qiskit.circuit.library.Diagonal ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.Diagonal.unit "qiskit.circuit.library.Diagonal.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.Diagonal.num_input_vars "qiskit.circuit.library.Diagonal.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.Diagonal.num_input_vars "qiskit.circuit.library.Diagonal.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.Diagonal.num_vars "qiskit.circuit.library.Diagonal.num_vars") + [`num_stretches()`](#qiskit.circuit.library.Diagonal.num_stretches "qiskit.circuit.library.Diagonal.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.Diagonal.num_captured_vars "qiskit.circuit.library.Diagonal.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.Diagonal.duration "qiskit.circuit.library.Diagonal.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.DraperQFTAdder.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.DraperQFTAdder.mdx index d8e573e94cd..b91c68d4610 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.DraperQFTAdder.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.DraperQFTAdder.mdx @@ -62,480 +62,6 @@ python_api_name: qiskit.circuit.library.DraperQFTAdder ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.DraperQFTAdder.unit "qiskit.circuit.library.DraperQFTAdder.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.DraperQFTAdder.num_input_vars "qiskit.circuit.library.DraperQFTAdder.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.DraperQFTAdder.num_input_vars "qiskit.circuit.library.DraperQFTAdder.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.DraperQFTAdder.num_vars "qiskit.circuit.library.DraperQFTAdder.num_vars") + [`num_stretches()`](#qiskit.circuit.library.DraperQFTAdder.num_stretches "qiskit.circuit.library.DraperQFTAdder.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.DraperQFTAdder.num_captured_vars "qiskit.circuit.library.DraperQFTAdder.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_state\_qubits - - - The number of state qubits, i.e. the number of bits in each input register. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.DraperQFTAdder.duration "qiskit.circuit.library.DraperQFTAdder.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.EfficientSU2.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.EfficientSU2.mdx index 72bbc5d77d2..21cdd3e3dd5 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.EfficientSU2.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.EfficientSU2.mdx @@ -86,476 +86,6 @@ python_api_name: qiskit.circuit.library.EfficientSU2 ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.EfficientSU2.unit "qiskit.circuit.library.EfficientSU2.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see `get_entangler_map()` for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.EfficientSU2.num_input_vars "qiskit.circuit.library.EfficientSU2.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.EfficientSU2.num_input_vars "qiskit.circuit.library.EfficientSU2.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.EfficientSU2.num_vars "qiskit.circuit.library.EfficientSU2.num_vars") + [`num_stretches()`](#qiskit.circuit.library.EfficientSU2.num_stretches "qiskit.circuit.library.EfficientSU2.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.EfficientSU2.num_captured_vars "qiskit.circuit.library.EfficientSU2.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_parameters\_settable - - - The number of total parameters that can be set to distinct values. - - This does not change when the parameters are bound or exchanged for same parameters, and therefore is different from `num_parameters` which counts the number of unique [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects currently in the circuit. - - **Returns** - - The number of parameters originally available in the circuit. - - - This quantity does not require the circuit to be built yet. - - - - ### num\_qubits - - - Returns the number of qubits in this circuit. - - **Returns** - - The number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - ### parameter\_bounds @@ -566,120 +96,6 @@ python_api_name: qiskit.circuit.library.EfficientSU2 The parameter bounds. - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### preferred\_init\_points - - - The initial points for the parameters. Can be stored as initial guess in optimization. - - **Returns** - - The initial values for the parameters, or None, if none have been set. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.EfficientSU2.duration "qiskit.circuit.library.EfficientSU2.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.EvolvedOperatorAnsatz.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.EvolvedOperatorAnsatz.mdx index 4a35a836dea..def7d20e759 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.EvolvedOperatorAnsatz.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.EvolvedOperatorAnsatz.mdx @@ -26,90 +26,6 @@ python_api_name: qiskit.circuit.library.EvolvedOperatorAnsatz ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.EvolvedOperatorAnsatz.unit "qiskit.circuit.library.EvolvedOperatorAnsatz.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see `get_entangler_map()` for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - ### evolution @@ -124,260 +40,6 @@ python_api_name: qiskit.circuit.library.EvolvedOperatorAnsatz [EvolutionSynthesis](qiskit.synthesis.EvolutionSynthesis "qiskit.synthesis.EvolutionSynthesis") - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.EvolvedOperatorAnsatz.num_input_vars "qiskit.circuit.library.EvolvedOperatorAnsatz.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.EvolvedOperatorAnsatz.num_input_vars "qiskit.circuit.library.EvolvedOperatorAnsatz.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.EvolvedOperatorAnsatz.num_vars "qiskit.circuit.library.EvolvedOperatorAnsatz.num_vars") + [`num_stretches()`](#qiskit.circuit.library.EvolvedOperatorAnsatz.num_stretches "qiskit.circuit.library.EvolvedOperatorAnsatz.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.EvolvedOperatorAnsatz.num_captured_vars "qiskit.circuit.library.EvolvedOperatorAnsatz.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_parameters\_settable - - - The number of total parameters that can be set to distinct values. - - This does not change when the parameters are bound or exchanged for same parameters, and therefore is different from `num_parameters` which counts the number of unique [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects currently in the circuit. - - **Returns** - - The number of parameters originally available in the circuit. - - - This quantity does not require the circuit to be built yet. - - - ### num\_qubits @@ -388,102 +50,6 @@ python_api_name: qiskit.circuit.library.EvolvedOperatorAnsatz The number of qubits. - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - ### operators @@ -498,152 +64,12 @@ python_api_name: qiskit.circuit.library.EvolvedOperatorAnsatz [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)") - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - - ### parameter\_bounds - - - The parameter bounds for the unbound parameters in the circuit. - - **Returns** - - A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If `None` is returned, problem is fully unbounded. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - ### preferred\_init\_points Getter of preferred initial points based on the given initial state. - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.EvolvedOperatorAnsatz.duration "qiskit.circuit.library.EvolvedOperatorAnsatz.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.ExactReciprocal.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.ExactReciprocal.mdx index 18c579ec719..4842d768488 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.ExactReciprocal.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.ExactReciprocal.mdx @@ -34,470 +34,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.ExactReciprocal.unit "qiskit.circuit.library.ExactReciprocal.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.ExactReciprocal.num_input_vars "qiskit.circuit.library.ExactReciprocal.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.ExactReciprocal.num_input_vars "qiskit.circuit.library.ExactReciprocal.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.ExactReciprocal.num_vars "qiskit.circuit.library.ExactReciprocal.num_vars") + [`num_stretches()`](#qiskit.circuit.library.ExactReciprocal.num_stretches "qiskit.circuit.library.ExactReciprocal.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.ExactReciprocal.num_captured_vars "qiskit.circuit.library.ExactReciprocal.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.ExactReciprocal.duration "qiskit.circuit.library.ExactReciprocal.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.ExcitationPreserving.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.ExcitationPreserving.mdx index 0f7cba29d51..973587bce3f 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.ExcitationPreserving.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.ExcitationPreserving.mdx @@ -104,476 +104,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.ExcitationPreserving.unit "qiskit.circuit.library.ExcitationPreserving.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see `get_entangler_map()` for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.ExcitationPreserving.num_input_vars "qiskit.circuit.library.ExcitationPreserving.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.ExcitationPreserving.num_input_vars "qiskit.circuit.library.ExcitationPreserving.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.ExcitationPreserving.num_vars "qiskit.circuit.library.ExcitationPreserving.num_vars") + [`num_stretches()`](#qiskit.circuit.library.ExcitationPreserving.num_stretches "qiskit.circuit.library.ExcitationPreserving.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.ExcitationPreserving.num_captured_vars "qiskit.circuit.library.ExcitationPreserving.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_parameters\_settable - - - The number of total parameters that can be set to distinct values. - - This does not change when the parameters are bound or exchanged for same parameters, and therefore is different from `num_parameters` which counts the number of unique [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects currently in the circuit. - - **Returns** - - The number of parameters originally available in the circuit. - - - This quantity does not require the circuit to be built yet. - - - - ### num\_qubits - - - Returns the number of qubits in this circuit. - - **Returns** - - The number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - ### parameter\_bounds @@ -584,120 +114,6 @@ $$ The parameter bounds. - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### preferred\_init\_points - - - The initial points for the parameters. Can be stored as initial guess in optimization. - - **Returns** - - The initial values for the parameters, or None, if none have been set. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.ExcitationPreserving.duration "qiskit.circuit.library.ExcitationPreserving.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.FourierChecking.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.FourierChecking.mdx index 3813095acd4..cf2b6313799 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.FourierChecking.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.FourierChecking.mdx @@ -48,470 +48,6 @@ python_api_name: qiskit.circuit.library.FourierChecking ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.FourierChecking.unit "qiskit.circuit.library.FourierChecking.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.FourierChecking.num_input_vars "qiskit.circuit.library.FourierChecking.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.FourierChecking.num_input_vars "qiskit.circuit.library.FourierChecking.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.FourierChecking.num_vars "qiskit.circuit.library.FourierChecking.num_vars") + [`num_stretches()`](#qiskit.circuit.library.FourierChecking.num_stretches "qiskit.circuit.library.FourierChecking.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.FourierChecking.num_captured_vars "qiskit.circuit.library.FourierChecking.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.FourierChecking.duration "qiskit.circuit.library.FourierChecking.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.FunctionalPauliRotations.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.FunctionalPauliRotations.mdx index d81499a7f07..bfca6b9c59e 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.FunctionalPauliRotations.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.FunctionalPauliRotations.mdx @@ -23,12 +23,6 @@ python_api_name: qiskit.circuit.library.FunctionalPauliRotations ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - ### basis @@ -41,166 +35,6 @@ python_api_name: qiskit.circuit.library.FunctionalPauliRotations The kind of Pauli rotation used in controlled rotation. - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.FunctionalPauliRotations.unit "qiskit.circuit.library.FunctionalPauliRotations.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - ### num\_ancilla\_qubits @@ -211,112 +45,6 @@ python_api_name: qiskit.circuit.library.FunctionalPauliRotations The minimal number of ancillas required. - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.FunctionalPauliRotations.num_input_vars "qiskit.circuit.library.FunctionalPauliRotations.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.FunctionalPauliRotations.num_input_vars "qiskit.circuit.library.FunctionalPauliRotations.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.FunctionalPauliRotations.num_vars "qiskit.circuit.library.FunctionalPauliRotations.num_vars") + [`num_stretches()`](#qiskit.circuit.library.FunctionalPauliRotations.num_stretches "qiskit.circuit.library.FunctionalPauliRotations.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.FunctionalPauliRotations.num_captured_vars "qiskit.circuit.library.FunctionalPauliRotations.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - ### num\_state\_qubits @@ -327,186 +55,6 @@ python_api_name: qiskit.circuit.library.FunctionalPauliRotations The number of state qubits. - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.FunctionalPauliRotations.duration "qiskit.circuit.library.FunctionalPauliRotations.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.GMS.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.GMS.mdx index 84fc691f64b..0c4fcbba72c 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.GMS.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.GMS.mdx @@ -57,470 +57,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.GMS.unit "qiskit.circuit.library.GMS.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GMS.num_input_vars "qiskit.circuit.library.GMS.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GMS.num_input_vars "qiskit.circuit.library.GMS.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.GMS.num_vars "qiskit.circuit.library.GMS.num_vars") + [`num_stretches()`](#qiskit.circuit.library.GMS.num_stretches "qiskit.circuit.library.GMS.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.GMS.num_captured_vars "qiskit.circuit.library.GMS.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.GMS.duration "qiskit.circuit.library.GMS.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.GR.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.GR.mdx index cd3fc6aabb3..44261df1b6e 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.GR.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.GR.mdx @@ -47,470 +47,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.GR.unit "qiskit.circuit.library.GR.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GR.num_input_vars "qiskit.circuit.library.GR.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GR.num_input_vars "qiskit.circuit.library.GR.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.GR.num_vars "qiskit.circuit.library.GR.num_vars") + [`num_stretches()`](#qiskit.circuit.library.GR.num_stretches "qiskit.circuit.library.GR.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.GR.num_captured_vars "qiskit.circuit.library.GR.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.GR.duration "qiskit.circuit.library.GR.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.GRX.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.GRX.mdx index e0783f3091a..4629773d338 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.GRX.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.GRX.mdx @@ -46,470 +46,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.GRX.unit "qiskit.circuit.library.GRX.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GRX.num_input_vars "qiskit.circuit.library.GRX.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GRX.num_input_vars "qiskit.circuit.library.GRX.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.GRX.num_vars "qiskit.circuit.library.GRX.num_vars") + [`num_stretches()`](#qiskit.circuit.library.GRX.num_stretches "qiskit.circuit.library.GRX.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.GRX.num_captured_vars "qiskit.circuit.library.GRX.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.GRX.duration "qiskit.circuit.library.GRX.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.GRY.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.GRY.mdx index 4c340a60928..4ddf9298e44 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.GRY.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.GRY.mdx @@ -46,470 +46,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.GRY.unit "qiskit.circuit.library.GRY.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GRY.num_input_vars "qiskit.circuit.library.GRY.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GRY.num_input_vars "qiskit.circuit.library.GRY.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.GRY.num_vars "qiskit.circuit.library.GRY.num_vars") + [`num_stretches()`](#qiskit.circuit.library.GRY.num_stretches "qiskit.circuit.library.GRY.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.GRY.num_captured_vars "qiskit.circuit.library.GRY.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.GRY.duration "qiskit.circuit.library.GRY.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.GRZ.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.GRZ.mdx index 79d9ca3adbb..88c4a00aae0 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.GRZ.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.GRZ.mdx @@ -46,470 +46,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.GRZ.unit "qiskit.circuit.library.GRZ.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GRZ.num_input_vars "qiskit.circuit.library.GRZ.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GRZ.num_input_vars "qiskit.circuit.library.GRZ.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.GRZ.num_vars "qiskit.circuit.library.GRZ.num_vars") + [`num_stretches()`](#qiskit.circuit.library.GRZ.num_stretches "qiskit.circuit.library.GRZ.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.GRZ.num_captured_vars "qiskit.circuit.library.GRZ.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.GRZ.duration "qiskit.circuit.library.GRZ.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.GlobalPhaseGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.GlobalPhaseGate.mdx index 653e3ad4942..c9dd88e8163 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.GlobalPhaseGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.GlobalPhaseGate.mdx @@ -28,7 +28,7 @@ $$ **Parameters** - * **phase** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The value of phase it takes. + * **phase** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – The value of phase it takes. * **label** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") *| None*) – An optional label for the gate. ## Attributes diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.GraphState.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.GraphState.mdx index 55c06216c80..93929118a0e 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.GraphState.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.GraphState.mdx @@ -55,470 +55,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.GraphState.unit "qiskit.circuit.library.GraphState.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GraphState.num_input_vars "qiskit.circuit.library.GraphState.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GraphState.num_input_vars "qiskit.circuit.library.GraphState.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.GraphState.num_vars "qiskit.circuit.library.GraphState.num_vars") + [`num_stretches()`](#qiskit.circuit.library.GraphState.num_stretches "qiskit.circuit.library.GraphState.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.GraphState.num_captured_vars "qiskit.circuit.library.GraphState.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.GraphState.duration "qiskit.circuit.library.GraphState.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.GroverOperator.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.GroverOperator.mdx index 3a36833dec0..2f5eaf4a0e9 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.GroverOperator.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.GroverOperator.mdx @@ -170,466 +170,12 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.GroverOperator.unit "qiskit.circuit.library.GroverOperator.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GroverOperator.num_input_vars "qiskit.circuit.library.GroverOperator.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.GroverOperator.num_input_vars "qiskit.circuit.library.GroverOperator.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.GroverOperator.num_vars "qiskit.circuit.library.GroverOperator.num_vars") + [`num_stretches()`](#qiskit.circuit.library.GroverOperator.num_stretches "qiskit.circuit.library.GroverOperator.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.GroverOperator.num_captured_vars "qiskit.circuit.library.GroverOperator.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - ### oracle The oracle implementing a reflection about the bad state. - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - ### reflection\_qubits @@ -642,16 +188,6 @@ $$ The subcircuit implementing the A operator or Hadamards. - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.GroverOperator.duration "qiskit.circuit.library.GroverOperator.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### zero\_reflection diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.HRSCumulativeMultiplier.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.HRSCumulativeMultiplier.mdx index d6786eb055e..c70b35611f3 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.HRSCumulativeMultiplier.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.HRSCumulativeMultiplier.mdx @@ -67,490 +67,6 @@ python_api_name: qiskit.circuit.library.HRSCumulativeMultiplier ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.HRSCumulativeMultiplier.unit "qiskit.circuit.library.HRSCumulativeMultiplier.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.HRSCumulativeMultiplier.num_input_vars "qiskit.circuit.library.HRSCumulativeMultiplier.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.HRSCumulativeMultiplier.num_input_vars "qiskit.circuit.library.HRSCumulativeMultiplier.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.HRSCumulativeMultiplier.num_vars "qiskit.circuit.library.HRSCumulativeMultiplier.num_vars") + [`num_stretches()`](#qiskit.circuit.library.HRSCumulativeMultiplier.num_stretches "qiskit.circuit.library.HRSCumulativeMultiplier.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.HRSCumulativeMultiplier.num_captured_vars "qiskit.circuit.library.HRSCumulativeMultiplier.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_result\_qubits - - - The number of result qubits to limit the output to. - - **Returns** - - The number of result qubits. - - - ### num\_state\_qubits - - - The number of state qubits, i.e. the number of bits in each input register. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.HRSCumulativeMultiplier.duration "qiskit.circuit.library.HRSCumulativeMultiplier.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.HiddenLinearFunction.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.HiddenLinearFunction.mdx index 9048b2c8cea..a2848d7777e 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.HiddenLinearFunction.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.HiddenLinearFunction.mdx @@ -57,470 +57,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.HiddenLinearFunction.unit "qiskit.circuit.library.HiddenLinearFunction.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.HiddenLinearFunction.num_input_vars "qiskit.circuit.library.HiddenLinearFunction.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.HiddenLinearFunction.num_input_vars "qiskit.circuit.library.HiddenLinearFunction.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.HiddenLinearFunction.num_vars "qiskit.circuit.library.HiddenLinearFunction.num_vars") + [`num_stretches()`](#qiskit.circuit.library.HiddenLinearFunction.num_stretches "qiskit.circuit.library.HiddenLinearFunction.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.HiddenLinearFunction.num_captured_vars "qiskit.circuit.library.HiddenLinearFunction.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.HiddenLinearFunction.duration "qiskit.circuit.library.HiddenLinearFunction.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.IQP.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.IQP.mdx index fe82e898c16..9f5ea6a5982 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.IQP.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.IQP.mdx @@ -45,470 +45,6 @@ python_api_name: qiskit.circuit.library.IQP ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.IQP.unit "qiskit.circuit.library.IQP.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.IQP.num_input_vars "qiskit.circuit.library.IQP.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.IQP.num_input_vars "qiskit.circuit.library.IQP.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.IQP.num_vars "qiskit.circuit.library.IQP.num_vars") + [`num_stretches()`](#qiskit.circuit.library.IQP.num_stretches "qiskit.circuit.library.IQP.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.IQP.num_captured_vars "qiskit.circuit.library.IQP.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.IQP.duration "qiskit.circuit.library.IQP.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.InnerProduct.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.InnerProduct.mdx index 100169fb628..f3828d82c6a 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.InnerProduct.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.InnerProduct.mdx @@ -56,470 +56,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.InnerProduct.unit "qiskit.circuit.library.InnerProduct.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.InnerProduct.num_input_vars "qiskit.circuit.library.InnerProduct.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.InnerProduct.num_input_vars "qiskit.circuit.library.InnerProduct.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.InnerProduct.num_vars "qiskit.circuit.library.InnerProduct.num_vars") + [`num_stretches()`](#qiskit.circuit.library.InnerProduct.num_stretches "qiskit.circuit.library.InnerProduct.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.InnerProduct.num_captured_vars "qiskit.circuit.library.InnerProduct.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.InnerProduct.duration "qiskit.circuit.library.InnerProduct.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.IntegerComparator.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.IntegerComparator.mdx index 5a212b3085c..dc88b1c2377 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.IntegerComparator.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.IntegerComparator.mdx @@ -32,70 +32,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.IntegerComparator.unit "qiskit.circuit.library.IntegerComparator.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### geq @@ -106,214 +42,6 @@ $$ True, if the comparator compares `>=`, False if `<`. - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.IntegerComparator.num_input_vars "qiskit.circuit.library.IntegerComparator.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.IntegerComparator.num_input_vars "qiskit.circuit.library.IntegerComparator.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.IntegerComparator.num_vars "qiskit.circuit.library.IntegerComparator.num_vars") + [`num_stretches()`](#qiskit.circuit.library.IntegerComparator.num_stretches "qiskit.circuit.library.IntegerComparator.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.IntegerComparator.num_captured_vars "qiskit.circuit.library.IntegerComparator.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - ### num\_state\_qubits @@ -324,186 +52,6 @@ $$ The number of state qubits. - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.IntegerComparator.duration "qiskit.circuit.library.IntegerComparator.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### value diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.LinearAmplitudeFunction.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.LinearAmplitudeFunction.mdx index 1f147cd2855..c4dc7792435 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.LinearAmplitudeFunction.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.LinearAmplitudeFunction.mdx @@ -71,470 +71,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.LinearAmplitudeFunction.unit "qiskit.circuit.library.LinearAmplitudeFunction.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.LinearAmplitudeFunction.num_input_vars "qiskit.circuit.library.LinearAmplitudeFunction.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.LinearAmplitudeFunction.num_input_vars "qiskit.circuit.library.LinearAmplitudeFunction.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.LinearAmplitudeFunction.num_vars "qiskit.circuit.library.LinearAmplitudeFunction.num_vars") + [`num_stretches()`](#qiskit.circuit.library.LinearAmplitudeFunction.num_stretches "qiskit.circuit.library.LinearAmplitudeFunction.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.LinearAmplitudeFunction.num_captured_vars "qiskit.circuit.library.LinearAmplitudeFunction.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.LinearAmplitudeFunction.duration "qiskit.circuit.library.LinearAmplitudeFunction.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.LinearPauliRotations.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.LinearPauliRotations.mdx index 953e2f363ee..e2d56408538 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.LinearPauliRotations.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.LinearPauliRotations.mdx @@ -46,326 +46,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### basis - - - The kind of Pauli rotation to be used. - - Set the basis to ‘X’, ‘Y’ or ‘Z’ for controlled-X, -Y, or -Z rotations respectively. - - **Returns** - - The kind of Pauli rotation used in controlled rotation. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.LinearPauliRotations.unit "qiskit.circuit.library.LinearPauliRotations.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancilla\_qubits - - - The minimum number of ancilla qubits in the circuit. - - **Returns** - - The minimal number of ancillas required. - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.LinearPauliRotations.num_input_vars "qiskit.circuit.library.LinearPauliRotations.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.LinearPauliRotations.num_input_vars "qiskit.circuit.library.LinearPauliRotations.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.LinearPauliRotations.num_vars "qiskit.circuit.library.LinearPauliRotations.num_vars") + [`num_stretches()`](#qiskit.circuit.library.LinearPauliRotations.num_stretches "qiskit.circuit.library.LinearPauliRotations.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.LinearPauliRotations.num_captured_vars "qiskit.circuit.library.LinearPauliRotations.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_state\_qubits - - - The number of state qubits representing the state $|x\rangle$. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - ### offset @@ -378,160 +58,6 @@ $$ The offset angle. - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - ### slope @@ -544,16 +70,6 @@ $$ The rotation angle common in all controlled rotations. - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.LinearPauliRotations.duration "qiskit.circuit.library.LinearPauliRotations.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCMT.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCMT.mdx index a6e87724a92..988513a9411 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCMT.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCMT.mdx @@ -49,476 +49,12 @@ python_api_name: qiskit.circuit.library.MCMT ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.MCMT.unit "qiskit.circuit.library.MCMT.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - ### num\_ancilla\_qubits Return the number of ancillas. - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.MCMT.num_input_vars "qiskit.circuit.library.MCMT.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.MCMT.num_input_vars "qiskit.circuit.library.MCMT.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.MCMT.num_vars "qiskit.circuit.library.MCMT.num_vars") + [`num_stretches()`](#qiskit.circuit.library.MCMT.num_stretches "qiskit.circuit.library.MCMT.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.MCMT.num_captured_vars "qiskit.circuit.library.MCMT.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.MCMT.duration "qiskit.circuit.library.MCMT.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCMTVChain.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCMTVChain.mdx index e5beb7f0384..0b3cb6a5f72 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCMTVChain.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCMTVChain.mdx @@ -66,476 +66,12 @@ python_api_name: qiskit.circuit.library.MCMTVChain * **num\_ctrl\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – * **num\_target\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.MCMTVChain.unit "qiskit.circuit.library.MCMTVChain.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - ### num\_ancilla\_qubits Return the number of ancilla qubits required. - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.MCMTVChain.num_input_vars "qiskit.circuit.library.MCMTVChain.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.MCMTVChain.num_input_vars "qiskit.circuit.library.MCMTVChain.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.MCMTVChain.num_vars "qiskit.circuit.library.MCMTVChain.num_vars") + [`num_stretches()`](#qiskit.circuit.library.MCMTVChain.num_stretches "qiskit.circuit.library.MCMTVChain.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.MCMTVChain.num_captured_vars "qiskit.circuit.library.MCMTVChain.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.MCMTVChain.duration "qiskit.circuit.library.MCMTVChain.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCXGrayCode.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCXGrayCode.mdx index 9a153468934..e83a4c872f6 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCXGrayCode.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCXGrayCode.mdx @@ -17,7 +17,7 @@ python_api_name: qiskit.circuit.library.MCXGrayCode Create new MCX gate. - ## Attributes + ## Methods **Parameters** @@ -25,121 +25,6 @@ python_api_name: qiskit.circuit.library.MCXGrayCode * **label** (*Optional\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*]*) – * **ctrl\_state** (*Optional\[Union\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*,* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]]*) – - ### base\_class - - - Get the base class of this instruction. This is guaranteed to be in the inheritance tree of `self`. - - The “base class” of an instruction is the lowest class in its inheritance tree that the object should be considered entirely compatible with for \_all\_ circuit applications. This typically means that the subclass is defined purely to offer some sort of programmer convenience over the base class, and the base class is the “true” class for a behavioral perspective. In particular, you should *not* override [`base_class`](#qiskit.circuit.library.MCXGrayCode.base_class "qiskit.circuit.library.MCXGrayCode.base_class") if you are defining a custom version of an instruction that will be implemented differently by hardware, such as an alternative measurement strategy, or a version of a parametrized gate with a particular set of parameters for the purposes of distinguishing it in a [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target") from the full parametrized gate. - - This is often exactly equivalent to `type(obj)`, except in the case of singleton instances of standard-library instructions. These singleton instances are special subclasses of their base class, and this property will return that base. For example: - - ```python - >>> isinstance(XGate(), XGate) - True - >>> type(XGate()) is XGate - False - >>> XGate().base_class is XGate - True - ``` - - In general, you should not rely on the precise class of an instruction; within a given circuit, it is expected that `Instruction.name` should be a more suitable discriminator in most situations. - - - ### ctrl\_state - - - Return the control state of the gate as a decimal integer. - - - ### decompositions - - - Get the decompositions of the instruction from the SessionEquivalenceLibrary. - - - ### definition - - - Return definition in terms of other basic gates. If the gate has open controls, as determined from [`ctrl_state`](#qiskit.circuit.library.MCXGrayCode.ctrl_state "qiskit.circuit.library.MCXGrayCode.ctrl_state"), the returned definition is conjugated with X without changing the internal `_definition`. - - - ### label - - - Return instruction label - - - ### mutable - - - Is this instance is a mutable unique instance or not. - - If this attribute is `False` the gate instance is a shared singleton and is not mutable. - - - ### name - - - Get name of gate. If the gate has open controls the gate name will become: - - > \ - - where \ is the gate name for the default case of closed control qubits and \ is the integer value of the control state for the gate. - - - ### num\_ancilla\_qubits - - - The number of ancilla qubits. - - - ### num\_clbits - - - Return the number of clbits. - - - ### num\_ctrl\_qubits - - - Get number of control qubits. - - **Returns** - - The number of control qubits for the gate. - - **Return type** - - [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") - - - ### num\_qubits - - - Return the number of qubits. - - - ### params - - - Get parameters from base\_gate. - - **Returns** - - List of gate parameters. - - **Return type** - - [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)") - - **Raises** - - [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – Controlled gate does not define a base gate - - - ## Methods - ### inverse diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCXRecursive.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCXRecursive.mdx index 7134e9b7bd3..f559b53a12c 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCXRecursive.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCXRecursive.mdx @@ -24,7 +24,7 @@ python_api_name: qiskit.circuit.library.MCXRecursive Create new MCX gate. - ## Attributes + ## Methods **Parameters** @@ -32,121 +32,6 @@ python_api_name: qiskit.circuit.library.MCXRecursive * **label** (*Optional\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*]*) – * **ctrl\_state** (*Optional\[Union\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*,* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]]*) – - ### base\_class - - - Get the base class of this instruction. This is guaranteed to be in the inheritance tree of `self`. - - The “base class” of an instruction is the lowest class in its inheritance tree that the object should be considered entirely compatible with for \_all\_ circuit applications. This typically means that the subclass is defined purely to offer some sort of programmer convenience over the base class, and the base class is the “true” class for a behavioral perspective. In particular, you should *not* override [`base_class`](#qiskit.circuit.library.MCXRecursive.base_class "qiskit.circuit.library.MCXRecursive.base_class") if you are defining a custom version of an instruction that will be implemented differently by hardware, such as an alternative measurement strategy, or a version of a parametrized gate with a particular set of parameters for the purposes of distinguishing it in a [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target") from the full parametrized gate. - - This is often exactly equivalent to `type(obj)`, except in the case of singleton instances of standard-library instructions. These singleton instances are special subclasses of their base class, and this property will return that base. For example: - - ```python - >>> isinstance(XGate(), XGate) - True - >>> type(XGate()) is XGate - False - >>> XGate().base_class is XGate - True - ``` - - In general, you should not rely on the precise class of an instruction; within a given circuit, it is expected that `Instruction.name` should be a more suitable discriminator in most situations. - - - ### ctrl\_state - - - Return the control state of the gate as a decimal integer. - - - ### decompositions - - - Get the decompositions of the instruction from the SessionEquivalenceLibrary. - - - ### definition - - - Return definition in terms of other basic gates. If the gate has open controls, as determined from [`ctrl_state`](#qiskit.circuit.library.MCXRecursive.ctrl_state "qiskit.circuit.library.MCXRecursive.ctrl_state"), the returned definition is conjugated with X without changing the internal `_definition`. - - - ### label - - - Return instruction label - - - ### mutable - - - Is this instance is a mutable unique instance or not. - - If this attribute is `False` the gate instance is a shared singleton and is not mutable. - - - ### name - - - Get name of gate. If the gate has open controls the gate name will become: - - > \ - - where \ is the gate name for the default case of closed control qubits and \ is the integer value of the control state for the gate. - - - ### num\_ancilla\_qubits - - - The number of ancilla qubits. - - - ### num\_clbits - - - Return the number of clbits. - - - ### num\_ctrl\_qubits - - - Get number of control qubits. - - **Returns** - - The number of control qubits for the gate. - - **Return type** - - [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") - - - ### num\_qubits - - - Return the number of qubits. - - - ### params - - - Get parameters from base\_gate. - - **Returns** - - List of gate parameters. - - **Return type** - - [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)") - - **Raises** - - [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – Controlled gate does not define a base gate - - - ## Methods - ### get\_num\_ancilla\_qubits diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.MCXVChain.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.MCXVChain.mdx index 99d5942161e..230af85b12c 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.MCXVChain.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.MCXVChain.mdx @@ -22,121 +22,6 @@ python_api_name: qiskit.circuit.library.MCXVChain * **label** (*Optional\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*]*) – * **ctrl\_state** (*Optional\[Union\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*,* [*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*]]*) – - ## Attributes - - ### base\_class - - - Get the base class of this instruction. This is guaranteed to be in the inheritance tree of `self`. - - The “base class” of an instruction is the lowest class in its inheritance tree that the object should be considered entirely compatible with for \_all\_ circuit applications. This typically means that the subclass is defined purely to offer some sort of programmer convenience over the base class, and the base class is the “true” class for a behavioral perspective. In particular, you should *not* override [`base_class`](#qiskit.circuit.library.MCXVChain.base_class "qiskit.circuit.library.MCXVChain.base_class") if you are defining a custom version of an instruction that will be implemented differently by hardware, such as an alternative measurement strategy, or a version of a parametrized gate with a particular set of parameters for the purposes of distinguishing it in a [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target") from the full parametrized gate. - - This is often exactly equivalent to `type(obj)`, except in the case of singleton instances of standard-library instructions. These singleton instances are special subclasses of their base class, and this property will return that base. For example: - - ```python - >>> isinstance(XGate(), XGate) - True - >>> type(XGate()) is XGate - False - >>> XGate().base_class is XGate - True - ``` - - In general, you should not rely on the precise class of an instruction; within a given circuit, it is expected that `Instruction.name` should be a more suitable discriminator in most situations. - - - ### ctrl\_state - - - Return the control state of the gate as a decimal integer. - - - ### decompositions - - - Get the decompositions of the instruction from the SessionEquivalenceLibrary. - - - ### definition - - - Return definition in terms of other basic gates. If the gate has open controls, as determined from [`ctrl_state`](#qiskit.circuit.library.MCXVChain.ctrl_state "qiskit.circuit.library.MCXVChain.ctrl_state"), the returned definition is conjugated with X without changing the internal `_definition`. - - - ### label - - - Return instruction label - - - ### mutable - - - Is this instance is a mutable unique instance or not. - - If this attribute is `False` the gate instance is a shared singleton and is not mutable. - - - ### name - - - Get name of gate. If the gate has open controls the gate name will become: - - > \ - - where \ is the gate name for the default case of closed control qubits and \ is the integer value of the control state for the gate. - - - ### num\_ancilla\_qubits - - - The number of ancilla qubits. - - - ### num\_clbits - - - Return the number of clbits. - - - ### num\_ctrl\_qubits - - - Get number of control qubits. - - **Returns** - - The number of control qubits for the gate. - - **Return type** - - [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") - - - ### num\_qubits - - - Return the number of qubits. - - - ### params - - - Get parameters from base\_gate. - - **Returns** - - List of gate parameters. - - **Return type** - - [list](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)") - - **Raises** - - [**CircuitError**](circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – Controlled gate does not define a base gate - - ## Methods ### get\_num\_ancilla\_qubits diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.NLocal.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.NLocal.mdx index e936d31198a..09ab12f24e1 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.NLocal.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.NLocal.mdx @@ -70,70 +70,6 @@ python_api_name: qiskit.circuit.library.NLocal ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.NLocal.unit "qiskit.circuit.library.NLocal.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### entanglement @@ -160,38 +96,6 @@ python_api_name: qiskit.circuit.library.NLocal Returns whether the circuit is wrapped in nested gates/instructions or flattened. - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - ### initial\_state @@ -212,170 +116,6 @@ python_api_name: qiskit.circuit.library.NLocal `True`, if barriers are inserted in between the layers, `False` if not. - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.NLocal.num_input_vars "qiskit.circuit.library.NLocal.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.NLocal.num_input_vars "qiskit.circuit.library.NLocal.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.NLocal.num_vars "qiskit.circuit.library.NLocal.num_vars") + [`num_stretches()`](#qiskit.circuit.library.NLocal.num_stretches "qiskit.circuit.library.NLocal.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.NLocal.num_captured_vars "qiskit.circuit.library.NLocal.num_captured_vars") must be zero. - - ### num\_layers @@ -386,12 +126,6 @@ python_api_name: qiskit.circuit.library.NLocal The number of layers in the circuit. - ### num\_parameters - - - The number of parameter objects in the circuit. - - ### num\_parameters\_settable @@ -418,102 +152,6 @@ python_api_name: qiskit.circuit.library.NLocal The number of qubits. - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - ### ordered\_parameters @@ -550,64 +188,6 @@ python_api_name: qiskit.circuit.library.NLocal A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If `None` is returned, problem is fully unbounded. - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - ### preferred\_init\_points @@ -618,22 +198,6 @@ python_api_name: qiskit.circuit.library.NLocal The initial values for the parameters, or None, if none have been set. - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - ### reps @@ -654,16 +218,6 @@ python_api_name: qiskit.circuit.library.NLocal The blocks in the rotation layers. - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.NLocal.duration "qiskit.circuit.library.NLocal.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.OR.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.OR.mdx index 5e20b9543ae..f14c0d5a1ac 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.OR.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.OR.mdx @@ -37,470 +37,6 @@ python_api_name: qiskit.circuit.library.OR ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.OR.unit "qiskit.circuit.library.OR.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.OR.num_input_vars "qiskit.circuit.library.OR.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.OR.num_input_vars "qiskit.circuit.library.OR.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.OR.num_vars "qiskit.circuit.library.OR.num_vars") + [`num_stretches()`](#qiskit.circuit.library.OR.num_stretches "qiskit.circuit.library.OR.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.OR.num_captured_vars "qiskit.circuit.library.OR.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.OR.duration "qiskit.circuit.library.OR.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PauliEvolutionGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PauliEvolutionGate.mdx index 67a0019f138..106f3447fd5 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PauliEvolutionGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PauliEvolutionGate.mdx @@ -396,11 +396,11 @@ $$ **Parameters** - **parameter** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – + **parameter** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – **Return type** - [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") | [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") + [*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") | [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PauliFeatureMap.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PauliFeatureMap.mdx index dad29e65872..398020a24ec 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PauliFeatureMap.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PauliFeatureMap.mdx @@ -126,80 +126,6 @@ $$ The Pauli rotation factor. - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.PauliFeatureMap.unit "qiskit.circuit.library.PauliFeatureMap.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see [`get_entangler_map()`](#qiskit.circuit.library.PauliFeatureMap.get_entangler_map "qiskit.circuit.library.PauliFeatureMap.get_entangler_map") for more detail on how the format is interpreted. - - ### entanglement\_blocks @@ -220,450 +146,12 @@ $$ The feature dimension of this feature map. - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PauliFeatureMap.num_input_vars "qiskit.circuit.library.PauliFeatureMap.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PauliFeatureMap.num_input_vars "qiskit.circuit.library.PauliFeatureMap.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.PauliFeatureMap.num_vars "qiskit.circuit.library.PauliFeatureMap.num_vars") + [`num_stretches()`](#qiskit.circuit.library.PauliFeatureMap.num_stretches "qiskit.circuit.library.PauliFeatureMap.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.PauliFeatureMap.num_captured_vars "qiskit.circuit.library.PauliFeatureMap.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - ### num\_parameters\_settable The number of distinct parameters. - ### num\_qubits - - - Returns the number of qubits in this circuit. - - **Returns** - - The number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - - ### parameter\_bounds - - - The parameter bounds for the unbound parameters in the circuit. - - **Returns** - - A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If `None` is returned, problem is fully unbounded. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - ### paulis @@ -674,62 +162,6 @@ $$ The Pauli strings as list. - ### preferred\_init\_points - - - The initial points for the parameters. Can be stored as initial guess in optimization. - - **Returns** - - The initial values for the parameters, or None, if none have been set. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.PauliFeatureMap.duration "qiskit.circuit.library.PauliFeatureMap.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PauliTwoDesign.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PauliTwoDesign.mdx index a8d1a77245d..c9558f8c31f 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PauliTwoDesign.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PauliTwoDesign.mdx @@ -69,328 +69,6 @@ python_api_name: qiskit.circuit.library.PauliTwoDesign ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.PauliTwoDesign.unit "qiskit.circuit.library.PauliTwoDesign.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see `get_entangler_map()` for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PauliTwoDesign.num_input_vars "qiskit.circuit.library.PauliTwoDesign.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PauliTwoDesign.num_input_vars "qiskit.circuit.library.PauliTwoDesign.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.PauliTwoDesign.num_vars "qiskit.circuit.library.PauliTwoDesign.num_vars") + [`num_stretches()`](#qiskit.circuit.library.PauliTwoDesign.num_stretches "qiskit.circuit.library.PauliTwoDesign.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.PauliTwoDesign.num_captured_vars "qiskit.circuit.library.PauliTwoDesign.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - ### num\_parameters\_settable @@ -401,262 +79,6 @@ python_api_name: qiskit.circuit.library.PauliTwoDesign The number of possibly distinct parameters. - ### num\_qubits - - - Returns the number of qubits in this circuit. - - **Returns** - - The number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - - ### parameter\_bounds - - - The parameter bounds for the unbound parameters in the circuit. - - **Returns** - - A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If `None` is returned, problem is fully unbounded. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### preferred\_init\_points - - - The initial points for the parameters. Can be stored as initial guess in optimization. - - **Returns** - - The initial values for the parameters, or None, if none have been set. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.PauliTwoDesign.duration "qiskit.circuit.library.PauliTwoDesign.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.Permutation.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.Permutation.mdx index 7355d157e7c..39ae2848eac 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.Permutation.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.Permutation.mdx @@ -39,470 +39,6 @@ python_api_name: qiskit.circuit.library.Permutation ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.Permutation.unit "qiskit.circuit.library.Permutation.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.Permutation.num_input_vars "qiskit.circuit.library.Permutation.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.Permutation.num_input_vars "qiskit.circuit.library.Permutation.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.Permutation.num_vars "qiskit.circuit.library.Permutation.num_vars") + [`num_stretches()`](#qiskit.circuit.library.Permutation.num_stretches "qiskit.circuit.library.Permutation.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.Permutation.num_captured_vars "qiskit.circuit.library.Permutation.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.Permutation.duration "qiskit.circuit.library.Permutation.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PhaseEstimation.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PhaseEstimation.mdx index 4afb3afbcff..8f85c9985a0 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PhaseEstimation.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PhaseEstimation.mdx @@ -56,470 +56,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.PhaseEstimation.unit "qiskit.circuit.library.PhaseEstimation.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PhaseEstimation.num_input_vars "qiskit.circuit.library.PhaseEstimation.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PhaseEstimation.num_input_vars "qiskit.circuit.library.PhaseEstimation.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.PhaseEstimation.num_vars "qiskit.circuit.library.PhaseEstimation.num_vars") + [`num_stretches()`](#qiskit.circuit.library.PhaseEstimation.num_stretches "qiskit.circuit.library.PhaseEstimation.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.PhaseEstimation.num_captured_vars "qiskit.circuit.library.PhaseEstimation.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.PhaseEstimation.duration "qiskit.circuit.library.PhaseEstimation.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PhaseOracle.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PhaseOracle.mdx index 2103c73670e..e0e267ddec7 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PhaseOracle.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PhaseOracle.mdx @@ -36,470 +36,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.PhaseOracle.unit "qiskit.circuit.library.PhaseOracle.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PhaseOracle.num_input_vars "qiskit.circuit.library.PhaseOracle.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PhaseOracle.num_input_vars "qiskit.circuit.library.PhaseOracle.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.PhaseOracle.num_vars "qiskit.circuit.library.PhaseOracle.num_vars") + [`num_stretches()`](#qiskit.circuit.library.PhaseOracle.num_stretches "qiskit.circuit.library.PhaseOracle.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.PhaseOracle.num_captured_vars "qiskit.circuit.library.PhaseOracle.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.PhaseOracle.duration "qiskit.circuit.library.PhaseOracle.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseChebyshev.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseChebyshev.mdx index 822f77bc68d..e06280ca55b 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseChebyshev.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseChebyshev.mdx @@ -54,12 +54,6 @@ python_api_name: qiskit.circuit.library.PiecewiseChebyshev ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - ### breakpoints @@ -70,54 +64,6 @@ python_api_name: qiskit.circuit.library.PiecewiseChebyshev The breakpoints for the piecewise approximation. - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - ### degree @@ -128,16 +74,6 @@ python_api_name: qiskit.circuit.library.PiecewiseChebyshev The degree of the polynomials. - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.PiecewiseChebyshev.unit "qiskit.circuit.library.PiecewiseChebyshev.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### f\_x @@ -148,214 +84,6 @@ python_api_name: qiskit.circuit.library.PiecewiseChebyshev The function to be approximated. - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PiecewiseChebyshev.num_input_vars "qiskit.circuit.library.PiecewiseChebyshev.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PiecewiseChebyshev.num_input_vars "qiskit.circuit.library.PiecewiseChebyshev.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.PiecewiseChebyshev.num_vars "qiskit.circuit.library.PiecewiseChebyshev.num_vars") + [`num_stretches()`](#qiskit.circuit.library.PiecewiseChebyshev.num_stretches "qiskit.circuit.library.PiecewiseChebyshev.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.PiecewiseChebyshev.num_captured_vars "qiskit.circuit.library.PiecewiseChebyshev.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - ### num\_state\_qubits @@ -366,160 +94,6 @@ python_api_name: qiskit.circuit.library.PiecewiseChebyshev The number of state qubits. - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - ### polynomials @@ -534,32 +108,6 @@ python_api_name: qiskit.circuit.library.PiecewiseChebyshev [**TypeError**](https://docs.python.org/3/library/exceptions.html#TypeError "(in Python v3.13)") – If the input function is not in the correct format. - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.PiecewiseChebyshev.duration "qiskit.circuit.library.PiecewiseChebyshev.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseLinearPauliRotations.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseLinearPauliRotations.mdx index 7d36624ec8e..24de90c47c7 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseLinearPauliRotations.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewiseLinearPauliRotations.mdx @@ -37,24 +37,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### basis - - - The kind of Pauli rotation to be used. - - Set the basis to ‘X’, ‘Y’ or ‘Z’ for controlled-X, -Y, or -Z rotations respectively. - - **Returns** - - The kind of Pauli rotation used in controlled rotation. - - ### breakpoints @@ -63,34 +45,6 @@ $$ The function is linear in the intervals `[point_i, point_{i+1}]` where the last point implicitly is `2**(num_state_qubits + 1)`. - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - ### contains\_zero\_breakpoint @@ -101,116 +55,6 @@ $$ True, if 0 is the first breakpoint, otherwise False. - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.PiecewiseLinearPauliRotations.unit "qiskit.circuit.library.PiecewiseLinearPauliRotations.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - ### mapped\_offsets @@ -231,170 +75,6 @@ $$ The mapped slopes. - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancilla\_qubits - - - The minimum number of ancilla qubits in the circuit. - - **Returns** - - The minimal number of ancillas required. - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PiecewiseLinearPauliRotations.num_input_vars "qiskit.circuit.library.PiecewiseLinearPauliRotations.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PiecewiseLinearPauliRotations.num_input_vars "qiskit.circuit.library.PiecewiseLinearPauliRotations.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.PiecewiseLinearPauliRotations.num_vars "qiskit.circuit.library.PiecewiseLinearPauliRotations.num_vars") + [`num_stretches()`](#qiskit.circuit.library.PiecewiseLinearPauliRotations.num_stretches "qiskit.circuit.library.PiecewiseLinearPauliRotations.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.PiecewiseLinearPauliRotations.num_captured_vars "qiskit.circuit.library.PiecewiseLinearPauliRotations.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_state\_qubits - - - The number of state qubits representing the state $|x\rangle$. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - ### offsets @@ -403,160 +83,6 @@ $$ The function is linear in the intervals `[point_i, point_{i+1}]` where the last point implicitly is `2**(num_state_qubits + 1)`. - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - ### slopes @@ -565,16 +91,6 @@ $$ The function is linear in the intervals `[point_i, point_{i+1}]` where the last point implicitly is `2**(num_state_qubits + 1)`. - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.PiecewiseLinearPauliRotations.duration "qiskit.circuit.library.PiecewiseLinearPauliRotations.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewisePolynomialPauliRotations.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewisePolynomialPauliRotations.mdx index bcfa8a35114..787d5d68e14 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PiecewisePolynomialPauliRotations.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PiecewisePolynomialPauliRotations.mdx @@ -83,24 +83,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### basis - - - The kind of Pauli rotation to be used. - - Set the basis to ‘X’, ‘Y’ or ‘Z’ for controlled-X, -Y, or -Z rotations respectively. - - **Returns** - - The kind of Pauli rotation used in controlled rotation. - - ### breakpoints @@ -113,34 +95,6 @@ $$ The list of breakpoints. - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - ### coeffs @@ -161,116 +115,6 @@ $$ True, if 0 is the first breakpoint, otherwise False. - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.PiecewisePolynomialPauliRotations.unit "qiskit.circuit.library.PiecewisePolynomialPauliRotations.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - ### mapped\_coeffs @@ -281,334 +125,6 @@ $$ The mapped coefficients. - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancilla\_qubits - - - The minimum number of ancilla qubits in the circuit. - - **Returns** - - The minimal number of ancillas required. - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_input_vars "qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_input_vars "qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_vars "qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_vars") + [`num_stretches()`](#qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_stretches "qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_captured_vars "qiskit.circuit.library.PiecewisePolynomialPauliRotations.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_state\_qubits - - - The number of state qubits representing the state $|x\rangle$. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.PiecewisePolynomialPauliRotations.duration "qiskit.circuit.library.PiecewisePolynomialPauliRotations.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.PolynomialPauliRotations.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.PolynomialPauliRotations.mdx index d4e22d3303d..01d4b44929a 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.PolynomialPauliRotations.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.PolynomialPauliRotations.mdx @@ -45,52 +45,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### basis - - - The kind of Pauli rotation to be used. - - Set the basis to ‘X’, ‘Y’ or ‘Z’ for controlled-X, -Y, or -Z rotations respectively. - - **Returns** - - The kind of Pauli rotation used in controlled rotation. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - ### coeffs @@ -109,26 +63,6 @@ $$ The coefficients of the polynomial. - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - ### degree @@ -139,424 +73,6 @@ $$ The degree of the polynomial. If the coefficients have not been set, return 0. - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.PolynomialPauliRotations.unit "qiskit.circuit.library.PolynomialPauliRotations.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancilla\_qubits - - - The minimum number of ancilla qubits in the circuit. - - **Returns** - - The minimal number of ancillas required. - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PolynomialPauliRotations.num_input_vars "qiskit.circuit.library.PolynomialPauliRotations.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.PolynomialPauliRotations.num_input_vars "qiskit.circuit.library.PolynomialPauliRotations.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.PolynomialPauliRotations.num_vars "qiskit.circuit.library.PolynomialPauliRotations.num_vars") + [`num_stretches()`](#qiskit.circuit.library.PolynomialPauliRotations.num_stretches "qiskit.circuit.library.PolynomialPauliRotations.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.PolynomialPauliRotations.num_captured_vars "qiskit.circuit.library.PolynomialPauliRotations.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_state\_qubits - - - The number of state qubits representing the state $|x\rangle$. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.PolynomialPauliRotations.duration "qiskit.circuit.library.PolynomialPauliRotations.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.QAOAAnsatz.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.QAOAAnsatz.mdx index bca79c21d6c..3eec7352e1d 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.QAOAAnsatz.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.QAOAAnsatz.mdx @@ -30,40 +30,6 @@ python_api_name: qiskit.circuit.library.QAOAAnsatz ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - ### cost\_operator @@ -78,194 +44,12 @@ python_api_name: qiskit.circuit.library.QAOAAnsatz BaseOperator or OperatorBase - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.QAOAAnsatz.unit "qiskit.circuit.library.QAOAAnsatz.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see `get_entangler_map()` for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - - ### evolution - - - The evolution converter used to compute the evolution. - - **Returns** - - The evolution converter used to compute the evolution. - - **Return type** - - [EvolutionSynthesis](qiskit.synthesis.EvolutionSynthesis "qiskit.synthesis.EvolutionSynthesis") - - - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - ### initial\_state Returns an optional initial state as a circuit - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - ### mixer\_operator @@ -280,232 +64,10 @@ python_api_name: qiskit.circuit.library.QAOAAnsatz BaseOperator or OperatorBase or [QuantumCircuit](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit"), optional - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.QAOAAnsatz.num_input_vars "qiskit.circuit.library.QAOAAnsatz.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.QAOAAnsatz.num_input_vars "qiskit.circuit.library.QAOAAnsatz.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.QAOAAnsatz.num_vars "qiskit.circuit.library.QAOAAnsatz.num_vars") + [`num_stretches()`](#qiskit.circuit.library.QAOAAnsatz.num_stretches "qiskit.circuit.library.QAOAAnsatz.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.QAOAAnsatz.num_captured_vars "qiskit.circuit.library.QAOAAnsatz.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_parameters\_settable - - - The number of total parameters that can be set to distinct values. - - This does not change when the parameters are bound or exchanged for same parameters, and therefore is different from `num_parameters` which counts the number of unique [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects currently in the circuit. - - **Returns** - - The number of parameters originally available in the circuit. - - - This quantity does not require the circuit to be built yet. - - - ### num\_qubits - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - ### operators @@ -522,32 +84,6 @@ python_api_name: qiskit.circuit.library.QAOAAnsatz List\[Union\[BaseOperator, OperatorBase, [QuantumCircuit](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")]] - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - ### parameter\_bounds @@ -558,112 +94,12 @@ python_api_name: qiskit.circuit.library.QAOAAnsatz A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If None is returned, problem is fully unbounded. - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### preferred\_init\_points - - - Getter of preferred initial points based on the given initial state. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - ### reps Returns the reps parameter, which determines the depth of the circuit. - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.QAOAAnsatz.duration "qiskit.circuit.library.QAOAAnsatz.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.QFT.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.QFT.mdx index 165038f1b72..eec5d96c198 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.QFT.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.QFT.mdx @@ -52,12 +52,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - ### approximation\_degree @@ -68,54 +62,6 @@ $$ The currently set approximation degree. - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - ### do\_swaps @@ -126,48 +72,6 @@ $$ True, if the final swaps are applied, False if not. - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.QFT.unit "qiskit.circuit.library.QFT.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - ### insert\_barriers @@ -178,176 +82,6 @@ $$ True, if barriers are inserted, False if not. - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.QFT.num_input_vars "qiskit.circuit.library.QFT.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.QFT.num_input_vars "qiskit.circuit.library.QFT.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.QFT.num_vars "qiskit.circuit.library.QFT.num_vars") + [`num_stretches()`](#qiskit.circuit.library.QFT.num_stretches "qiskit.circuit.library.QFT.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.QFT.num_captured_vars "qiskit.circuit.library.QFT.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - ### num\_qubits @@ -358,186 +92,6 @@ $$ The number of qubits in the circuit. - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.QFT.duration "qiskit.circuit.library.QFT.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.QuadraticForm.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.QuadraticForm.mdx index fbe73d81371..cee3082e276 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.QuadraticForm.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.QuadraticForm.mdx @@ -58,470 +58,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.QuadraticForm.unit "qiskit.circuit.library.QuadraticForm.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.QuadraticForm.num_input_vars "qiskit.circuit.library.QuadraticForm.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.QuadraticForm.num_input_vars "qiskit.circuit.library.QuadraticForm.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.QuadraticForm.num_vars "qiskit.circuit.library.QuadraticForm.num_vars") + [`num_stretches()`](#qiskit.circuit.library.QuadraticForm.num_stretches "qiskit.circuit.library.QuadraticForm.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.QuadraticForm.num_captured_vars "qiskit.circuit.library.QuadraticForm.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.QuadraticForm.duration "qiskit.circuit.library.QuadraticForm.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.QuantumVolume.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.QuantumVolume.mdx index 13e5b8f0e29..4303ada6187 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.QuantumVolume.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.QuantumVolume.mdx @@ -45,470 +45,6 @@ python_api_name: qiskit.circuit.library.QuantumVolume ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.QuantumVolume.unit "qiskit.circuit.library.QuantumVolume.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.QuantumVolume.num_input_vars "qiskit.circuit.library.QuantumVolume.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.QuantumVolume.num_input_vars "qiskit.circuit.library.QuantumVolume.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.QuantumVolume.num_vars "qiskit.circuit.library.QuantumVolume.num_vars") + [`num_stretches()`](#qiskit.circuit.library.QuantumVolume.num_stretches "qiskit.circuit.library.QuantumVolume.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.QuantumVolume.num_captured_vars "qiskit.circuit.library.QuantumVolume.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.QuantumVolume.duration "qiskit.circuit.library.QuantumVolume.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.RGQFTMultiplier.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.RGQFTMultiplier.mdx index c8bbad81a82..071473472ed 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.RGQFTMultiplier.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.RGQFTMultiplier.mdx @@ -46,490 +46,6 @@ python_api_name: qiskit.circuit.library.RGQFTMultiplier ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.RGQFTMultiplier.unit "qiskit.circuit.library.RGQFTMultiplier.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.RGQFTMultiplier.num_input_vars "qiskit.circuit.library.RGQFTMultiplier.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.RGQFTMultiplier.num_input_vars "qiskit.circuit.library.RGQFTMultiplier.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.RGQFTMultiplier.num_vars "qiskit.circuit.library.RGQFTMultiplier.num_vars") + [`num_stretches()`](#qiskit.circuit.library.RGQFTMultiplier.num_stretches "qiskit.circuit.library.RGQFTMultiplier.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.RGQFTMultiplier.num_captured_vars "qiskit.circuit.library.RGQFTMultiplier.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_result\_qubits - - - The number of result qubits to limit the output to. - - **Returns** - - The number of result qubits. - - - ### num\_state\_qubits - - - The number of state qubits, i.e. the number of bits in each input register. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.RGQFTMultiplier.duration "qiskit.circuit.library.RGQFTMultiplier.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.RGate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.RGate.mdx index 31b414ef084..e9d94c9176b 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.RGate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.RGate.mdx @@ -41,8 +41,8 @@ $$ **Parameters** - * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – - * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – + * **theta** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – + * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – * **label** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") *| None*) – ### base\_class diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.RealAmplitudes.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.RealAmplitudes.mdx index df4773a2304..53afcb827d0 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.RealAmplitudes.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.RealAmplitudes.mdx @@ -125,476 +125,6 @@ python_api_name: qiskit.circuit.library.RealAmplitudes ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.RealAmplitudes.unit "qiskit.circuit.library.RealAmplitudes.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see `get_entangler_map()` for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.RealAmplitudes.num_input_vars "qiskit.circuit.library.RealAmplitudes.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.RealAmplitudes.num_input_vars "qiskit.circuit.library.RealAmplitudes.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.RealAmplitudes.num_vars "qiskit.circuit.library.RealAmplitudes.num_vars") + [`num_stretches()`](#qiskit.circuit.library.RealAmplitudes.num_stretches "qiskit.circuit.library.RealAmplitudes.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.RealAmplitudes.num_captured_vars "qiskit.circuit.library.RealAmplitudes.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_parameters\_settable - - - The number of total parameters that can be set to distinct values. - - This does not change when the parameters are bound or exchanged for same parameters, and therefore is different from `num_parameters` which counts the number of unique [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects currently in the circuit. - - **Returns** - - The number of parameters originally available in the circuit. - - - This quantity does not require the circuit to be built yet. - - - - ### num\_qubits - - - Returns the number of qubits in this circuit. - - **Returns** - - The number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - ### parameter\_bounds @@ -605,120 +135,6 @@ python_api_name: qiskit.circuit.library.RealAmplitudes The parameter bounds. - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### preferred\_init\_points - - - The initial points for the parameters. Can be stored as initial guess in optimization. - - **Returns** - - The initial values for the parameters, or None, if none have been set. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.RealAmplitudes.duration "qiskit.circuit.library.RealAmplitudes.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.TwoLocal.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.TwoLocal.mdx index 86876c87423..3060ea33d1c 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.TwoLocal.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.TwoLocal.mdx @@ -132,600 +132,6 @@ python_api_name: qiskit.circuit.library.TwoLocal ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.TwoLocal.unit "qiskit.circuit.library.TwoLocal.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see [`get_entangler_map()`](#qiskit.circuit.library.TwoLocal.get_entangler_map "qiskit.circuit.library.TwoLocal.get_entangler_map") for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.TwoLocal.num_input_vars "qiskit.circuit.library.TwoLocal.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.TwoLocal.num_input_vars "qiskit.circuit.library.TwoLocal.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.TwoLocal.num_vars "qiskit.circuit.library.TwoLocal.num_vars") + [`num_stretches()`](#qiskit.circuit.library.TwoLocal.num_stretches "qiskit.circuit.library.TwoLocal.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.TwoLocal.num_captured_vars "qiskit.circuit.library.TwoLocal.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_parameters\_settable - - - The number of total parameters that can be set to distinct values. - - This does not change when the parameters are bound or exchanged for same parameters, and therefore is different from `num_parameters` which counts the number of unique [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects currently in the circuit. - - **Returns** - - The number of parameters originally available in the circuit. - - - This quantity does not require the circuit to be built yet. - - - - ### num\_qubits - - - Returns the number of qubits in this circuit. - - **Returns** - - The number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - - ### parameter\_bounds - - - The parameter bounds for the unbound parameters in the circuit. - - **Returns** - - A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If `None` is returned, problem is fully unbounded. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### preferred\_init\_points - - - The initial points for the parameters. Can be stored as initial guess in optimization. - - **Returns** - - The initial values for the parameters, or None, if none have been set. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.TwoLocal.duration "qiskit.circuit.library.TwoLocal.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.U2Gate.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.U2Gate.mdx index 610a66e814d..66f903af11d 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.U2Gate.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.U2Gate.mdx @@ -77,8 +77,8 @@ $$ **Parameters** - * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – - * **lam** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit.circuit.parameterexpression.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – + * **phi** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – + * **lam** ([*ParameterExpression*](qiskit.circuit.ParameterExpression "qiskit._accelerate.circuit.ParameterExpression") *|*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – * **label** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") *| None*) – ### base\_class diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.UnitaryOverlap.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.UnitaryOverlap.mdx index 109cfa73efa..a530ce3352c 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.UnitaryOverlap.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.UnitaryOverlap.mdx @@ -65,470 +65,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.UnitaryOverlap.unit "qiskit.circuit.library.UnitaryOverlap.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.UnitaryOverlap.num_input_vars "qiskit.circuit.library.UnitaryOverlap.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.UnitaryOverlap.num_input_vars "qiskit.circuit.library.UnitaryOverlap.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.UnitaryOverlap.num_vars "qiskit.circuit.library.UnitaryOverlap.num_vars") + [`num_stretches()`](#qiskit.circuit.library.UnitaryOverlap.num_stretches "qiskit.circuit.library.UnitaryOverlap.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.UnitaryOverlap.num_captured_vars "qiskit.circuit.library.UnitaryOverlap.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.UnitaryOverlap.duration "qiskit.circuit.library.UnitaryOverlap.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.VBERippleCarryAdder.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.VBERippleCarryAdder.mdx index 0f64025cb97..013b971df1a 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.VBERippleCarryAdder.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.VBERippleCarryAdder.mdx @@ -67,480 +67,6 @@ python_api_name: qiskit.circuit.library.VBERippleCarryAdder ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.VBERippleCarryAdder.unit "qiskit.circuit.library.VBERippleCarryAdder.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.VBERippleCarryAdder.num_input_vars "qiskit.circuit.library.VBERippleCarryAdder.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.VBERippleCarryAdder.num_input_vars "qiskit.circuit.library.VBERippleCarryAdder.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.VBERippleCarryAdder.num_vars "qiskit.circuit.library.VBERippleCarryAdder.num_vars") + [`num_stretches()`](#qiskit.circuit.library.VBERippleCarryAdder.num_stretches "qiskit.circuit.library.VBERippleCarryAdder.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.VBERippleCarryAdder.num_captured_vars "qiskit.circuit.library.VBERippleCarryAdder.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_state\_qubits - - - The number of state qubits, i.e. the number of bits in each input register. - - **Returns** - - The number of state qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.VBERippleCarryAdder.duration "qiskit.circuit.library.VBERippleCarryAdder.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.WeightedAdder.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.WeightedAdder.mdx index 0d99b8dbbc5..c0453165710 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.WeightedAdder.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.WeightedAdder.mdx @@ -64,214 +64,6 @@ $$ ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.WeightedAdder.unit "qiskit.circuit.library.WeightedAdder.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.WeightedAdder.num_input_vars "qiskit.circuit.library.WeightedAdder.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.WeightedAdder.num_input_vars "qiskit.circuit.library.WeightedAdder.num_input_vars") must be zero. - - ### num\_carry\_qubits @@ -284,26 +76,6 @@ $$ The number of carry qubits required to compute the sum. - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - ### num\_control\_qubits @@ -316,50 +88,6 @@ $$ The number of additional control qubits required (0 or 1). - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.WeightedAdder.num_vars "qiskit.circuit.library.WeightedAdder.num_vars") + [`num_stretches()`](#qiskit.circuit.library.WeightedAdder.num_stretches "qiskit.circuit.library.WeightedAdder.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.WeightedAdder.num_captured_vars "qiskit.circuit.library.WeightedAdder.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - ### num\_state\_qubits @@ -370,14 +98,6 @@ $$ The number of state qubits. - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - ### num\_sum\_qubits @@ -388,178 +108,6 @@ $$ The number of qubits needed to represent the weighted sum of the qubits. - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.WeightedAdder.duration "qiskit.circuit.library.WeightedAdder.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### weights diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.XOR.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.XOR.mdx index 608e7aae2b9..c3fe93a079a 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.XOR.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.XOR.mdx @@ -39,470 +39,6 @@ python_api_name: qiskit.circuit.library.XOR ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.XOR.unit "qiskit.circuit.library.XOR.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.XOR.num_input_vars "qiskit.circuit.library.XOR.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.XOR.num_input_vars "qiskit.circuit.library.XOR.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.XOR.num_vars "qiskit.circuit.library.XOR.num_vars") + [`num_stretches()`](#qiskit.circuit.library.XOR.num_stretches "qiskit.circuit.library.XOR.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.XOR.num_captured_vars "qiskit.circuit.library.XOR.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.XOR.duration "qiskit.circuit.library.XOR.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.ZFeatureMap.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.ZFeatureMap.mdx index b7621635d43..ffd8f9eba3f 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.ZFeatureMap.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.ZFeatureMap.mdx @@ -85,620 +85,6 @@ python_api_name: qiskit.circuit.library.ZFeatureMap ## Attributes - ### alpha - - - The Pauli rotation factor (alpha). - - **Returns** - - The Pauli rotation factor. - - - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.ZFeatureMap.unit "qiskit.circuit.library.ZFeatureMap.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see `get_entangler_map()` for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - - ### feature\_dimension - - - Returns the feature dimension (which is equal to the number of qubits). - - **Returns** - - The feature dimension of this feature map. - - - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.ZFeatureMap.num_input_vars "qiskit.circuit.library.ZFeatureMap.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.ZFeatureMap.num_input_vars "qiskit.circuit.library.ZFeatureMap.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.ZFeatureMap.num_vars "qiskit.circuit.library.ZFeatureMap.num_vars") + [`num_stretches()`](#qiskit.circuit.library.ZFeatureMap.num_stretches "qiskit.circuit.library.ZFeatureMap.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.ZFeatureMap.num_captured_vars "qiskit.circuit.library.ZFeatureMap.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_parameters\_settable - - - The number of distinct parameters. - - - ### num\_qubits - - - Returns the number of qubits in this circuit. - - **Returns** - - The number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - - ### parameter\_bounds - - - The parameter bounds for the unbound parameters in the circuit. - - **Returns** - - A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If `None` is returned, problem is fully unbounded. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### paulis - - - The Pauli strings used in the entanglement of the qubits. - - **Returns** - - The Pauli strings as list. - - - ### preferred\_init\_points - - - The initial points for the parameters. Can be stored as initial guess in optimization. - - **Returns** - - The initial values for the parameters, or None, if none have been set. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.ZFeatureMap.duration "qiskit.circuit.library.ZFeatureMap.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx b/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx index 00db8e3c74e..5195f098140 100644 --- a/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx +++ b/docs/api/qiskit/dev/qiskit.circuit.library.ZZFeatureMap.mdx @@ -106,620 +106,6 @@ python_api_name: qiskit.circuit.library.ZZFeatureMap ## Attributes - ### alpha - - - The Pauli rotation factor (alpha). - - **Returns** - - The Pauli rotation factor. - - - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Returns** - - a list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction")s for each instruction. - - **Return type** - - QuantumCircuitData - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.circuit.library.ZZFeatureMap.unit "qiskit.circuit.library.ZZFeatureMap.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### entanglement - - - Get the entanglement strategy. - - **Returns** - - The entanglement strategy, see `get_entangler_map()` for more detail on how the format is interpreted. - - - ### entanglement\_blocks - - - The blocks in the entanglement layers. - - **Returns** - - The blocks in the entanglement layers. - - - ### feature\_dimension - - - Returns the feature dimension (which is equal to the number of qubits). - - **Returns** - - The feature dimension of this feature map. - - - ### flatten - - - Returns whether the circuit is wrapped in nested gates/instructions or flattened. - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### initial\_state - - - Return the initial state that is added in front of the n-local circuit. - - **Returns** - - The initial state. - - - ### insert\_barriers - - - If barriers are inserted in between the layers or not. - - **Returns** - - `True`, if barriers are inserted in between the layers, `False` if not. - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.ZZFeatureMap.num_input_vars "qiskit.circuit.library.ZZFeatureMap.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.circuit.library.ZZFeatureMap.num_input_vars "qiskit.circuit.library.ZZFeatureMap.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.circuit.library.ZZFeatureMap.num_vars "qiskit.circuit.library.ZZFeatureMap.num_vars") + [`num_stretches()`](#qiskit.circuit.library.ZZFeatureMap.num_stretches "qiskit.circuit.library.ZZFeatureMap.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.circuit.library.ZZFeatureMap.num_captured_vars "qiskit.circuit.library.ZZFeatureMap.num_captured_vars") must be zero. - - - ### num\_layers - - - Return the number of layers in the n-local circuit. - - **Returns** - - The number of layers in the circuit. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_parameters\_settable - - - The number of distinct parameters. - - - ### num\_qubits - - - Returns the number of qubits in this circuit. - - **Returns** - - The number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### ordered\_parameters - - - The parameters used in the underlying circuit. - - This includes float values and duplicates. - - **Examples** - - ```python - >>> # prepare circuit ... - >>> print(nlocal) - ┌───────┐┌──────────┐┌──────────┐┌──────────┐ - q_0: ┤ Ry(1) ├┤ Ry(θ[1]) ├┤ Ry(θ[1]) ├┤ Ry(θ[3]) ├ - └───────┘└──────────┘└──────────┘└──────────┘ - >>> nlocal.parameters - {Parameter(θ[1]), Parameter(θ[3])} - >>> nlocal.ordered_parameters - [1, Parameter(θ[1]), Parameter(θ[1]), Parameter(θ[3])] - ``` - - **Returns** - - The parameters objects used in the circuit. - - - ### parameter\_bounds - - - The parameter bounds for the unbound parameters in the circuit. - - **Returns** - - A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If `None` is returned, problem is fully unbounded. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### paulis - - - The Pauli strings used in the entanglement of the qubits. - - **Returns** - - The Pauli strings as list. - - - ### preferred\_init\_points - - - The initial points for the parameters. Can be stored as initial guess in optimization. - - **Returns** - - The initial values for the parameters, or None, if none have been set. - - - ### prefix - - - - ### qregs - - - A list of the quantum registers associated with the circuit. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### reps - - - The number of times rotation and entanglement block are repeated. - - **Returns** - - The number of repetitions. - - - ### rotation\_blocks - - - The blocks in the rotation layers. - - **Returns** - - The blocks in the rotation layers. - - - ### unit - - - The unit that [`duration`](#qiskit.circuit.library.ZZFeatureMap.duration "qiskit.circuit.library.ZZFeatureMap.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.passmanager.BasePassManager.mdx b/docs/api/qiskit/dev/qiskit.passmanager.BasePassManager.mdx index cf1a04e4a73..4de26e62585 100644 --- a/docs/api/qiskit/dev/qiskit.passmanager.BasePassManager.mdx +++ b/docs/api/qiskit/dev/qiskit.passmanager.BasePassManager.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.passmanager.BasePassManager # BasePassManager - + Bases: [`ABC`](https://docs.python.org/3/library/abc.html#abc.ABC "(in Python v3.13)") Pass manager base class. @@ -80,7 +80,7 @@ python_api_name: qiskit.passmanager.BasePassManager ### run - + Run all the passes on the specified `in_programs`. **Parameters** @@ -130,7 +130,7 @@ python_api_name: qiskit.passmanager.BasePassManager ### to\_flow\_controller - + Linearize this manager into a single [`FlowControllerLinear`](qiskit.passmanager.FlowControllerLinear "qiskit.passmanager.FlowControllerLinear"), so that it can be nested inside another pass manager. **Returns** diff --git a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.ApproximateCircuit.mdx b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.ApproximateCircuit.mdx index b1371e8de29..e339a3c7520 100644 --- a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.ApproximateCircuit.mdx +++ b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.ApproximateCircuit.mdx @@ -20,460 +20,6 @@ python_api_name: qiskit.synthesis.unitary.aqc.ApproximateCircuit ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.synthesis.unitary.aqc.ApproximateCircuit.unit "qiskit.synthesis.unitary.aqc.ApproximateCircuit.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_input_vars "qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_input_vars "qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_vars "qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_vars") + [`num_stretches()`](#qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_stretches "qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_captured_vars "qiskit.synthesis.unitary.aqc.ApproximateCircuit.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - ### thetas @@ -484,16 +30,6 @@ python_api_name: qiskit.synthesis.unitary.aqc.ApproximateCircuit a vector of parameters of this circuit. - ### unit - - - The unit that [`duration`](#qiskit.synthesis.unitary.aqc.ApproximateCircuit.duration "qiskit.synthesis.unitary.aqc.ApproximateCircuit.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.mdx b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.mdx index 6eb31007d0e..14e685a369b 100644 --- a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.mdx +++ b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.mdx @@ -26,460 +26,6 @@ python_api_name: qiskit.synthesis.unitary.aqc.CNOTUnitCircuit ## Attributes - ### ancillas - - - A list of `AncillaQubit`s in the order that they were added. You should not mutate this. - - - ### clbits - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - **Example** - - ```python - from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit - - qr1 = QuantumRegister(2) - qr2 = QuantumRegister(1) - cr1 = ClassicalRegister(2) - cr2 = ClassicalRegister(1) - qc = QuantumCircuit(qr1, qr2, cr1, cr2) - - print("List the qubits in this circuit:", qc.qubits) - print("List the classical bits in this circuit:", qc.clbits) - ``` - - ```text - List the qubits in this circuit: [Qubit(QuantumRegister(2, 'q0'), 0), - Qubit(QuantumRegister(2, 'q0'), 1), Qubit(QuantumRegister(1, 'q1'), 0)] - List the classical bits in this circuit: [Clbit(ClassicalRegister(2, 'c0'), 0), - Clbit(ClassicalRegister(2, 'c0'), 1), Clbit(ClassicalRegister(1, 'c1'), 0)] - ``` - - - ### cregs - - - A list of `Clbit`s in the order that they were added. You should not mutate this. - - - ### data - - - The circuit data (instructions and context). - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2) - qc.measure([0], [1]) - print(qc.data) - ``` - - ```text - [CircuitInstruction(operation=Instruction(name='measure', num_qubits=1, - num_clbits=1, params=[]), qubits=(Qubit(QuantumRegister(2, 'q'), 0),), - clbits=(Clbit(ClassicalRegister(2, 'c'), 1),))] - ``` - - **Returns** - - A list-like object containing the [`CircuitInstruction`](qiskit.circuit.CircuitInstruction "qiskit.circuit.CircuitInstruction") instances in the circuit. - - - ### duration - - - The total duration of the circuit, set by a scheduling transpiler pass. Its unit is specified by [`unit`](#qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.unit "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.unit"). - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.duration` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - - ### global\_phase - - - The global phase of the current circuit scope in radians. - - **Example** - - ```python - from qiskit import QuantumCircuit - - circuit = QuantumCircuit(2) - circuit.h(0) - circuit.cx(0, 1) - print(circuit.global_phase) - ``` - - ```text - 0.0 - ``` - - ```python - from numpy import pi - - circuit.global_phase = pi/4 - print(circuit.global_phase) - ``` - - ```text - 0.7853981633974483 - ``` - - - ### instances - - - - ### layout - - - Return any associated layout information about the circuit. - - This attribute contains an optional [`TranspileLayout`](qiskit.transpiler.TranspileLayout "qiskit.transpiler.TranspileLayout") object. This is typically set on the output from [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") or [`PassManager.run()`](qiskit.transpiler.PassManager#run "qiskit.transpiler.PassManager.run") to retain information about the permutations caused on the input circuit by transpilation. - - There are two types of permutations caused by the [`transpile()`](compiler#qiskit.compiler.transpile "qiskit.compiler.transpile") function: an initial layout that permutes the qubits based on the selected physical qubits on the [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), and a final layout, which is an output permutation caused by [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate")s inserted during routing. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - # Create circuit to test transpiler on - qc = QuantumCircuit(3, 3) - qc.h(0) - qc.cx(0, 1) - qc.swap(1, 2) - qc.cx(0, 1) - - # Add measurements to the circuit - qc.measure([0, 1, 2], [0, 1, 2]) - - # Specify the QPU to target - backend = GenericBackendV2(3) - - # Transpile the circuit - pass_manager = generate_preset_pass_manager( - optimization_level=1, backend=backend - ) - transpiled = pass_manager.run(qc) - - # Print the layout after transpilation - print(transpiled.layout.routing_permutation()) - ``` - - ```text - [0, 1, 2] - ``` - - - ### metadata - - - Arbitrary user-defined dictionary of metadata for the circuit. - - Qiskit will not examine the content of this mapping, but it will pass it through the transpiler and reattach it to the output, so you can track your own metadata. - - **Example** - - ```python - from qiskit import QuantumCircuit - - qc = QuantumCircuit(2, 2, metadata={'experiment_type': 'Bell state experiment'}) - - print(qc.metadata) - ``` - - ```text - {'experiment_type': 'Bell state experiment'} - ``` - - - ### num\_ancillas - - - Return the number of ancilla qubits. - - **Example** - - ```python - from qiskit import QuantumCircuit, QuantumRegister, AncillaRegister - - # Create a 2-qubit quantum circuit - reg = QuantumRegister(2) - qc = QuantumCircuit(reg) - - # Create an ancilla register with 1 qubit - anc = AncillaRegister(1) - qc.add_register(anc) # Add the ancilla register to the circuit - - print("Number of ancilla qubits:", qc.num_ancillas) - ``` - - ```text - Number of ancilla qubits: 1 - ``` - - - ### num\_captured\_stretches - - - The number of stretches in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_stretches()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_input_vars "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_input_vars") must be zero. - - - ### num\_captured\_vars - - - The number of real-time classical variables in the circuit marked as captured from an enclosing scope. - - This is the length of the `iter_captured_vars()` iterable. If this is non-zero, [`num_input_vars`](#qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_input_vars "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_input_vars") must be zero. - - - ### num\_clbits - - - Return number of classical bits. - - **Example** - - ```python - from qiskit import QuantumCircuit - - # Create a new circuit with two qubits and one classical bit - qc = QuantumCircuit(2, 1) - print("Number of classical bits:", qc.num_clbits) - ``` - - ```text - Number of classical bits: 1 - ``` - - - ### num\_declared\_stretches - - - The number of stretches in the circuit that are declared by this circuit scope, excluding captures. - - This is the length of the `iter_declared_stretches()` iterable. - - - ### num\_declared\_vars - - - The number of real-time classical variables in the circuit that are declared by this circuit scope, excluding inputs or captures. - - This is the length of the `iter_declared_vars()` iterable. - - - ### num\_identifiers - - - The number of real-time classical variables and stretches in the circuit. - - This is equal to [`num_vars()`](#qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_vars "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_vars") + [`num_stretches()`](#qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_stretches "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_stretches"). - - - ### num\_input\_vars - - - The number of real-time classical variables in the circuit marked as circuit inputs. - - This is the length of the `iter_input_vars()` iterable. If this is non-zero, [`num_captured_vars`](#qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_captured_vars "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.num_captured_vars") must be zero. - - - ### num\_parameters - - - The number of parameter objects in the circuit. - - - ### num\_qubits - - - Return number of qubits. - - - ### num\_stretches - - - The number of stretches in the circuit. - - This is the length of the `iter_stretches()` iterable. - - - ### num\_vars - - - The number of real-time classical variables in the circuit. - - This is the length of the `iter_vars()` iterable. - - - ### op\_start\_times - - - Return a list of operation start times. - - - This attribute computes the estimate starting time of the operations in the scheduled circuit and only works for simple circuits that have no control flow or other classical feed-forward operations. - - - This attribute is enabled once one of scheduling analysis passes runs on the quantum circuit. - - **Example** - - ```python - from qiskit import QuantumCircuit - from qiskit.providers.fake_provider import GenericBackendV2 - from qiskit.transpiler import generate_preset_pass_manager - - qc = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - - # Print the original circuit - print("Original circuit:") - print(qc) - - # Transpile the circuit with a specific basis gates list and print the resulting circuit - backend = GenericBackendV2(2, basis_gates=['u1', 'u2', 'u3', 'cx']) - pm = generate_preset_pass_manager( - optimization_level=1, backend=backend, scheduling_method="alap" - ) - transpiled_qc = pm.run(qc) - print("Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']:") - print(transpiled_qc) - - # Print the start times of each instruction in the transpiled circuit - print("Start times of instructions in the transpiled circuit:") - for instruction, start_time in zip(transpiled_qc.data, transpiled_qc.op_start_times): - print(f"{instruction.operation.name}: {start_time}") - ``` - - ```text - Original circuit: - ┌───┐ ░ ┌─┐ - q_0: ┤ H ├──■───░─┤M├─── - └───┘┌─┴─┐ ░ └╥┘┌─┐ - q_1: ─────┤ X ├─░──╫─┤M├ - └───┘ ░ ║ └╥┘ - meas: 2/══════════════╩══╩═ - 0 1 - - Transpiled circuit with basis gates ['u1', 'u2', 'u3', 'cx']: - ┌─────────┐ ░ ┌─────────────────┐┌─┐ - q_0 -> 0 ───┤ U2(0,π) ├──────■───░─┤ Delay(1255[dt]) ├┤M├ - ┌──┴─────────┴───┐┌─┴─┐ ░ └───────┬─┬───────┘└╥┘ - q_1 -> 1 ┤ Delay(196[dt]) ├┤ X ├─░─────────┤M├─────────╫─ - └────────────────┘└───┘ ░ └╥┘ ║ - meas: 2/═══════════════════════════════════╩══════════╩═ - 1 0 - - Start times of instructions in the transpiled circuit: - u2: 0 - delay: 0 - cx: 196 - barrier: 2098 - delay: 2098 - measure: 3353 - measure: 2098 - ``` - - **Returns** - - List of integers representing instruction estimated start times. The index corresponds to the index of instruction in `QuantumCircuit.data`. - - **Raises** - - [**AttributeError**](https://docs.python.org/3/library/exceptions.html#AttributeError "(in Python v3.13)") – When circuit is not scheduled. - - - ### parameters - - - The parameters defined in the circuit. - - This attribute returns the [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit sorted alphabetically. Note that parameters instantiated with a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") are still sorted numerically. - - **Examples** - - The snippet below shows that insertion order of parameters does not matter. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant") - >>> circuit = QuantumCircuit(1) - >>> circuit.rx(b, 0) - >>> circuit.rz(elephant, 0) - >>> circuit.ry(a, 0) - >>> circuit.parameters # sorted alphabetically! - ParameterView([Parameter(a), Parameter(b), Parameter(elephant)]) - ``` - - Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers. The literal “10” comes before “2” in strict alphabetical sorting. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter - >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")] - >>> circuit = QuantumCircuit(1) - >>> circuit.u(*angles, 0) - >>> circuit.draw() - ┌─────────────────────────────┐ - q: ┤ U(angle_1,angle_2,angle_10) ├ - └─────────────────────────────┘ - >>> circuit.parameters - ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)]) - ``` - - To respect numerical sorting, a [`ParameterVector`](qiskit.circuit.ParameterVector "qiskit.circuit.ParameterVector") can be used. - - ```python - >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector - >>> x = ParameterVector("x", 12) - >>> circuit = QuantumCircuit(1) - >>> for x_i in x: - ... circuit.rx(x_i, 0) - >>> circuit.parameters - ParameterView([ - ParameterVectorElement(x[0]), ParameterVectorElement(x[1]), - ParameterVectorElement(x[2]), ParameterVectorElement(x[3]), - ..., ParameterVectorElement(x[11]) - ]) - ``` - - **Returns** - - The sorted [`Parameter`](qiskit.circuit.Parameter "qiskit.circuit.Parameter") objects in the circuit. - - - ### prefix - - - - ### qregs - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - - ### qubits - - - A list of `Qubit`s in the order that they were added. You should not mutate this. - - ### thetas @@ -490,16 +36,6 @@ python_api_name: qiskit.synthesis.unitary.aqc.CNOTUnitCircuit Parameters of the rotation gates in this circuit. - ### unit - - - The unit that [`duration`](#qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.duration "qiskit.synthesis.unitary.aqc.CNOTUnitCircuit.duration") is specified in. - - - The property `qiskit.circuit.quantumcircuit.QuantumCircuit.unit` is deprecated as of Qiskit 1.3.0. It will be removed in Qiskit 3.0.0. - - - ### name diff --git a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.CNOTUnitObjective.mdx b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.CNOTUnitObjective.mdx index 58b8a981005..b2ef03dfe58 100644 --- a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.CNOTUnitObjective.mdx +++ b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.CNOTUnitObjective.mdx @@ -31,11 +31,5 @@ python_api_name: qiskit.synthesis.unitary.aqc.CNOTUnitObjective Returns: Number of parameters (angles) of rotation gates in this circuit. - - ### target\_matrix - - - Returns: a matrix being approximated - diff --git a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.DefaultCNOTUnitObjective.mdx b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.DefaultCNOTUnitObjective.mdx index 6a350ab41c2..99f96bf43e5 100644 --- a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.DefaultCNOTUnitObjective.mdx +++ b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.DefaultCNOTUnitObjective.mdx @@ -18,26 +18,6 @@ python_api_name: qiskit.synthesis.unitary.aqc.DefaultCNOTUnitObjective * **num\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – number of qubits. * **cnots** (*np.ndarray*) – a CNOT structure to be used in the optimization procedure. - ## Attributes - - ### num\_cnots - - - Returns: A number of CNOT units to be used by the approximate circuit. - - - ### num\_thetas - - - Returns: Number of parameters (angles) of rotation gates in this circuit. - - - ### target\_matrix - - - Returns: a matrix being approximated - - ## Methods ### gradient diff --git a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.FastCNOTUnitObjective.mdx b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.FastCNOTUnitObjective.mdx index 61d4db11231..6f30f37f5df 100644 --- a/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.FastCNOTUnitObjective.mdx +++ b/docs/api/qiskit/dev/qiskit.synthesis.unitary.aqc.FastCNOTUnitObjective.mdx @@ -18,26 +18,6 @@ python_api_name: qiskit.synthesis.unitary.aqc.FastCNOTUnitObjective * **num\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – number of qubits. * **cnots** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.3)")) – a CNOT structure to be used in the optimization procedure. - ## Attributes - - ### num\_cnots - - - Returns: A number of CNOT units to be used by the approximate circuit. - - - ### num\_thetas - - - Returns: Number of parameters (angles) of rotation gates in this circuit. - - - ### target\_matrix - - - Returns: a matrix being approximated - - ## Methods ### gradient diff --git a/docs/api/qiskit/dev/qiskit.transpiler.PassManager.mdx b/docs/api/qiskit/dev/qiskit.transpiler.PassManager.mdx index 8ebe298ee86..a5594abc63b 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.PassManager.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.PassManager.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.PassManager # PassManager - + Bases: [`BasePassManager`](qiskit.passmanager.BasePassManager "qiskit.passmanager.passmanager.BasePassManager") Manager for a set of Passes and their scheduling during transpilation. @@ -24,7 +24,7 @@ python_api_name: qiskit.transpiler.PassManager ### append - + Append a Pass Set to the schedule of passes. **Parameters** @@ -42,7 +42,7 @@ python_api_name: qiskit.transpiler.PassManager ### draw - + Draw the pass manager. This function needs [pydot](https://github.com/erocarrera/pydot), which in turn needs [Graphviz](https://www.graphviz.org/) to be installed. @@ -86,7 +86,7 @@ python_api_name: qiskit.transpiler.PassManager ### replace - + Replace a particular pass in the scheduler. **Parameters** @@ -101,7 +101,7 @@ python_api_name: qiskit.transpiler.PassManager ### run - + Run all the passes on the specified `circuits`. **Parameters** @@ -140,6 +140,10 @@ python_api_name: qiskit.transpiler.PassManager ... ``` + + When running transpilation with multi-processing, the callback function is invoked within the context of each sub-process, independently of the parent process. + + * **num\_processes** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The maximum number of parallel processes to launch if parallel execution is enabled. This argument overrides `num_processes` in the user configuration file, and the `QISKIT_NUM_PROCS` environment variable. If set to `None` the system default or local user configuration will be used. * **property\_set** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")*\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*,* [*object*](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)")*] | None*) – If given, the initial value to use as the [`PropertySet`](qiskit.passmanager.PropertySet "qiskit.passmanager.PropertySet") for the pass manager pipeline. This can be used to persist analysis from one run to another, in cases where you know the analysis is safe to share. Beware that some analysis will be specific to the input circuit and the particular [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), so you should take a lot of care when using this argument. @@ -155,7 +159,7 @@ python_api_name: qiskit.transpiler.PassManager ### to\_flow\_controller - + Linearize this manager into a single [`FlowControllerLinear`](qiskit.passmanager.FlowControllerLinear "qiskit.passmanager.FlowControllerLinear"), so that it can be nested inside another pass manager. **Returns** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.StagedPassManager.mdx b/docs/api/qiskit/dev/qiskit.transpiler.StagedPassManager.mdx index 54f48045e44..02adaa098c5 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.StagedPassManager.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.StagedPassManager.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.StagedPassManager # StagedPassManager - + Bases: [`PassManager`](qiskit.transpiler.PassManager "qiskit.transpiler.passmanager.PassManager") A pass manager pipeline built from individual stages. @@ -64,7 +64,7 @@ python_api_name: qiskit.transpiler.StagedPassManager ### append - + Append a Pass Set to the schedule of passes. **Parameters** @@ -82,13 +82,13 @@ python_api_name: qiskit.transpiler.StagedPassManager ### draw - + Draw the staged pass manager. ### remove - + Removes a particular pass in the scheduler. **Parameters** @@ -106,7 +106,7 @@ python_api_name: qiskit.transpiler.StagedPassManager ### replace - + Replace a particular pass in the scheduler. **Parameters** @@ -121,7 +121,7 @@ python_api_name: qiskit.transpiler.StagedPassManager ### run - + Run all the passes on the specified `circuits`. **Parameters** @@ -160,6 +160,10 @@ python_api_name: qiskit.transpiler.StagedPassManager ... ``` + + When running transpilation with multi-processing, the callback function is invoked within the context of each sub-process, independently of the parent process. + + * **num\_processes** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The maximum number of parallel processes to launch if parallel execution is enabled. This argument overrides `num_processes` in the user configuration file, and the `QISKIT_NUM_PROCS` environment variable. If set to `None` the system default or local user configuration will be used. * **property\_set** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)")*\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*,* [*object*](https://docs.python.org/3/library/functions.html#object "(in Python v3.13)")*] | None*) – If given, the initial value to use as the [`PropertySet`](qiskit.passmanager.PropertySet "qiskit.passmanager.PropertySet") for the pass manager pipeline. This can be used to persist analysis from one run to another, in cases where you know the analysis is safe to share. Beware that some analysis will be specific to the input circuit and the particular [`Target`](qiskit.transpiler.Target "qiskit.transpiler.Target"), so you should take a lot of care when using this argument. @@ -175,7 +179,7 @@ python_api_name: qiskit.transpiler.StagedPassManager ### to\_flow\_controller - + Linearize this manager into a single [`FlowControllerLinear`](qiskit.passmanager.FlowControllerLinear "qiskit.passmanager.FlowControllerLinear"), so that it can be nested inside another pass manager. **Returns** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.ALAPScheduleAnalysis.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.ALAPScheduleAnalysis.mdx index c7e33d6668a..897239b2c04 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.ALAPScheduleAnalysis.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.ALAPScheduleAnalysis.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.ALAPScheduleAnalysis # ALAPScheduleAnalysis - + Bases: `BaseScheduler` ALAP Scheduling pass, which schedules the **stop** time of instructions as late as possible. @@ -78,7 +78,7 @@ python_api_name: qiskit.transpiler.passes.ALAPScheduleAnalysis ### run - + Run the ALAPSchedule pass on dag. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.InstructionDurationCheck.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.InstructionDurationCheck.mdx index 90a9ea95e64..cfe22cbc2e1 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.InstructionDurationCheck.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.InstructionDurationCheck.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.InstructionDurationCheck # InstructionDurationCheck - + Bases: [`AnalysisPass`](qiskit.transpiler.AnalysisPass "qiskit.transpiler.basepasses.AnalysisPass") Duration validation pass for reschedule. @@ -79,7 +79,7 @@ python_api_name: qiskit.transpiler.passes.InstructionDurationCheck ### run - + Run duration validation passes. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.InverseCancellation.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.InverseCancellation.mdx index 220e4d18cb7..6af18d3de37 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.InverseCancellation.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.InverseCancellation.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.InverseCancellation # InverseCancellation - + Bases: [`TransformationPass`](qiskit.transpiler.TransformationPass "qiskit.transpiler.basepasses.TransformationPass") Cancel specific Gates which are inverses of each other when they occur back-to- back. @@ -17,7 +17,34 @@ python_api_name: qiskit.transpiler.passes.InverseCancellation **Parameters** - **gates\_to\_cancel** – List describing the gates to cancel. Each element of the list is either a single gate or a pair of gates. If a single gate, then it should be self-inverse. If a pair of gates, then the gates in the pair should be inverses of each other. + * **gates\_to\_cancel** – + + List describing the gates to cancel. Each element of the list is either a single gate or a pair of gates. If a single gate, then it should be self-inverse. If a pair of gates, then the gates in the pair should be inverses of each other. If `None` a default list of self-inverse gates and a default list of inverse gate pairs will be used. The current default list of self-inverse gates is: + + > * [`CXGate`](qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate") + > * [`ECRGate`](qiskit.circuit.library.ECRGate "qiskit.circuit.library.ECRGate") + > * [`CYGate`](qiskit.circuit.library.CYGate "qiskit.circuit.library.CYGate") + > * [`CZGate`](qiskit.circuit.library.CZGate "qiskit.circuit.library.CZGate") + > * [`XGate`](qiskit.circuit.library.XGate "qiskit.circuit.library.XGate") + > * [`YGate`](qiskit.circuit.library.YGate "qiskit.circuit.library.YGate") + > * [`ZGate`](qiskit.circuit.library.ZGate "qiskit.circuit.library.ZGate") + > * [`HGate`](qiskit.circuit.library.HGate "qiskit.circuit.library.HGate") + > * [`SwapGate`](qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate") + > * [`CHGate`](qiskit.circuit.library.CHGate "qiskit.circuit.library.CHGate") + > * [`CCXGate`](qiskit.circuit.library.CCXGate "qiskit.circuit.library.CCXGate") + > * [`CCZGate`](qiskit.circuit.library.CCZGate "qiskit.circuit.library.CCZGate") + > * [`RCCXGate`](qiskit.circuit.library.RCCXGate "qiskit.circuit.library.RCCXGate") + > * [`CSwapGate`](qiskit.circuit.library.CSwapGate "qiskit.circuit.library.CSwapGate") + > * [`C3XGate`](qiskit.circuit.library.C3XGate "qiskit.circuit.library.C3XGate") + + and the default list of inverse gate pairs is: + + > * [`TGate`](qiskit.circuit.library.TGate "qiskit.circuit.library.TGate") and [`TdgGate`](qiskit.circuit.library.TdgGate "qiskit.circuit.library.TdgGate") + > * [`SGate`](qiskit.circuit.library.SGate "qiskit.circuit.library.SGate") and [`SdgGate`](qiskit.circuit.library.SdgGate "qiskit.circuit.library.SdgGate") + > * [`SXGate`](qiskit.circuit.library.SXGate "qiskit.circuit.library.SXGate") and [`SXdgGate`](qiskit.circuit.library.SXdgGate "qiskit.circuit.library.SXdgGate") + > * [`CSGate`](qiskit.circuit.library.CSGate "qiskit.circuit.library.CSGate") and [`CSdgGate`](qiskit.circuit.library.CSdgGate "qiskit.circuit.library.CSdgGate") + + * **run\_default** – If set to true and `gates_to_cancel` is set to a list then in addition to the gates listed in `gates_to_cancel` the default list of gate inverses (the same as when `gates_to_cancel` is set to `None`) will be run. The order of evaluation is significant in how sequences of gates are cancelled and the default gates will be evaluated after the provided gates in `gates_to_cancel`. If `gates_to_cancel` is `None` this option has no impact. **Raises** @@ -75,7 +102,7 @@ python_api_name: qiskit.transpiler.passes.InverseCancellation ### run - + Run the InverseCancellation pass on dag. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.PadDelay.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.PadDelay.mdx index f34e2e2bdb8..c59a364af58 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.PadDelay.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.PadDelay.mdx @@ -90,7 +90,7 @@ python_api_name: qiskit.transpiler.passes.PadDelay ### get\_duration - + Get duration of a given node in the circuit. @@ -106,7 +106,7 @@ python_api_name: qiskit.transpiler.passes.PadDelay ### run - + Run the padding pass on `dag`. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.PadDynamicalDecoupling.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.PadDynamicalDecoupling.mdx index cc858d98520..c9c5b2bca21 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.PadDynamicalDecoupling.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.PadDynamicalDecoupling.mdx @@ -154,7 +154,7 @@ python_api_name: qiskit.transpiler.passes.PadDynamicalDecoupling ### get\_duration - + Get duration of a given node in the circuit. @@ -170,7 +170,7 @@ python_api_name: qiskit.transpiler.passes.PadDynamicalDecoupling ### run - + Run the padding pass on `dag`. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPermutation.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPermutation.mdx index 329f489ee19..bd2aa8e8936 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPermutation.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPermutation.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPerm # ACGSynthesisPermutation - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The permutation synthesis plugin based on the Alon, Chung, Graham method. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ACGSynthesisPerm ### run - + Run synthesis for the given Permutation. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.AGSynthesisClifford.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.AGSynthesisClifford.mdx index 9696ddb2ce6..72d79b89de8 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.AGSynthesisClifford.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.AGSynthesisClifford.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.AGSynthesisCliff # AGSynthesisClifford - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Clifford synthesis plugin based on the Aaronson-Gottesman method. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.AGSynthesisCliff ### run - + Run synthesis for the given Clifford. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.BMSynthesisClifford.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.BMSynthesisClifford.mdx index 07c754d04a1..561dd2e683c 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.BMSynthesisClifford.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.BMSynthesisClifford.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.BMSynthesisCliff # BMSynthesisClifford - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Clifford synthesis plugin based on the Bravyi-Maslov method. @@ -21,7 +21,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.BMSynthesisCliff ### run - + Run synthesis for the given Clifford. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.BasicSynthesisPermutation.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.BasicSynthesisPermutation.mdx index cdc939aa27e..5a961e10a74 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.BasicSynthesisPermutation.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.BasicSynthesisPermutation.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.BasicSynthesisPe # BasicSynthesisPermutation - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The permutation synthesis plugin based on sorting. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.BasicSynthesisPe ### run - + Run synthesis for the given Permutation. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisClifford.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisClifford.mdx index cfdab0b5d9c..1f546890ac3 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisClifford.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisClifford.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesis # DefaultSynthesisClifford - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The default clifford synthesis plugin. @@ -21,7 +21,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesis ### run - + Run synthesis for the given Clifford. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisLinearFunction.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisLinearFunction.mdx index 2b38004ded1..2a1cf545799 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisLinearFunction.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesisLinearFunction.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesis # DefaultSynthesisLinearFunction - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The default linear function synthesis plugin. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.DefaultSynthesis ### run - + Run synthesis for the given LinearFunction. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisC04.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisC04.mdx index 722bf524913..3bc50721385 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisC04.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisC04.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthes # FullAdderSynthesisC04 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A ripple-carry adder with a carry-in and a carry-out bit. @@ -21,7 +21,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthes ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisDefault.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisDefault.mdx index 2ce4cf0237f..bb41006753e 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisDefault.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisDefault.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthes # FullAdderSynthesisDefault - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A ripple-carry adder with a carry-in and a carry-out bit. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthes ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisV95.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisV95.mdx index 47e0de6de28..9c037c15c25 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisV95.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthesisV95.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthes # FullAdderSynthesisV95 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A ripple-carry adder with a carry-in and a carry-out bit. @@ -25,7 +25,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.FullAdderSynthes ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.GreedySynthesisClifford.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.GreedySynthesisClifford.mdx index 008c63253a4..6376fcf63ed 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.GreedySynthesisClifford.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.GreedySynthesisClifford.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.GreedySynthesisC # GreedySynthesisClifford - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Clifford synthesis plugin based on the greedy synthesis Bravyi-Hu-Maslov-Shaydulin method. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.GreedySynthesisC ### run - + Run synthesis for the given Clifford. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisC04.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisC04.mdx index 9a6034cd096..606df8bf06e 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisC04.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisC04.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes # HalfAdderSynthesisC04 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A ripple-carry adder with a carry-out bit. @@ -25,7 +25,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisD00.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisD00.mdx index 01602d780e6..498a17f6db1 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisD00.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisD00.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes # HalfAdderSynthesisD00 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A QFT-based adder with a carry-in and a carry-out bit. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault.mdx index c23894688e4..86f6c4e0e4e 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes # HalfAdderSynthesisDefault - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The default half-adder (no carry in, but a carry out qubit) synthesis. @@ -27,7 +27,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisR25.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisR25.mdx index 630e5d85f16..966482e732a 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisR25.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisR25.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes # HalfAdderSynthesisR25 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A ripple-carry adder with a carry-out bit with no ancillary qubits. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisV95.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisV95.mdx index a04a4ed6d9a..5de51a73588 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisV95.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisV95.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes # HalfAdderSynthesisV95 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A ripple-carry adder with a carry-out bit. @@ -25,7 +25,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthes ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesis2s.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesis2s.mdx index 2a30ec53d19..a1e5a11c5e8 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesis2s.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesis2s.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSyn # IntComparatorSynthesis2s - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") An integer comparison based on 2s complement. @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSyn ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesisDefault.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesisDefault.mdx index fa49684df78..f3413e893b0 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesisDefault.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesisDefault.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSyn # IntComparatorSynthesisDefault - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The default synthesis for `IntegerComparatorGate`. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSyn ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesisNoAux.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesisNoAux.mdx index 8ae9cd18f7c..934936bbb32 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesisNoAux.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSynthesisNoAux.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSyn # IntComparatorSynthesisNoAux - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A potentially exponentially expensive comparison w/o auxiliary qubits. @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.IntComparatorSyn ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLinearFunction.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLinearFunction.mdx index d48c858656b..cfbfd462e29 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLinearFunction.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLinearFunction.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLine # KMSSynthesisLinearFunction - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Linear function synthesis plugin based on the Kutin-Moulton-Smithline method. @@ -29,7 +29,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLine ### run - + Run synthesis for the given LinearFunction. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisPermutation.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisPermutation.mdx index 39cf33a6472..bc1c670e081 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisPermutation.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisPermutation.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisPerm # KMSSynthesisPermutation - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The permutation synthesis plugin based on the Kutin, Moulton, Smithline method. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisPerm ### run - + Run synthesis for the given Permutation. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.LayerLnnSynthesisClifford.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.LayerLnnSynthesisClifford.mdx index 63a205c255b..8529473ad97 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.LayerLnnSynthesisClifford.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.LayerLnnSynthesisClifford.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.LayerLnnSynthesi # LayerLnnSynthesisClifford - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Clifford synthesis plugin based on the Bravyi-Maslov method to synthesize Cliffords into layers, with each layer synthesized adhering to LNN connectivity. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.LayerLnnSynthesi ### run - + Run synthesis for the given Clifford. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.LayerSynthesisClifford.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.LayerSynthesisClifford.mdx index d5f956beb2e..8ff897c901d 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.LayerSynthesisClifford.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.LayerSynthesisClifford.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.LayerSynthesisCl # LayerSynthesisClifford - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Clifford synthesis plugin based on the Bravyi-Maslov method to synthesize Cliffords into layers. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.LayerSynthesisCl ### run - + Run synthesis for the given Clifford. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault.mdx index 2c972fe7f5a..84cb1a89093 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDef # MCMTSynthesisDefault - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A default decomposition for MCMT gates. @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDef ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux.mdx index d491b32a687..716bb1d3722 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoA # MCMTSynthesisNoAux - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A V-chain based synthesis for `MCMTGate`. @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoA ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain.mdx index ca9482e5d92..41923331e0a 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVCh # MCMTSynthesisVChain - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A V-chain based synthesis for `MCMTGate`. @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVCh ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate.mdx new file mode 100644 index 00000000000..22c440bbf60 --- /dev/null +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate.mdx @@ -0,0 +1,42 @@ +--- +title: MCMTSynthesisXGate (dev version) +description: API reference for qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate in the dev version of qiskit +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate +--- + +# MCMTSynthesisXGate + + + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") + + A synthesis for `MCMTGate` with X gate as the base gate. + + ## Methods + + ### run + + + Run synthesis for the given Operation. + + **Parameters** + + * **high\_level\_object** ([*Operation*](qiskit.circuit.Operation "qiskit.circuit.Operation")) – The Operation to synthesize to a [`DAGCircuit`](qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") object. + * **coupling\_map** ([*CouplingMap*](qiskit.transpiler.CouplingMap "qiskit.transpiler.CouplingMap")) – The coupling map of the backend in case synthesis is done on a physical circuit. + * **target** ([*Target*](qiskit.transpiler.Target "qiskit.transpiler.Target")) – A target representing the target backend. + * **qubits** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")) – List of qubits over which the operation is defined in case synthesis is done on a physical circuit. + * **options** – Additional method-specific optional kwargs. + + **Returns** + + **The quantum circuit representation of the Operation** + + when successful, and `None` otherwise. + + **Return type** + + [QuantumCircuit](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") + + + diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95.mdx index 2f5d89bdff0..4a0ff4f8df9 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1Cle # MCXSynthesis1CleanB95 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the paper by Barenco et al. (1995). @@ -31,7 +31,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1Cle ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanKG24.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanKG24.mdx index 80e44d9e039..2a7ba06faaa 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanKG24.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanKG24.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1Cle # MCXSynthesis1CleanKG24 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the paper by Khattar and Gidney (2024). @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1Cle The plugin name is :`mcx.1_clean_kg24` which can be used as the key on an [`HLSConfig`](qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig") object to use this method with [`HighLevelSynthesis`](qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis"). - For a multi-controlled X gate with $k\ge 3$ control qubits this synthesis method requires $1$ additional clean ancillary qubit. The synthesized circuit consists of $k + 2$ qubits and at most $12 * k - 18$ CX gates. + For a multi-controlled X gate with $k\ge 3$ control qubits this synthesis method requires $1$ additional clean ancillary qubit. The synthesized circuit consists of $k + 2$ qubits and at most $6 * k - 6$ CX gates. The plugin supports the following plugin-specific options: @@ -31,7 +31,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1Cle ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1DirtyKG24.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1DirtyKG24.mdx index 331a0f9744c..b2cdf9f5621 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1DirtyKG24.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1DirtyKG24.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1Dir # MCXSynthesis1DirtyKG24 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the paper by Khattar and Gidney (2024). @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1Dir The plugin name is :`mcx.1_dirty_kg24` which can be used as the key on an [`HLSConfig`](qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig") object to use this method with [`HighLevelSynthesis`](qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis"). - For a multi-controlled X gate with $k\ge 3$ control qubits this synthesis method requires $1$ additional dirty ancillary qubit. The synthesized circuit consists of $k + 2$ qubits and at most $24 * k - 48$ CX gates. + For a multi-controlled X gate with $k\ge 3$ control qubits this synthesis method requires $1$ additional dirty ancillary qubit. The synthesized circuit consists of $k + 2$ qubits and at most $12 * k - 18$ CX gates. The plugin supports the following plugin-specific options: @@ -31,7 +31,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1Dir ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24.mdx index 01ab83afdbe..1da88f23f1d 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2Cle # MCXSynthesis2CleanKG24 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the paper by Khattar and Gidney (2024). @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2Cle The plugin name is :`mcx.2_clean_kg24` which can be used as the key on an [`HLSConfig`](qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig") object to use this method with [`HighLevelSynthesis`](qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis"). - For a multi-controlled X gate with $k\ge 3$ control qubits this synthesis method requires $2$ additional clean ancillary qubits. The synthesized circuit consists of $k + 2$ qubits and at most $12 * k - 18$ CX gates. + For a multi-controlled X gate with $k\ge 3$ control qubits this synthesis method requires $2$ additional clean ancillary qubits. The synthesized circuit consists of $k + 3$ qubits and at most $6 * k - 6$ CX gates. The plugin supports the following plugin-specific options: @@ -31,7 +31,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2Cle ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2DirtyKG24.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2DirtyKG24.mdx index 224726d4128..fa71741a1c0 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2DirtyKG24.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2DirtyKG24.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2Dir # MCXSynthesis2DirtyKG24 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the paper by Khattar and Gidney (2024). @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2Dir The plugin name is :`mcx.2_dirty_kg24` which can be used as the key on an [`HLSConfig`](qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig") object to use this method with [`HighLevelSynthesis`](qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis"). - For a multi-controlled X gate with $k\ge 3$ control qubits this synthesis method requires $2$ additional dirty ancillary qubits. The synthesized circuit consists of $k + 2$ qubits and at most $24 * k - 48$ CX gates. + For a multi-controlled X gate with $k\ge 3$ control qubits this synthesis method requires $2$ additional dirty ancillary qubits. The synthesized circuit consists of $k + 3$ qubits and at most $12 * k - 18$ CX gates. The plugin supports the following plugin-specific options: @@ -31,7 +31,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2Dir ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefault.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefault.mdx index d7b9d7c94b3..e4b8a19baa6 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefault.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefault.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefa # MCXSynthesisDefault - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The default synthesis plugin for a multi-controlled X gate. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefa ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode.mdx index b8ac55b19c4..6d69d76c92a 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGray # MCXSynthesisGrayCode - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the Gray code. @@ -23,7 +23,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGray ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15.mdx index 4aced1ba934..0d1e9e941c6 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCle # MCXSynthesisNCleanM15 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the paper by Maslov (2016). @@ -31,7 +31,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCle ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15.mdx index bfc25140b4e..5fc09e2106b 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDir # MCXSynthesisNDirtyI15 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the paper by Iten et al. (2016). @@ -34,7 +34,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDir ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24.mdx new file mode 100644 index 00000000000..32ff7068729 --- /dev/null +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24.mdx @@ -0,0 +1,34 @@ +--- +title: MCXSynthesisNoAuxHP24 (dev version) +description: API reference for qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24 in the dev version of qiskit +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24 +--- + +# MCXSynthesisNoAuxHP24 + + + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") + + Synthesis plugin for a multi-controlled X gate based on the paper by Huang and Palsberg. + + See \[1] for details. + + This plugin name is :`mcx.noaux_hp24` which can be used as the key on an [`HLSConfig`](qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig") object to use this method with [`HighLevelSynthesis`](qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis"). + + For a multi-controlled X gate with $k$ control qubits this synthesis method requires no additional clean auxiliary qubits. The synthesized circuit consists of $k + 1$ qubits. The number of CX-gates is linear in $k$. + + **References** + + 1. Huang and Palsberg, *Compiling Conditional Quantum Gates without Using Helper Qubits*, PLDI (2024), \<[https://dl.acm.org/doi/10.1145/3656436](https://dl.acm.org/doi/10.1145/3656436)>\`\_ + + ## Methods + + ### run + + + Run synthesis for the given MCX gate. + + + diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24.mdx index 1c8c3e5d278..e2a92f5f5f7 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAu # MCXSynthesisNoAuxV24 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for a multi-controlled X gate based on the implementation for MCPhaseGate, which is in turn based on the paper by Vale et al. (2024). @@ -17,7 +17,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAu This plugin name is :`mcx.noaux_v24` which can be used as the key on an [`HLSConfig`](qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig") object to use this method with [`HighLevelSynthesis`](qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis"). - For a multi-controlled X gate with $k$ control qubits this synthesis method requires no additional clean auxiliary qubits. The synthesized circuit consists of $k + 1$ qubits. + For a multi-controlled X gate with $k$ control qubits this synthesis method requires no additional clean auxiliary qubits. The synthesized circuit consists of $k + 1$ qubits. The number of CX-gates is quadratic in $k$. **References** @@ -27,7 +27,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAu ### run - + Run synthesis for the given MCX gate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisC04.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisC04.mdx index 32d8c417e82..9c459dc60d2 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisC04.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisC04.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynt # ModularAdderSynthesisC04 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A ripple-carry adder, modulo $2^n$. @@ -25,7 +25,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynt ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisD00.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisD00.mdx index f0a9967de34..ca46796a6dc 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisD00.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisD00.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynt # ModularAdderSynthesisD00 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A QFT-based adder, modulo $2^n$. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynt ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisDefault.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisDefault.mdx index f3f03cf53b6..f96d42c5ad8 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisDefault.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisDefault.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynt # ModularAdderSynthesisDefault - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The default modular adder (no carry in, no carry out qubit) synthesis. @@ -25,7 +25,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynt ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisV95.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisV95.mdx index 906abcf7f09..c945ebe34fa 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisV95.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynthesisV95.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynt # ModularAdderSynthesisV95 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A ripple-carry adder, modulo $2^n$. @@ -25,7 +25,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.ModularAdderSynt ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthesisH18.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthesisH18.mdx index 0b97b4921f3..abadb4e51e3 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthesisH18.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthesisH18.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthe # MultiplierSynthesisH18 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A cumulative multiplier based on controlled adders. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthe ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthesisR17.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthesisR17.mdx index 946e352a7dd..c73647e2bfd 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthesisR17.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthesisR17.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthe # MultiplierSynthesisR17 - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") A QFT-based multiplier. @@ -19,7 +19,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.MultiplierSynthe ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PMHSynthesisLinearFunction.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PMHSynthesisLinearFunction.mdx index 358b230edf9..7f457a4a2bf 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PMHSynthesisLinearFunction.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PMHSynthesisLinearFunction.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.PMHSynthesisLine # PMHSynthesisLinearFunction - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Linear function synthesis plugin based on the Patel-Markov-Hayes method. @@ -35,7 +35,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.PMHSynthesisLine ### run - + Run synthesis for the given LinearFunction. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisDefault.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisDefault.mdx index a9e14e3396d..52d6159b0e7 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisDefault.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisDefault.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSy # PauliEvolutionSynthesisDefault - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesize a [`PauliEvolutionGate`](qiskit.circuit.library.PauliEvolutionGate "qiskit.circuit.library.PauliEvolutionGate") using the default synthesis algorithm. @@ -25,7 +25,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSy ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisRustiq.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisRustiq.mdx index a545568fd99..6f5db10a4b0 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisRustiq.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisRustiq.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSy # PauliEvolutionSynthesisRustiq - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesize a [`PauliEvolutionGate`](qiskit.circuit.library.PauliEvolutionGate "qiskit.circuit.library.PauliEvolutionGate") using Rustiq. @@ -47,7 +47,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSy ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisFull.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisFull.mdx index 3da51788bae..8c54ce2c0bf 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisFull.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisFull.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisFull # QFTSynthesisFull - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for QFT gates using all-to-all connectivity. @@ -42,7 +42,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisFull ### run - + Run synthesis for the given QFTGate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisLine.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisLine.mdx index a389e05c6f1..cf51169347a 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisLine.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisLine.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisLine # QFTSynthesisLine - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesis plugin for QFT gates using linear connectivity. @@ -36,7 +36,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.QFTSynthesisLine ### run - + Run synthesis for the given QFTGate. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation.mdx index acdffc15190..409ab1d61f2 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynt # TokenSwapperSynthesisPermutation - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") The permutation synthesis plugin based on the token swapper algorithm. @@ -33,7 +33,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynt ### run - + Run synthesis for the given Permutation. diff --git a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.WeightedSumSynthesisDefault.mdx b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.WeightedSumSynthesisDefault.mdx index 5c1d40f3c16..d2f76056479 100644 --- a/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.WeightedSumSynthesisDefault.mdx +++ b/docs/api/qiskit/dev/qiskit.transpiler.passes.synthesis.hls_plugins.WeightedSumSynthesisDefault.mdx @@ -8,7 +8,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.WeightedSumSynth # WeightedSumSynthesisDefault - + Bases: [`HighLevelSynthesisPlugin`](qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin") Synthesize a [`WeightedSumGate`](qiskit.circuit.library.WeightedSumGate "qiskit.circuit.library.WeightedSumGate") using the default synthesis algorithm. @@ -23,7 +23,7 @@ python_api_name: qiskit.transpiler.passes.synthesis.hls_plugins.WeightedSumSynth ### run - + Run synthesis for the given Operation. **Parameters** diff --git a/docs/api/qiskit/dev/qiskit.visualization.plot_bloch_multivector.mdx b/docs/api/qiskit/dev/qiskit.visualization.plot_bloch_multivector.mdx index a133f0e8d1c..7ba4e1bf2ca 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.plot_bloch_multivector.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.plot_bloch_multivector.mdx @@ -32,7 +32,7 @@ python_api_name: qiskit.visualization.plot_bloch_multivector **Return type** - [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.3)") + [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.5)") **Raises** diff --git a/docs/api/qiskit/dev/qiskit.visualization.plot_bloch_vector.mdx b/docs/api/qiskit/dev/qiskit.visualization.plot_bloch_vector.mdx index fdfa0925713..c01fb3c5a37 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.plot_bloch_vector.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.plot_bloch_vector.mdx @@ -19,7 +19,7 @@ python_api_name: qiskit.visualization.plot_bloch_vector * **bloch** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")*\[double]*) – array of three elements where \[\, \, \] (Cartesian) or \[\, \, \] (spherical in radians) \ is inclination angle from +z direction \ is azimuth from +x direction * **title** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – a string that represents the plot title - * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An Axes to use for rendering the bloch sphere + * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An Axes to use for rendering the bloch sphere * **figsize** ([*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")) – Figure size in inches. Has no effect is passing `ax`. * **coord\_type** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – a string that specifies coordinate type for bloch (Cartesian or spherical), default is Cartesian * **font\_size** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – Font size. @@ -30,7 +30,7 @@ python_api_name: qiskit.visualization.plot_bloch_vector **Return type** - [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.3)") + [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.5)") **Raises** diff --git a/docs/api/qiskit/dev/qiskit.visualization.plot_distribution.mdx b/docs/api/qiskit/dev/qiskit.visualization.plot_distribution.mdx index 7bbfa7a51b3..9e237c4c077 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.plot_distribution.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.plot_distribution.mdx @@ -24,7 +24,7 @@ python_api_name: qiskit.visualization.plot_distribution * **legend** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")) – A list of strings to use for labels of the data. The number of entries must match the length of data (if data is a list or 1 if it’s a dict) * **bar\_labels** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – Label each bar in histogram with probability value. * **title** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – A string to use for the plot title - * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. + * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. * **filename** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – file path to save image to. **Returns** diff --git a/docs/api/qiskit/dev/qiskit.visualization.plot_histogram.mdx b/docs/api/qiskit/dev/qiskit.visualization.plot_histogram.mdx index 20a89494c4a..c1867080ccc 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.plot_histogram.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.plot_histogram.mdx @@ -24,7 +24,7 @@ python_api_name: qiskit.visualization.plot_histogram * **legend** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")) – A list of strings to use for labels of the data. The number of entries must match the length of data (if data is a list or 1 if it’s a dict) * **bar\_labels** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – Label each bar in histogram with counts value. * **title** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – A string to use for the plot title - * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. + * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. * **filename** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – file path to save image to. **Returns** diff --git a/docs/api/qiskit/dev/qiskit.visualization.plot_state_city.mdx b/docs/api/qiskit/dev/qiskit.visualization.plot_state_city.mdx index ad960f0b2d6..8130d4cda91 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.plot_state_city.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.plot_state_city.mdx @@ -22,8 +22,8 @@ python_api_name: qiskit.visualization.plot_state_city * **figsize** ([*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")) – Figure size in inches. * **color** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)")) – A list of len=2 giving colors for real and imaginary components of matrix elements. * **alpha** ([*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")) – Transparency value for bars - * **ax\_real** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. If this is specified without an ax\_imag only the real component plot will be generated. Additionally, if specified there will be no returned Figure since it is redundant. - * **ax\_imag** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. If this is specified without an ax\_real only the imaginary component plot will be generated. Additionally, if specified there will be no returned Figure since it is redundant. + * **ax\_real** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. If this is specified without an ax\_imag only the real component plot will be generated. Additionally, if specified there will be no returned Figure since it is redundant. + * **ax\_imag** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. If this is specified without an ax\_real only the imaginary component plot will be generated. Additionally, if specified there will be no returned Figure since it is redundant. **Returns** @@ -31,7 +31,7 @@ python_api_name: qiskit.visualization.plot_state_city **Return type** - [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.3)") + [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.5)") **Raises** diff --git a/docs/api/qiskit/dev/qiskit.visualization.plot_state_hinton.mdx b/docs/api/qiskit/dev/qiskit.visualization.plot_state_hinton.mdx index 7675908dd99..ea671aa7d52 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.plot_state_hinton.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.plot_state_hinton.mdx @@ -21,8 +21,8 @@ python_api_name: qiskit.visualization.plot_state_hinton * **title** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – a string that represents the plot title * **figsize** ([*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")) – Figure size in inches. * **filename** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – file path to save image to. - * **ax\_real** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. If this is specified without an ax\_imag only the real component plot will be generated. Additionally, if specified there will be no returned Figure since it is redundant. - * **ax\_imag** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. If this is specified without an ax\_imag only the real component plot will be generated. Additionally, if specified there will be no returned Figure since it is redundant. + * **ax\_real** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. If this is specified without an ax\_imag only the real component plot will be generated. Additionally, if specified there will be no returned Figure since it is redundant. + * **ax\_imag** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. If this is specified without an ax\_imag only the real component plot will be generated. Additionally, if specified there will be no returned Figure since it is redundant. **Returns** @@ -30,7 +30,7 @@ python_api_name: qiskit.visualization.plot_state_hinton **Return type** - [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.3)") + [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.5)") **Raises** diff --git a/docs/api/qiskit/dev/qiskit.visualization.plot_state_paulivec.mdx b/docs/api/qiskit/dev/qiskit.visualization.plot_state_paulivec.mdx index 5259ce252dc..233d75e902b 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.plot_state_paulivec.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.plot_state_paulivec.mdx @@ -28,7 +28,7 @@ $$ * **title** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – a string that represents the plot title * **figsize** ([*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")) – Figure size in inches. * **color** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.13)") *or*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) – Color of the coefficient value bars. - * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. + * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. **Returns** @@ -36,7 +36,7 @@ $$ **Return type** - [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.3)") + [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.5)") **Raises** diff --git a/docs/api/qiskit/dev/qiskit.visualization.plot_state_qsphere.mdx b/docs/api/qiskit/dev/qiskit.visualization.plot_state_qsphere.mdx index 1fa2a1ad622..2054f4fbe2e 100644 --- a/docs/api/qiskit/dev/qiskit.visualization.plot_state_qsphere.mdx +++ b/docs/api/qiskit/dev/qiskit.visualization.plot_state_qsphere.mdx @@ -17,7 +17,7 @@ python_api_name: qiskit.visualization.plot_state_qsphere * **state** ([*Statevector*](qiskit.quantum_info.Statevector "qiskit.quantum_info.Statevector") *or*[*DensityMatrix*](qiskit.quantum_info.DensityMatrix "qiskit.quantum_info.DensityMatrix") *or ndarray*) – an N-qubit quantum state. * **figsize** ([*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.13)")) – Figure size in inches. - * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.3)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. + * **ax** ([*matplotlib.axes.Axes*](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes "(in Matplotlib v3.10.5)")) – An optional Axes object to be used for the visualization output. If none is specified a new matplotlib Figure will be created and used. Additionally, if specified there will be no returned Figure since it is redundant. * **show\_state\_labels** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – An optional boolean indicating whether to show labels for each basis state. * **show\_state\_phases** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – An optional boolean indicating whether to show the phase for each basis state. * **use\_degrees** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – An optional boolean indicating whether to use radians or degrees for the phase values in the plot. @@ -28,7 +28,7 @@ python_api_name: qiskit.visualization.plot_state_qsphere **Return type** - [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.3)") + [`matplotlib.figure.Figure`](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure "(in Matplotlib v3.10.5)") **Raises** diff --git a/docs/api/qiskit/dev/synthesis.mdx b/docs/api/qiskit/dev/synthesis.mdx index 0a9bdab59e6..9737d8d0b9c 100644 --- a/docs/api/qiskit/dev/synthesis.mdx +++ b/docs/api/qiskit/dev/synthesis.mdx @@ -715,7 +715,7 @@ python_api_name: qiskit.synthesis ### synth\_qft\_full - + Construct a circuit for the Quantum Fourier Transform using all-to-all connectivity. @@ -746,42 +746,50 @@ Decomposition of general $2^n \times 2^n$ unitary matrices for any number of qub ### qs\_decomposition - - Decomposes a unitary matrix into one and two qubit gates using Quantum Shannon Decomposition, + + Decomposes a unitary matrix into one and two qubit gates using Quantum Shannon Decomposition, based on the Block ZXZ-Decomposition. - This decomposition is described in Shende et al. \[1]. + This decomposition is described in Krol and Al-Ars \[2] and improves the method of Shende et al. \[1]. ```text - ┌───┐ ┌───┐ ┌───┐ ┌───┐ - ─┤ ├─ ───────┤ Rz├─────┤ Ry├─────┤ Rz├───── - │ │ ≃ ┌───┐└─┬─┘┌───┐└─┬─┘┌───┐└─┬─┘┌───┐ - /─┤ ├─ /─┤ ├──□──┤ ├──□──┤ ├──□──┤ ├ - └───┘ └───┘ └───┘ └───┘ └───┘ + ┌───┐ ┌───┐ ┌───┐ + ─┤ ├─ ────□──┤ H ├──□──┤ H ├──□── + │ │ ≃ ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐ + /─┤ ├─ ──┤ C ├─────┤ B ├─────┤ A ├ + └───┘ └───┘ └───┘ └───┘ ``` - The number of [`CXGate`](qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate")s generated with the decomposition without optimizations is: + The number of [`CXGate`](qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate")s generated with the decomposition without optimizations is the same as the unoptimized method in \[1]: $$ \frac{9}{16} 4^n - \frac{3}{2} 2^n $$ - If `opt_a1 = True`, the default, the CX count is reduced by: + If `opt_a1 = True`, the CX count is reduced, improving \[1], by: $$ -\frac{1}{3} 4^{n - 2} - 1. +\frac{2}{3} (4^{n - 2} - 1). $$ - If `opt_a2 = True`, the default, the CX count is reduced by: + Saving two [`CXGate`](qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate")s instead of one in each step of the recursion. + + If `opt_a2 = True`, the CX count is reduced, as in \[1], by: $$ 4^{n-2} - 1. +$$ + + Hence, the number of [`CXGate`](qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate")s generated with the decomposition with optimizations is + +$$ +\frac{22}{48} 4^n - \frac{3}{2} 2^n + \frac{5}{3}. $$ **Parameters** * **mat** (*np.ndarray*) – unitary matrix to decompose - * **opt\_a1** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – whether to try optimization A.1 from Shende et al. \[1]. This should eliminate 1 `cx` per call. If `True`, [`CZGate`](qiskit.circuit.library.CZGate "qiskit.circuit.library.CZGate")s are left in the output. If desired these can be further decomposed to [`CXGate`](qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate")s. - * **opt\_a2** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) – whether to try optimization A.2 from Shende et al. \[1]. This decomposes two qubit unitaries into a diagonal gate and a two cx unitary and reduces overall cx count by $4^{n-2} - 1$. + * **opt\_a1** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") *| None*) – whether to try optimization A.1 from \[1, 2]. This should eliminate 2 `cx` per call. + * **opt\_a2** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)") *| None*) – whether to try optimization A.2 from \[1, 2]. This decomposes two qubit unitaries into a diagonal gate and a two `cx` unitary and reduces overall `cx` count by $4^{n-2} - 1$. This optimization should not be done if the original unitary is controlled. * **decomposer\_1q** (*Callable\[\[np.ndarray],* [*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")*] | None*) – optional 1Q decomposer. If None, uses [`OneQubitEulerDecomposer`](qiskit.synthesis.OneQubitEulerDecomposer "qiskit.synthesis.OneQubitEulerDecomposer"). * **decomposer\_2q** (*Callable\[\[np.ndarray],* [*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")*] | None*) – optional 2Q decomposer. If None, uses [`TwoQubitBasisDecomposer`](qiskit.synthesis.TwoQubitBasisDecomposer "qiskit.synthesis.TwoQubitBasisDecomposer"). @@ -796,6 +804,7 @@ $$ **References** 1. Shende, Bullock, Markov, *Synthesis of Quantum Logic Circuits*, [arXiv:0406176 \[quant-ph\]](https://arxiv.org/abs/quant-ph/0406176) + 2. Krol, Al-Ars, *Beyond Quantum Shannon: Circuit Construction for General n-Qubit Gates Based on Block ZXZ-Decomposition*, [arXiv:2403.13692](https://arxiv.org/abs/2403.13692) The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.unitary.aqc`](qiskit.synthesis.unitary.aqc#module-qiskit.synthesis.unitary.aqc "qiskit.synthesis.unitary.aqc"). @@ -839,7 +848,7 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcmt\_vchain - + Synthesize MCMT using a V-chain. This uses a chain of CCX gates, using `num_ctrl_qubits - 1` auxiliary qubits. @@ -865,10 +874,53 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u **Parameters** - * **gate** ([*Gate*](qiskit.circuit.Gate "qiskit.circuit.Gate")) – - * **num\_ctrl\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – - * **num\_target\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – - * **ctrl\_state** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – + * **gate** ([*Gate*](qiskit.circuit.Gate "qiskit.circuit.Gate")) – Base gate to be applied to the targets. + * **num\_ctrl\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – Number of control qubits. + * **num\_target\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – Number of target qubits. + * **ctrl\_state** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – Optional control state as an integer. + + **Returns** + + The synthesized circuit for the MCMT gate. + + **Return type** + + [QuantumCircuit](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") + + +### synth\_mcmt\_xgate + + + Synthesize MCMT X gate. + + This uses a special circuit structure that is efficient for MCMT X gates. It does not require any ancillary qubits and benefits from efficient MCX decompositions. + + E.g. a 3-control, 3-target X gate will be synthesized as: + + ```python + q_0: ─────────────■──────────── + | + q_1: ─────────────■──────────── + | + q_2: ─────────────■──────────── + ┌─┴─┐ + q_3: ────────■──┤ X ├──■─────── + ┌─┴─┐└───┘┌─┴─┐ + q_4: ───■──┤ X ├─────┤ X ├──■── + ┌─┴─┐└───┘ └───┘┌─┴─┐ + q_5: ─┤ X ├───────────────┤ X ├ + └───┘ └───┘ + ``` + + **Parameters** + + * **num\_ctrl\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – Number of control qubits. + * **num\_target\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – Number of target qubits. + * **ctrl\_state** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – Optional control state as an integer. + + **Returns** + + The synthesized circuit for the MCMT X gate. **Return type** @@ -877,8 +929,8 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcx\_1\_clean\_kg24 - - Synthesize a multi-controlled X gate with $k$ controls using $1$ clean ancillary qubit producing a circuit with $2k-3$ Toffoli gates and depth $O(k)$ as described in Sec. 5.1 of \[1]. + + Synthesize a multi-controlled X gate with $k$ controls using $1$ clean ancillary qubit producing a circuit with $2k-3$ Toffoli gates or $6k-6$ CX gates and depth $O(k)$ as described in Sec. 5.1 of \[1]. **Parameters** @@ -903,8 +955,8 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcx\_1\_dirty\_kg24 - - Synthesize a multi-controlled X gate with $k$ controls using $1$ dirty ancillary qubit producing a circuit with $4k-8$ Toffoli gates and depth $O(k)$ as described in Sec. 5.3 of \[1]. + + Synthesize a multi-controlled X gate with $k$ controls using $1$ dirty ancillary qubit producing a circuit with $4k-8$ Toffoli gates or $12k-18$ CX gates and depth $O(k)$ as described in Sec. 5.3 of \[1]. **Parameters** @@ -929,8 +981,8 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcx\_2\_clean\_kg24 - - Synthesize a multi-controlled X gate with $k$ controls using $2$ clean ancillary qubits producing a circuit with $2k-3$ Toffoli gates and depth $O(\log(k))$ as described in Sec. 5.2 of \[1]. + + Synthesize a multi-controlled X gate with $k$ controls using $2$ clean ancillary qubits producing a circuit with $2k-3$ Toffoli gates or $6k-6$ CX gates and depth $O(\log(k))$ as described in Sec. 5.2 of \[1]. **Parameters** @@ -955,8 +1007,8 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcx\_2\_dirty\_kg24 - - Synthesize a multi-controlled X gate with $k$ controls using $2$ dirty ancillary qubits producing a circuit with $4k-8$ Toffoli gates and depth $O(\log(k))$ as described in Sec. 5.4 of \[1]. + + Synthesize a multi-controlled X gate with $k$ controls using $2$ dirty ancillary qubits producing a circuit with $4k-8$ Toffoli gates or $12k-18$ CX gates and depth $O(\log(k))$ as described in Sec. 5.4 of \[1]. **Parameters** @@ -981,7 +1033,7 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcx\_n\_dirty\_i15 - + Synthesize a multi-controlled X gate with $k$ controls based on the paper by Iten et al. \[1]. For $k\ge 4$ the method uses $k - 2$ dirty ancillary qubits, producing a circuit with $2 * k - 1$ qubits and at most $8 * k - 6$ CX gates. For $k\le 3$ explicit efficient circuits are used instead. @@ -1007,7 +1059,7 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcx\_n\_clean\_m15 - + Synthesize a multi-controlled X gate with $k$ controls using $k - 2$ clean ancillary qubits with producing a circuit with $2 * k - 1$ qubits and at most $6 * k - 6$ CX gates, by Maslov \[1]. **Parameters** @@ -1029,7 +1081,7 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcx\_1\_clean\_b95 - + Synthesize a multi-controlled X gate with $k$ controls using a single clean ancillary qubit producing a circuit with $k + 2$ qubits and at most $16 * k - 24$ CX gates, by \[1], \[2]. **Parameters** @@ -1052,7 +1104,7 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_mcx\_noaux\_v24 - + Synthesize a multi-controlled X gate with $k$ controls based on the implementation for MCPhaseGate. In turn, the MCPhase gate uses the decomposition for multi-controlled special unitaries described in \[1]. @@ -1076,9 +1128,33 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u 1. Vale et. al., *Circuit Decomposition of Multicontrolled Special Unitary Single-Qubit Gates*, IEEE TCAD 43(3) (2024), [arXiv:2302.06377](https://arxiv.org/abs/2302.06377) +### synth\_mcx\_noaux\_hp24 + + + Synthesize a multi-controlled X gate with $k$ controls based on the work by Huang and Palsberg. + + Produces a quantum circuit with $k + 1$ qubits. The number of CX-gates is linear in $k$. + + **Parameters** + + **num\_ctrl\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – The number of control qubits. + + **Returns** + + The synthesized quantum circuit. + + **Return type** + + [*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.quantumcircuit.QuantumCircuit") + + **References** + + 1. Huang and Palsberg, *Compiling Conditional Quantum Gates without Using Helper Qubits*, PLDI (2024), \<[https://dl.acm.org/doi/10.1145/3656436](https://dl.acm.org/doi/10.1145/3656436)>\`\_ + + ### synth\_mcx\_gray\_code - + Synthesize a multi-controlled X gate with $k$ controls using the Gray code. Produces a quantum circuit with $k + 1$ qubits. This method produces exponentially many CX gates and should be used only for small values of $k$. @@ -1098,7 +1174,7 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_c3x - + Efficient synthesis of 3-controlled X-gate. **Return type** @@ -1108,7 +1184,7 @@ The Approximate Quantum Compiler is available as the module [`qiskit.synthesis.u ### synth\_c4x - + Efficient synthesis of 4-controlled X-gate. **Return type** diff --git a/docs/api/qiskit/dev/transpiler_synthesis_plugins.mdx b/docs/api/qiskit/dev/transpiler_synthesis_plugins.mdx index 7d12580e3e0..7e373a12aa6 100644 --- a/docs/api/qiskit/dev/transpiler_synthesis_plugins.mdx +++ b/docs/api/qiskit/dev/transpiler_synthesis_plugins.mdx @@ -307,13 +307,14 @@ The following table lists synthesis plugins available for an [`MCXGate`](qiskit. | Plugin name | Plugin class | Number of clean ancillas | Number of dirty ancillas | Description | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------ | -------------------------------------------------------------------------------- | | `"gray_code"` | [`MCXSynthesisGrayCode`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode") | 0 | 0 | exponentially many CX gates; use only for small values of k | -| `"noaux_v24"` | [`MCXSynthesisNoAuxV24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24") | 0 | 0 | quadratic number of CX gates; use instead of `"gray_code"` for large values of k | +| `"noaux_v24"` | [`MCXSynthesisNoAuxV24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24") | 0 | 0 | quadratic number of CX gates | +| `"noaux_hp24"` | [`MCXSynthesisNoAuxHP24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24") | 0 | 0 | linear number of CX gates; use instead of `"noaux_v24"` or `"gray_code"` for k>5 | | `"n_clean_m15"` | [`MCXSynthesisNCleanM15`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15") | k-2 | 0 | at most 6\*k-6 CX gates | | `"n_dirty_i15"` | [`MCXSynthesisNDirtyI15`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15") | 0 | k-2 | at most 8\*k-6 CX gates | -| `"2_clean_kg24"` | [`MCXSynthesis2CleanKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24") | 2 | 0 | at most 12\*k-18 CX gates | -| `"2_dirty_kg24"` | [`MCXSynthesis2DirtyKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2DirtyKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2DirtyKG24") | 0 | 2 | at most 24\*k-48 CX gates | -| `"1_clean_kg24"` | [`MCXSynthesis1CleanKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanKG24") | 1 | 0 | at most 12\*k-18 CX gates | -| `"1_dirty_kg24"` | [`MCXSynthesis1DirtyKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1DirtyKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1DirtyKG24") | 0 | 1 | at most 24\*k-48 CX gates | +| `"2_clean_kg24"` | [`MCXSynthesis2CleanKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24") | 2 | 0 | at most 6\*k-6 CX gates | +| `"2_dirty_kg24"` | [`MCXSynthesis2DirtyKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2DirtyKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2DirtyKG24") | 0 | 2 | at most 12\*k-18 CX gates | +| `"1_clean_kg24"` | [`MCXSynthesis1CleanKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanKG24") | 1 | 0 | at most 6\*k-6 CX gates | +| `"1_dirty_kg24"` | [`MCXSynthesis1DirtyKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1DirtyKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1DirtyKG24") | 0 | 1 | at most 12\*k-18 CX gates | | `"1_clean_b95"` | [`MCXSynthesis1CleanB95`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis1CleanB95") | 1 | 0 | at most 16\*k-8 CX gates | | `"default"` | [`MCXSynthesisDefault`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefault "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisDefault") | any | any | chooses the best algorithm based on the ancillas available | @@ -321,6 +322,7 @@ The following table lists synthesis plugins available for an [`MCXGate`](qiskit. | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | [`MCXSynthesisGrayCode`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisGrayCode")() | Synthesis plugin for a multi-controlled X gate based on the Gray code. | | [`MCXSynthesisNoAuxV24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxV24")() | Synthesis plugin for a multi-controlled X gate based on the implementation for MCPhaseGate, which is in turn based on the paper by Vale et al. (2024). | +| [`MCXSynthesisNoAuxHP24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNoAuxHP24")() | Synthesis plugin for a multi-controlled X gate based on the paper by Huang and Palsberg. | | [`MCXSynthesisNCleanM15`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNCleanM15")() | Synthesis plugin for a multi-controlled X gate based on the paper by Maslov (2016). | | [`MCXSynthesisNDirtyI15`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15")() | Synthesis plugin for a multi-controlled X gate based on the paper by Iten et al. (2016). | | [`MCXSynthesis2CleanKG24`](qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24 "qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesis2CleanKG24")() | Synthesis plugin for a multi-controlled X gate based on the paper by Khattar and Gidney (2024). | @@ -336,13 +338,15 @@ The following table lists synthesis plugins available for an [`MCXGate`](qiskit. | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------ | ---------------------------------------------------------- | | `"vchain"` | [`MCMTSynthesisVChain`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain") | k-1 | 0 | uses a linear number of Toffoli gates | | `"noaux"` | [`MCMTSynthesisNoAux`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux") | 0 | 0 | uses Qiskit’s standard control mechanism | +| `"xgate"` | [`MCMTSynthesisXGate`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate") | 0 | 0 | uses a linear number of Toffoli gates | | `"default"` | [`MCMTSynthesisDefault`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault") | any | any | chooses the best algorithm based on the ancillas available | -| | | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| [`MCMTSynthesisVChain`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain")() | A V-chain based synthesis for `MCMTGate`. | -| [`MCMTSynthesisNoAux`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux")() | A V-chain based synthesis for `MCMTGate`. | -| [`MCMTSynthesisDefault`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault")() | A default decomposition for MCMT gates. | +| | | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | +| [`MCMTSynthesisVChain`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisVChain")() | A V-chain based synthesis for `MCMTGate`. | +| [`MCMTSynthesisNoAux`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisNoAux")() | A V-chain based synthesis for `MCMTGate`. | +| [`MCMTSynthesisXGate`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisXGate")() | A synthesis for `MCMTGate` with X gate as the base gate. | +| [`MCMTSynthesisDefault`](qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault "qiskit.transpiler.passes.synthesis.hls_plugins.MCMTSynthesisDefault")() | A default decomposition for MCMT gates. | ##### Integer comparators diff --git a/public/docs/api/qiskit-c/dev/objects.inv b/public/docs/api/qiskit-c/dev/objects.inv index f0dc49ea15bfac82e04fd2239e2c2278e66c8928..1153e12b61f86a3cd999730b3c765e641f0a60ab 100644 GIT binary patch delta 3013 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 diff --git a/public/docs/api/qiskit-ibm-runtime/dev/objects.inv b/public/docs/api/qiskit-ibm-runtime/dev/objects.inv index 3a4276b250ff145c00abf17d89346d1b7872f15e..69c908ec1c153b791024e090607e15fae8de48dc 100644 GIT binary patch literal 52350 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%0Dht&1bcBsj_4B}pTuG!@E0_3X$yN8hh z`}is+{o>?)`4ceE!q4v8{y&w!c$>$AXJ#?49Q*=aNja^Yj-y8{w+YZr_RK&>&df<~ z(&8z1i{~^>afFy_~XUe*8(jw}QkG1X7V_MT%f^<|0 zv*^2I)gZhrz)>sd@>MakWnByls_3gTy&;`0YbxQ7scq=p$$LP@A zG+dy&2CjexawneO=f>GHqz623riC0K#2kO$AWE;4*@=M7Y=DHOSD_@cDvfX-mowi_ z&K=zJ_T8>)I$d&HeD1Q3845XfzFrS_iZxrqGoL#mSCgXJ7_Val|G+@@`FIL@$<^rd zeYLouA5Q)K2(Fz5=%8=~_%5BTO*MZV-mm9*czo3xk79-nj9%;HD;C=DpSictuWluC zVj_HDe;FXFH>}b8r8B;B+O=BsV*5Cv&X!qDvf``5rPB(-Jl3s=f7m=xLY+bDkeVVF z)6Lzt5LhV&(6mk{@j%~)v*gHK4~=$)oyafjbbd5^4`l32@Z*=a^QE!BW=`(R@Pzg3 zyRW|r=cg%qy|>_Zf8O@^yzPA){7_)d_@{l}c6{G1;PG=81Xx{PIt1xOUvAGnZjbhq z@Q_aNcYJ-nMmk*aeO>`e!mKedC&vdPE@v@qM-cBnw5G#9X08%Qk)Iw7FTMnJFJm>I zm|dG~J^h(_Hr1a^=j)C;$sPRSgQGRf4*+_SOU8?&9UYCVyO^PZ{C?C2cS^jvjb3Ps zx^k!0%%#GEfeDG2la!d~>?Yes<~4&Ziju?*1sJmC8IUdp?NY}+x;9oxiSA6Vw@mwW`H>vQyD~}0Ms&25949)KNs5zwk0fOsOMWYQ zba!YcqnUQ?s8TVy?x!cEn+}uGFj9U5B&Q?$dP~bto>-=&YhMr9shmFK&Yno-rQD2U z!L<^myuoHn{eC=arGAvYGvC%^(38s6b)dDd>)2)szg|$3ZAqOCsf4~-l6%r|w#a*D zFInmEXO=x)X>MD8*@2(gc(ty->GfsVQHFaOaCR@fZ|78b#pZ9RzoOr|&#~i>#kTHb zHTuz+xR(30Zl&)|f3*%!iZb=6sYZL=*0vm%p!Im1_qw{=L_+gyhwoh4rFBGfBHcVs z9kukJwxnnGHM$PtNWD9f`+%*@`0b^nEZ`FqWcp(e7-4BD6WsBmeHOi0IeT~Zpu~)h zy)a$6wWsoqHQ3AHe;+N z@FCq#r-et~kL#%ZT(Oe!)(yIiS@=}1cejSh!`jm;^|`X?W(C-kT;zXmO+6Q-qJiVT zU%ak=9q$bE$q&Hor?8aZHs+qaM2)OI59#BQOn)uxQ}=R}KBaiGR`6D7Um~~eu~SdX zgoCnw=pNM)vedo~`O*@t9zE)PdEP1UvcX^Z`qJFImpHDlq�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 literal 54477 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%0A`Q$JI!#UDOK-l^^cQ=5$;?ix;k?CmXs# z5zAwJ%Cp0Iz`mi6=Q~2-n&LiNziJfcWhS#SgrrMm0demCf^N-^;>q@ub)((+g2`4-vx@2=bx%i z`@>-^j&B$B!a|+ukE>zYHoi49eAzsG{FLX<)qec|JqL|_^`Zfw(5LLFS-a7F?ivm4 zu?XFZpUYFfo?b`vuga5KntRll;gEFRHu-)2u#&*Px<*5LEW*BCzvKN^+sZ-pU63fh zmk%HFsvawZnMfzs(nSlpViAj65Uj|DI0g9I_%1uv`|N4GdR5=hg&I0S;XdZ4^VZ7R z1gM6FaX%>9{`izVm#6h2R<5PT8@fUfzdRoEFYDpX&3vrB6B6jQJnfHbm#(^NG_(gJ zlt;m|s=Ia$#&<(vz0VH$@nOHd;{4nh zx^Q7Q7=IpC&&68@o$We zcuTFR5L{PbHiQ z3n|2t$wi*&ydLql{9z%`bN=9mA6l-D`g>mO5Bv5Zy~W?7lW!LOBF%JOkJvw@A^ZJx zPj}4z9$y?uoWw#wU1V3(xQ8IZzGx0B=Yh(#8KR7Ot;abl@a1_>_f341QJ?i7|L2%5 zjNd+p>xLd${s-`#ML(3s&-tnT+q>^>%O4K=4VMLqyPHt^(-FSB)ae39*=-T|G7Lo{{HprcgLqgz8v{Od3d}zef@fqo!f>T|AYIo zsPBHA{=r!3gQGXuVeU`ZzL*=6P4As1y=p$acgfNl{mnCRX6t_rm&<4U3;)F_Ci_Ea z9Etl*U2(oMe^Y>uJY9EUc>v$M%X~C_`2LbGE&L0~nAp?LiVJg)e%*=UqskYb)lT_w tW5s7ySMp2qxl`ST6y+(ZKV?XK)NLg@?qh4J&pJsmO7Ur>{~shc5fayg9xDI< diff --git a/public/docs/api/qiskit/dev/objects.inv b/public/docs/api/qiskit/dev/objects.inv index ae017b3b7853e74e2d791387ef199ab2fd8bc253..5f9cf13fe279751a78c48257e24c8063a60039ce 100644 GIT binary patch literal 62291 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

Dt=Mc=5PUK$ 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

Yr!9 z_O_1C7!73jDXiZolijD$Zj*Hpu{7jUFDs?3BB1l*9)DRWZ51J%AAeYO(Yh)FuElZB zm#mbwijmIcN8m@p~#k?5+;FE)PYPi?{HrQu8`%$F0cyRd-7&-&h^teL$rLj&~?G!$1y8Dm^gH z;Uf8y$Fig8zPFo)dD2KyQ-E=6^p%UvHs|Yku?x7Lx>y}`_$t&Le}E0$Dj{F8<5L; zrJGr;L#{Ew8HxyB*R1L)zx=c8E5Ec1pzYUbcs#o~Y+svhki>e7#I}9Z*-|$gIy89G znZx1yVh4z^tj=0>CEi6=u&D0of5zlgmCHO?%5LwbcR)@!fN_b}6F@K5Df@108YdjU zxWw0Ng9`VcM7>L}KL9AIY|24_PA^fCFJGc$wO#JyJ*IWm7bwjG3!3ux16l!HG@DUm z>mX0(pg`J7{XOn-XZ(hZ%D`Zxi?w?y6eQ@p2L!Si42j5K?(7 zvOL+OY==pAZ~#M!XY%{jyZNvC2=Sid2i( z3y;v1{`I$$(_ixXgG)8NJtv5ll%GUkhim?|M|4^f zExOQ2IU!UnSMr=z*QKgjSN-d6C$kD5^-h{A*CD}aCa+CTm9jprlH05qdzvW^2dPc01$!vu>O>Rdxu8W4HI&~lTcu)8w0LhzPF}mqsv?sV@}cu-`Ovv* c1@f4!KeCla@6RpKN%u6gI)Z2a55e!ez%LM!3jhEB literal 75655 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 delta 24 fcmdn>o^jWE#tlZyoa~~EYD_Fy!Wo;bnd?gcX$1#W diff --git a/public/docs/images/api/qiskit/dev/circuit_library-6_01.avif b/public/docs/images/api/qiskit/dev/circuit_library-6_01.avif index 7fa4caac0741babd6a3c6f49f169618c578a4531..bbe409ec6b18d2616ba8db06e6fbb74715a4ccab 100644 GIT binary patch literal 81212 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

!C3_ql+vGd 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 V5L?u=4Q0n*a;nctp1yeVzW^v%WgP$j literal 81450 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 z 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 L4@&MmdGY@Nk1mA= diff --git a/public/docs/images/api/qiskit/dev/circuit_random-1.avif b/public/docs/images/api/qiskit/dev/circuit_random-1.avif index d815592eb331d58024d87404889f997b5f36daae..7db53c354f2127868c2eac7a29dc04220bd7e264 100644 GIT binary patch literal 7438 zcmd^^XEa=IoX4*cq7%I**&2FY9#6q62u6CB%_SpB}$ahJCVeQ z9?U3XZ}yzsb9T?Z*nP2YcFkd&JJ)@ld!Og`{eHeb&kXf7DM(pJ0RW)TdZY#c06Y)y z_syF`;7`>_iBRzEw!#06%Xtk_R5#w5fa}=mH_}juK)KNFFH7l8vxi8wA7SMLKb$H!ylV$br2mS50g`p z2NRl5cT-qB$FEpV>^aKTj;pZWt+jV6m_H00Yk2AOV@5H5LFo9iQ+Q4N=FHHT{^y0t zTCRJA3;p8bwK4dV=E}-Udm|&*UZ&z^3XzdQ#@G9HBUbxX$KeI*_M@#Uhym@&sqKeq zY7C=RX#A8EcmTNv7Z;vL&9fB3u6iD>TR?AN$|K2v+Q3P@C31sXyhQP zMkT{LTJQm;?fo>yk~U)D5l#}hmUL7F?MWyb(H&QWtfv7o#VDY&ud$tRkpkUn^R+!O z2d2+0Ajz!cn5(sX(*{qi>nad(mH)y$0wj4`~*WAEscvCf3+lFDvzOEBaoC?iY`y^z?N4q>y=slspAb&jpUM8F#3~$2~&D`I3L2d2m_^3JOTx z!{xpQJ5d6-vSaD2u-ab96%JB5wkT3yO>9?;E_bGJ@idWw*LSsjk4dh_2L0j061-@0 z$RXDU+xF*|ml3Gx>F%#zNri-j4$jUrpFFvZkB`3~j}71YO7FSS#yp%WsOstpN7=j) zdTIe1#~%M|2->wOuc%P2oLXN`=G0J8!HG@YN!Pgf@(WMz znLB%7Hz~+w6*!t9owU*ThD01At|JG4e{%YxpW+^=g>_5O# zb-TDT)p!X6OQz~qs=B-L1?{h-BayN|Ol_^;<>lqt{yvq9i;FA5>Q!zomy{G^e}BJW zl?mqiO9NlbfqffhBXxW`@VxZ&;GhdVUCoTb-{5z~cXDz{Nl#a|uwcqylfh3^!2>Ls zeeYaeUEy`T?U8LNWr;R0KUu)hDt0;=*+)uX3H3WZvKO9fbddrzKrtnDwJ2%opgSKK zE>UzztYzcOKRP-(*AXe#aj_={#8g-FJC7D74h=n$mX&R6N!PCEd83-_`{$Pt+=Q>~ zaDX-Ii=(TjXF_r^@k+$8UPx%D*0KbeD9TJCRu3lm=IvYjXV0FUml6TsjU^-|;?>vG zuYeEfmu|FS?OCKVv(T2A_Oc$(g^0e4*&J4idAB~hog%xoH)d{gzo*HdEpcIo9+Kz& zuzGr zbH+URt$oG~fx*?OIB`n?v$E)~f3|dbX!3@c;v*EAd=mJ4#|=;<6?m zZ*R%wGCMD?+WA!%M=Lg>?Kj!kx9AucxFjVTr)6u+Qq$7NKq{o%WbQhGBcEb)GKtCJ(?=RWrn2VODjNIg9-y9g6Q!x-TX3_c*@F(WWi zAXce!;U!aGVQozo92`8f4 ze6SSoVk9fI*`V`p+^Q9_{Jds%j*M2U01^IFj}O?tu<0>QVl zTYXKhfEJE9DbB;~ZHKaB*FWV4&0Ymrtqzv#^$z+(J7%x?1*^-Xb}3*eJonK_2UfTBvm`p>#}8+64tXXr27zCbiu=zbgbU}`0*n(JG)n7hc!!%_6<%>&Z^;G)XBm3 zVzxGxmLxgaPSh**_V(}(A2e)jUt^z34qxS!cYb+k%IHzw7{h9ulb5$S$Qe!O8;(&G z%42Q!vR2;R+DeRx0j`?5*c2ly&_WQY!y#lcxPAmQ?C7*D9abI$3NX)%{uwpjNWM262R43H~sO+`1(~l9$MUh zKu<{BJ`wY9YkZEVt2lPT?c5=e$dM$~+L>v5T5V8wQHbVvv96-6zUMB|t< zGBTJXJ@e<$?bj=@?bmE&@*^`Pr*lJ2H?f(#a+L1;{BwN7Pf)2ga?fV1{R0B<9x5qy ziVYA#Q*$F5<%ypq+Ar(y@$(xQ8jib1on-%`Q}4H_K}S#jrly8`XQo#5@#7*RUPe8q z?vWVVR*b(xC+9>47bGziqE&bE{j$n$SWU5@G3DBej#p~*dExuOW z)ixxEsjTD$4s^n9^xJ3IX1{oWS9;PfQrC%-{W?7Sz#VlDl==~v6ctR;OVq>5A#O=T z21UjjCFyNtZQhRg{wVdFq2R&wk#vMhn(B{Jg65CH6u_E%#Lc)UCHl_P^n~JSKUKpY z^^q4r;t~?dRVG0Tjo`$gP^gAofwa$xd|zMRlP=&mefZ_JNKLp_xV@K$N2=FiBeOys zvZ*HeJ~@>zR_W#btWW)|Z)1oeol)!Nj05$#XvGSuo$Zpk#NH>v(&wG9hMz*fZFzY% zu&$V71K~#IJS@jlF#?QWxqUg>8h$giP0hg}1ikN7C>kYV8{uF6nnC+)BQAmr7n#;vwe^pJSLyv_)LMC%cOD1{z zmFRhg!9q9*!E>g_>ZLg07S;X zvm+nS5z32{;I4`+=5Y1lW<%P6K z-W2hXKic+yT+0e*hlRT>Sp?UH_M%A#_IVZp-`ke6MnHl*=Z%#>Ob)i74V83+?;DmX;oyn3-{ji<_X2 zM&m%3b_N59@Al+B<>lpTlNCDmgoULne7w9UK+#V~NO*!qRUQ2KBW_UwgQYgDMzMl~ zYJqU4AIM-=uJ>kFqGkC`sP}ql(Dflrs8OYoC>O>Kc6jjYzO4TT;lwsquuuI8iv| zbwY_0ua=E%XX%7%)~i7E=PgAizACEZ1UEjF3(uXT}G$ePO}s`_|SvSeSot z!_tyjzgRYLWJDK40pc%TzJT5y3xl!Fe6S${fvKw1nStDc_8vdKs;8$wPfw5U_aPc^ z+CW!NBH22~qku}{$!j0~gAvxjHxp>`+*t|N`pr}w%nytNn?YJ!XJ#3yf<-W56GHxs zy!*^UsXN`y-`>NAcs4w#hg;kbJ$Zg3T_YaUoON(~;IH&MY)@8zqHR&#NJ&Y_B;ih{ zkc+HgBIyt&1@W+XRQ71V6w2Z)Ux?#bm^=RbG#oJd+9UwE6>!{?2Z(+ z993~b_OCqpS}s`V$0&@L6*jgX=IZ5@uJw|q`^y&+FfJsRRo?*QahT03J~&>6B}@$h zxdnzkYC1a9k1!A-uUI`+J0kPtLq%U{JHa&RA&WSy(nQU~oA??cpr|#1c3TO$Z&m?; zx7x;bzqnH$K>Ks*p`9OS+H5lZga9=wYwFybMOhqD-P>EJ(R-P+){M-0ad9y3;&gW> zI2g0}0!o$h>Q!ldJ#|AvLoEoSRv_^(=?eNoq5aS4`3U0O=Z&R!w= zvTWzXyd3nCvGaD9wL@UIv8%iL-b@hhwICi9F7%(L(b$_!{?84gBw5u5$GG>ajmNLT zKF>_cl9Gl+RnP1h&dzK{3kf}FoA&V2dhouQ&StqnOI!k>h_^gG9#bqAjNhz4$3#mz zRS~%oDLOGaN>SH#L@MdEkN_6&@0E5|;r2fe7&Pz%ad>(eX>U*Ix z6a46CcXbn>`YGhYN=HXH-C;1YaK?aMko~<-LJDAT$@_R+YYmgOh4xvWT)w^ius5c3 z0Iufa_Aq*Ynwi<{Pn0aFJ5Y~6^s7=SBz*twSfmuqar|RcY)?o==!N>3dHsU@?%Yz6^G`dWS*E_^pD1f}50-NeF~=ncljCLIbWsq~_|_(!vs< z!1YwAi^1-4o8}WS)PU|?QGdM*?Ss>t&@4HbQk(|;*Kb>E*FQe=*Zx+i8s2$HO6GHI z8yOLiCL8MF3F2N!2`5n6&_Dxbauqh_GrC@69_VFnOG^RpDN9;>m~b6Op%UJ`;{k&z zYIe34?1BUZ1wry^&VG=+VUi!`U=1o#jcQnLGBse9y18E)2HfFJ=ZyYL$jr&Zz1iys zh8**VhzJoV+Ju}Y22q6H&waY13U;K-nA0Ire#erJ2j z7HuI7xCWIse3k}r()oS3+ zvq+!cnF3RN&uIOwug-$QJWx38B4y2P0lN-1(6H9m*CBZ-cgcyM7yo^J3Aw>d((jk= zv{XL`LD%2ab~@WTt(nHr1-1x0D|SBRw(V~y&3y$rkT61G!-ND(6`|1 zG&D5J3wvfcEUdJr_<(JgBOk6!ju{Y<3d?Y83P-4cy|n*@p5~qd3kyqq$l+5A2Gcb^ z&usiow>y!Hv0NxsU>povhhUoSSy|yI)65(I8wwRdRf{WOJAzB$`|b6OjT#V0Hfrk+ zX%duk3RHM7e-hf$kdSa~Af5Fu?Ys`zAQ2ZAe`I6U zL`X!m0X9jxFo&BJLKU+hC^Lb5iZ<*I7^rBm>FE?^H5RcT$Nc?MaIqQ6kw_N1=qri8 zGXR}m{&+;pH!x7m%Bm1m0UhSV9T4lnBq<1p$g_~IY3XB*Tg1j4Vy?j=TXI8A zP1iNND^e^S@$!pHCGqhDU`vl87X(k`s^3>WwC1y@br@<22&_F1!1QH$o%YWgJ!7WI zh|kF}t($eJVw#D}(kKI=j|?=QRIrI;j`klSjJu3HJVS}Ox_XLQMBU-98y&<`CALpF z>k2w!WMWEr{+tx-#-Wo{M8(7!9KU4S?x#*F*Mn0-EGXgm0^+Ax8z#wh$Xu0 zvlQJxx`Ef#X+C}Wv@<&XjQ+z|M!py{+sJG8yXZ&>J;@HGZMdeUrkc9CeQy#4c;?{V za;uT4>E909r$0X@hzEP8mZ#y3FZWo}S1DL0?O~u=fKs7aJWmuj)Wpfxh^J{{?e$*HLZ*9k6gH?S#1EeS+E zVB{~>uY8HT$t9YBY^1bS!rH+-&(-p+0w60Nk?EM*D zCT3noZ@+n}(41e)3%!rh<4&gP$24$T3zkS7-;th6g&L)#BP3p@Jx6^zcYP38&&$=T zS}yeME%;mtxOu<5ZD=5Q%`s5CbZ1!nVx7b{xJAt1JT@y_X2#$s%8XAyK*PwGOwVr?h-}xWPPDRF zto=DA%-28dp?;HNovI+6!rSx^|K^L)!Xp4z7(pncPnjPPT|Zv;^JX+B`59{(KUO`& zQ3XD~TB2Ri-hUmiMxr6+?&;Z=#w?bVo0|mI{m#Bq){7Uh;PQax`FSdG={>~3p~tqW zRRvX96Lsh&Eq8*up{xMr3b6$wlz(z^vOeqtZI%~vhLCxq=4d7VQL+qd_o!4r-oWAT z#bDx{J&~c;1osW;b2hM*obfQ40N-clv@}V|0EbJ|GwA!A31aF8qbGd(T2ckR1W;_qD-K=MWC^db6~K&zZ0NmAL#4p z6X@yo^mdSwe}J2hx0sNOkhs8Y*T6vE09j#SuYW&5$j9GBm?LY&6}$+brLM2`LFGx@ FzW__o#WMf^ delta 7487 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 HX1)IdmQb5; diff --git a/public/docs/images/api/qiskit/dev/circuit_random-3.avif b/public/docs/images/api/qiskit/dev/circuit_random-3.avif index 49e2a56dc793b2f08b5df03e4937e3b2a4e3036d..ba971d143d4415976e5b3d365322008eeaffc645 100644 GIT binary patch literal 5917 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 H+CTXZ=aN4$ literal 5989 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 o diff --git a/public/docs/images/api/qiskit/dev/providers_fake_provider-1_01.avif b/public/docs/images/api/qiskit/dev/providers_fake_provider-1_01.avif index a0d0d5fb3c46114eaf08327ffab4560c9f939528..b473488b37c064d21a56af95e2dd3a9b5248ae72 100644 GIT binary patch literal 17696 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

Hma_g$zcadi_bYFBlmw5 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 literal 17490 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 DnFx4s diff --git a/public/docs/images/api/qiskit/dev/providers_fake_provider-1_02.avif b/public/docs/images/api/qiskit/dev/providers_fake_provider-1_02.avif index 64118d1d4b2f4500829dc641448ae06cc8487ca8..187c2aa5126dab1dabe16593f6ee5b1e68fc884e 100644 GIT binary patch delta 3991 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 literal 4830 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 delta 22 dcmdnOzlDE;Dl;d$D5I)+iu05=oAsF6SO7?#24(;N diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-ControlledGate-2.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-ControlledGate-2.avif index 4c071d51032d9221185d8663ee9987e7f3dc1e73..6b0a5a082047d8da2f52babf343a385e88886099 100644 GIT binary patch literal 7177 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 diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-Parameter-1_00.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-Parameter-1_00.avif index 1a90d1f4079a942454d1361e648b1632450b4fcb..d6ba27789b3e1ed8b7fb2321f757356d3f28d493 100644 GIT binary patch delta 22 ecmbQlIf-*aFcT*SH>0ZTgqy#VH^(rUF#!NbqXudK delta 22 dcmbQlIf-*aFcT-cD5I)+iu05=n`4;Fm;gm91|9$a diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-15_00.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-15_00.avif index 4c4d74562b79e1c67dda6da746428dbc35dfc214..aba5eb199812b70dfd3d77e68e3cbc6226f703c9 100644 GIT binary patch delta 22 ecmcb?e}jKRA~PokH>0ZTgqy#VH)k>Du>b&8x(8YS delta 22 dcmcb?e}jKRA~PquD5I)+iu05=o3ohnSO8N(2Mz!L diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-15_01.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-15_01.avif index b68928583feb31a986cf4d63efa1d25ab10022a5..726212ee68c17b828cfb6fc9cb40df5dd54605c2 100644 GIT binary patch delta 22 ecmcb@e}#WT95W{eH>0ZTgqy#VH>We_vH$>8(FaQa delta 22 dcmcb@e}#WT95W}oD5I)+iu05=o70(dSpZU52LAv6 diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-16_00.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-16_00.avif index bf10ebddfa66d9a7f900e8d4a200d80d6cc91116..93d9bcd54dfd3cf51317f953c8568f2430f0abd8 100644 GIT binary patch delta 22 dcmeC;@8aL!z|6_P&8R9n;pQ*p&7RDTEC5E|22TJ0 delta 22 dcmeC;@8aL!z|6@m%BZTI;ymTeW>02E763zM1_J;9 diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-16_01.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-16_01.avif index 55d3b0eeb5ef37cb2287ea5f529f4e0e159f07ec..6daf6cdcb88e98244c10b9e6c9846798f0caa5df 100644 GIT binary patch delta 22 ecmZ1`uuNb>88asbH>0ZTgqy#VH`g;SX8{0E*#}zy delta 22 ecmZ1`uuNb>88aulD5I)+iu05=o9mgEvj6~1VFwQY diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-31.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-QuantumCircuit-31.avif index 3f688d615d784d90f294ea7fa6792c14b5dfd256..d869f7fdb83e8938879e5a310a4664d1bd0d4fb2 100644 GIT binary patch delta 22 ecmZqWYvtQ;mx+^un^9GE!p&dGo1Zbsvj6~6ZwFZb delta 22 dcmZqWYvtQ;mx+^Ilu=bZ#d*q`&Ci(RSpZJ=2MquK diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-library-AndGate-1.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-library-AndGate-1.avif index fca0f11c0f5b29b150c7aa7451a7c260927a8c72..f8a6f41a8c77ff4d092ecb996ebb07cda575639c 100644 GIT binary patch literal 24938 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

05@=5F^ov_FPji712Gw&z}j&EO_*d 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 Zkal&qlMxK-wMVBlMqTFu@!ZwB{|o3NjEDdL diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-library-BitwiseXorGate-1.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-library-BitwiseXorGate-1.avif index af2b1757ffa71307fd9ca803bdce33a4235edc6d..eb7a234c731747de9a78550779d3af99f8716639 100644 GIT binary patch literal 23413 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 literal 23378 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 literal 20014 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 NxvFv{_tLHV{~ss&;pYGV literal 24912 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 diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-library-OrGate-2.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-library-OrGate-2.avif index ee69bf3dd5ac62d46024f832d7545778c3e5c40c..ee143ff7606117a6d9891f3e7a737a7752fedec3 100644 GIT binary patch literal 21720 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 DTe`Dl literal 21940 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 diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-library-PermutationGate-2.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-library-PermutationGate-2.avif index 40b831e89c577c621a0ae24bd89e4b6bfc475c7b..4a2fc5cd9de1ea177a9f369e6220309e57f022ed 100644 GIT binary patch literal 20886 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

Lvi+iNalhuw2vNeHelV z28S1HZM`E0yh6oSlo{c_wN@3;2PmT!Re} z?WMa@x)G0u-hb&+QxnH!8f+wD2D*dsBy{0IryoZH3}sn3S0Qi;=bzG_B!lgnp;&)YsdZ-KcD|aO2JbAJsAHW`*O;rtz+VAU7 zt@j~_q8DiZ-c z5Rr}St*@^ym=}JEV5-4eDl=`N%p(K@#^FSbimu?6KCtpW00qu$Qrt{Ig#Y7^&5gML zaMuh#8^>UmXR-k=)Nn^djFOStDk~$$_F|=+5;I3Hq0SG&)Tn-$ojwwexNbmtL}NqL zmElW&+%tay6<-Yp`obWK3{ZIwjTb{7n%i;uOG7> zFoFI?DLl;ZBJyb}0L0mN6&~tmX?;*tRTXlUN1Dd9U?MDvNyy3$A#GGia6B2lU|5tR zFXon+;5o{{VFP&;U$#F$5+2_k`oL49O*rsq1W*ok{$Q0`CKL=qW3c&cdL9}_Ny1!# zJ$OY1Ky{H4(kz%{MDSrC7X-6A50(UJ5L8uF8K|nZNcUAiGbIEI62L}HUA+v5#odjS z@o=OZ0F@I#_rgg_m_)zAfe(Ny2zBbCIH*A2K+xnvNiFhi;1D%QvkchK$LSHU7_iYb zLyn5-00Q!p;V4N2Kae>J;`Ia2VOk~o;yul$Oso;P24;{ft+GMh;r8uhe%Mb8c6Blu zvox)}%4FIBZ9|Tb00x*(JH&(kZQ(u14#kpexy6h|YVYiD6*8Cyp^5YL^FzE~fHsM_gJSaJ?AF%7I4xhkR|An$G>CX&sF2r7_28^8brdr6wa z#sIYKz?-xN?eN(?nnhvps|4gnEX4H`j|VVp>TkqGXfTwqbl~kCBa=^_KK-YSx|6ov zUiS6Xt3MHuD`C^-uIU4ZdV$#?q6;`+6hGqEKOIbzovYD>gG?Rpe|W^t^)ZvyWYW^o zvK&d(xHQ|Y4Diq!fWQ4nB+EZ!v_Jb08fbto#}S z(w0<1FJ}pSzu=fJmLQEIrK@rD6k3h~xPFROJChH^D0)4X%Se_z#spL@g#>4#G`AUjT=^j9+=Rtu71oeQvH0$`HtTBF&-E zd&iC)zrZX&4ixV36NqzvZOC%d)lw=PN1SwRCQr<;q27KP9aS9Nza%#CZaZARa(!L` zdfESN|0}@%C;H_7{*eEwiGzQyHlqOJBPv1U?Vr12`J#w z?#f2)x=z;ao_AcWQ0jNwogX^6KeWAj(!wCe;36orvc~m-Yq$UY-vCapM;`zH literal 20975 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 MMdL=U^50MXFVE_#XaE2J diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-library-PhaseEstimation-1.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-library-PhaseEstimation-1.avif index d28017afa11fde8e28f5e9ad509d82e9795fe243..9b00d3b71a7554a5e976ca6dddbcd5711addeb7d 100644 GIT binary patch literal 14681 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 U^rZhf+yv25)4Nc3?((hw0c7NU(f|Me literal 14823 zcmeHtcT`jBw(kNFY>0}8QY}aouz&~>uu%fin<7PIOH-tV5)y(HMFEWzkt)4o0VzU) z6$PXt3R09Fsz3-N1m0Zkea?CJjC;qp?~d{Qxnqy5$X+RHt#8fwYxBEfY^cM#PG}v1 zAiP-JQ>F;Q3BRsF)^Ni=rhL7I@Xt<1T~h-D!Al}Y$PENx!l9561i|e`5ZZYJQG0|S zf}RN#ChG74_XT~OQ^*SXUrJThLpZY5Q}?V7f^2|q+F-~*^1rtSK~%S4PaQW8=$z;d zB$(5yR(|#Dew^RL0XKD=3x4JP`{3UT^1rwk7V&r_ zL?XKJoP?BA(U-bF+?oed*J>~r0%G-)Pg1ezPQFbfhICh9LRl@)u1ZsZBSiA`r%w+z zisiDslf;gM$o0TG1SSgDQ(2i221vHbLrDX2|5H8gkU9>I5WLyhvoeZ`ibi~^5aU&s zIjdFW&pbVrlau4tni>8fTsZ5cdzb94UB?xvOV2BCW0~hXsx16_iKTv1Jq7a|b zXRltpnj|)VaroU6f+&j?at&`&VA)+bGv|qHe2vEzPEQU|ZiY!4u^%__;?Q7kW=2-1&!+`0q&@%a z3+?#B?k%@?g?*P6yuw9PO-DyZtxMdZB@Gj#;g&BtIk`0?sMa<%cJx#Q;rhc>WOwgA zfqn#Tv@O>{?sF36mEDI~%lTmU`o{LjpSz8W45~V31}>@L1|CV|{QM)wZ^i4I$ zVfXIcYf;$MHf4QN*~6=W)!SU2XH(Eci+?DU+a2@Z!ILMiUneC!R||ZzVqHRC=V`A& z7`R=58_$0z%b06I2z55p*R($35W_4|+$O7^<>N~r8Kz-K+S<3SDNY9|?A&>bhfge@ z-oFLOcKUE{hn}vk@%i&9xA?>h7iWj%pi1~9Pv0+^id#8&^412E3l~z+m;5F=WiS}q zDm*>6*)U|78HvXajjIuP_wUTaLo3TB1&v`HOY@;=28pKCE zew-U4e~$JfR4n(GH;xy9VX);Hjr;0gA7$fgc-o!;k&9;YamO zl%cOLY(pO3mjBb4$zGy1Kg7w+PaPaD@0+KRti-O4$$Yy%G{5?N;{fwD!EcShPudhzwh7 zOSgY-!NNj7w_le#lw1_&s#Rk|ks|Sr=GH$)DvT03R=l~^|wL`8^j;Zfg_hX z3N7^X!hW}~TTf;AWcjezUoFggFsbx8*P zYIC0q6V<)VKNq>>6*}^`uJpc?W=yS^P702;iv=}ZlW>n?Sf^3MIRD4(f9~bw<~@<> zscmg-c;QCT#87IjVY%waiF!OQWK)mXKdq=J|yq67RRMI1(_o1bA= z?G#d(Mxcx9^@#ZYAxNaArYc={cYD1?aF$`Bxv8n?V1)s@(BjPOwi2;R(Ac-Qd4lk@ z3g33GIIN>^+Ub}nb*pF-iOa;!5wpRI6=O*&ZAq@H0lgIXec0T2*ZtS8e(8~RrF7#1 zqY&zh|3%spYjJu6NQI@m;Q2XO(>^dT5XCqGv2iJO z$H6~tZ{g=hUn;rOVF)k{u4mm1fPFdrrz~nwX~5$bXWHg1fHh7AmUV=xtow0uXdb8J=)OOa`%%5;XU8XBy7W%I1oj%r2Mg&`Pb#zwyx#T4@`gbgrSM>T7 zJoex4C1;OL^y0iE*4aLc00he57`W)Hz1a&3`N-AH=4s(LU4IaZaEpC1()8=Do%QGH!+W*u(# z(MU~hg;nFL{zN!aGqd(g1L1IC6+`!~mljY#cEO7mabsT$N_+5mlN8pKiJq!+6J4cN zz@+~IxzonN<<_O`0CQvI*+-0wctdWf81#J`Zwj6kT|y?b{Quxwb^x&qr*mi-^XA4^-2H zk(G6+J=fy#5wFzB%F3v?xExiVA!$ub`yj?-d$>wZ_U+qi*n^6s=0e+7ZLn&X>FQO( zgeAj7wVd?y^jcgz(>CwvkbFbn%274{=sesxqR-5!lCFaX4=O1g`Pypc_i5WApV_p) zwAy2}q4FOaW+zj{7uc*wB&+g-3^mZq(LM>9$@Y19@b&iBtd(HR!1Hz5+S(shuk>I5w7-l^ksS>C-1YL&F#ed7CohyMl_Ao}N!7 zjgs;)LGvzeZmbOp3u`I!>Q^EyFU@K!moKL!C8@qLv|qIW?Kzz(Jc?kz&9Yx@`+%>1 zJsQ6Ckm^(PW!dwA-fSbmbhvBxG5?0eXTb+%gObEL_nyPdaR>mT)R(G!Qg$X2IN8xJ z2O`7gmmC}%WWUapf&_pIt$%dj-ex6m4U2cAU+nbx~aVu;_N8Ops8}ptk_4A~ZQ8&SEvsK9nsfx+0hhdE2 z><-aA0*h(qFqnLNG}WIt=5|bKG?* zPvc%H2I~)I>0vPGa@%~mk34d2TOE&hV!z~{O-oOgz>*^)BbSzziamdvsG5GW9;zac zE<#FdNn)qXQ>j{sw`v0LN34{FD!leLX0PW&Vh2W=)4WA=%FD|;pE_LEV2`a=IA3!NJ_dbE&K|LjI`<~w1u+4HD5%vJ(*0_79aa9v%62k zd3ca7HApOSG3DGpiDM49$A*LTS@Ow1;!K5Sb3XPMK(|5Y>wY6f67hYCFtDhLk*7DEgoQj~kuSzX>>|nwMTg40+Hgrl z<^;|V{DY*VLcjoCQ8jZ|PC6JcMDRG0V)w45MovSc=eKs;bd-bhzfMnVjxo9l3)+e2 z{9KDDjC*+~6|ZWX(#Ejm~-;qjvD*E+tOu}4=eV(wNj zSQV2uSrXWuV2U?J9eaHnJcDa#`0N!&f44p}tXt2o`l|+o<;1dE8l)l#naKx7+nky5 zw4?o&sN&aX^=NK?o0_*Y&Oc&5s0s}p=S+>c8Wt#hoGt#!tosA6Lz1vd5|NYLzOO9$ ziuGdIwLPzbe3KLfxsYj5)B=u2O64-5;@cgLmA#P+zYhz4^Bvuknk<>iXlr&8Y;9%N zM^2o~{xgn7=<6GX6#A0mjDWoV^kA51%x%6+uy~5otq-bc@yzs_VETl`w zJUuBqvD_U*^FEm{pnDv1G>5L7n76!?ID9@y*eOX)PPVw;Dv#bSES`%C5F9GMI`plp z!>VefUveU7xK%s3zfPcr1EHjKeLdc(w!$C}EN7IhTrW`b+Hap_6g869OWKL8aQaDi z-nQ`NN90|Gn5muhtr_Z)byZe`JGG?5tca6LS>m8tqDC;S(s7AtlvClOck=UQSMxq-kXB+`B|(c`w+e8oiALgRsT5ws_8abp3N zg+VSsR;2M|{hW&~K>{S7Q&0~Nj8dov$sPLSh^a=e-jyy*5(Dayne0rp{ET}$qcca( zjcoUF**g3E*ev0XSxp@L6*%n5CAT8<(+1gpy+5-ml=`uF7W zm+~>2=jA@bZqVhl@8vJRj^@T4a>nCzk&wH6{D=*iSNO0rxN>k_50jIVL4T-Y(uLO2 z0!s>meo)*(<+Rurl7x9??^W#lH|VRZs#3o2ZjBM&SZdh3n5njRZdRz*d&hshIYJC0 zTjLcKAD;*37-5bTQTKsQ&36=sv%Y(GDqLLC?$@thw9b-C;W48?<$8L0Ld5*PECSZ_ zJnJycZ*0>d*Mc0$D%0?fL1kuu0uLzvbsIMp(!HIB9|soh_!FGsD?&mLQT2eQU+TQ1 z&$r#JtW^ITcSt7^Gyh18FnxS4Kxu81Op=(TfXLyJ`6H*?`=L#ELOBb=i~tW?T3gY~ zXnNYSYGs*~B(@Rh+r0*9y9@62eN9aeemfE(bV2Iae{|gQ93ea8D~cI&n-q@X5)b_e zwyy~m?>i6?cAC2fl*|E zL`6kq>qLsF5f+|i*-I&;oPFUWD=!b!4kjVnu_mInzCPcJt4$WEt*!N4n0637;(6@& z@#9Is1xG^1$1l?-x?&k?kPR}jvZgLB+3+SINu*)jx^))@TTVgNhy97+L~OPThoOrN zYh9hf%^L!-7lz(u7Iyo#vAKDajY6zb{i7#vF4wM??vK?2y{j~OpI@vi{^QdYtf{s2 z;~xB2!E6tsq{HqZ7=)gHeqIJ{iozS1WwE9B{I5)M`O*3XvKWT3?Ruc zSiO2R8bEfwbeF5~nj6+!ISWUG_MZ;{SJPN-6Bt-dAYRfehSsbg8S3ksLF6%6)*mt3 zLp@h|<*|xK5-8byB+|;Qgmp*=kHp@+ImN~1_Q8u8*2OMQh^%?n@vqNh<>XqwK63;C zFPD*#fhAiO*%e?PO3Fw{>5!FBb)TLdz}&0!h?~W=bI+cWBxY-JF=5fW#J$UsJTN$z z(d9w41+i@I=9UXLk$yQzBy zrA?Yn> z!`45Cw6fe;?vv#={`CouIN|As#_lI4dC>5Bk4}U+6cD6@emyJ=_FSuVWx%tbsl^ur z0-^ZA`*q+X4PN<8m;$KMTl5vnJ$hd_M`ju&7m6PBa{*CT@#B`TlK-U5#P@QuRoojq zb!x)|utG{M_m^j4sk&r{gNkuumJFhttgJew9YL@V*2^j=_>qLV%YB@yW*d%9b`{MT zAiUcUHj{3K$5+hE&gQjultXz`YKIol>GXo z^TrKnX=zqcZj6Ef@;28Dt749-x> zC@IR^D5oY28PKB~rwE4xMM>FW#d^ZWE9B2@Ru@8uTr zs~#P^7-pEHo&%GJOMn(ahcBN=9O`R0It7s)Svx``=j+!qa+gyW|mX;eJ-@5hdRqHSFM@L6zG&LFb z>_HYHYHRgACmyvD4_UZkfKM*Ch)biu2RLR&B%6BbMy43 zrY0d#6Gpz8JLj4|877haH5ur~bJsZ68W;le3L!=qdK7f9`7kUg>B$hR^v^Z;FYWkCs5EV6`L03Q!dJgm&t@~9e%d;9XiX<`9D%U1t zyQ=pe(b3QnW6A;3eQq6?nU8yvliIS9@VRf}qM<>d5X zAY@Gqu0jWEn>O{?IRV<>XFf@lc=c<$_fl*j687$WdHLHxY)g$eDZjW_3Bc(%ISQ^E zo`MTwvRlo2;5N*e21f%|BR0D-PsgPKngb_(Cb}`@j$fbR3h+BrJ)BG`Jbs-Ut2XeJ0U@Y{ezE`y#?{8 zqQ`6$RU23~@5_fTJ3d8Sp==b_*f-iM&Pql}7-Rz;--94lW&BcxBf!j)btqih*d%0y zT6oZWccyes&(5|2)nvg~#T4=faymQ~0YSkrfNfCY_R%aIEiIH$p;;eUzr37t0Z`$_vG>JAR9|DBWaCL4j7E$xn-2&Zm#?;2f zX6&LHT|NY4RSx|9t?4ekUk%dFM}rI5p9zl$)qDW4W@)Sr8b9LU;Q?h#tG>F5@IL=e zZ9{`4sHZ?^<@>3ryWuKoyIu{Qn;$D)yHi^FcC=jvwCK+<$2G{2VRWme2 zGfdVfKpj+5%5m>y(!VTk4(o(;;_47aOpkhw`+)HVBc>};* z{L-(QZUzfTnf{tb9Bn08Y3ZifM$MvgSIV_YyZz#WXC5Y_Z*I*pij|o7_Cm)j%dkDx zJ~)R*EZ~?X>szBbrU(geVZ*x?_#Smw{qxZ?=R8&4y*{vUo_im2FF4n znp1;Xj*E-Kk7mUB&VE+ua8XrMESl}v1|YKht)@l?60N_!2*PANG6ZQ#LGzbyhK9mC z8(LPABY-tgN*}XdvF6iUdio(!ya+JD4y8tYo< zAfuKZt!H$>AO(Z*fLs55hhNHf{ObY6V6>bS$dU#K#8r5g*H#aFdI)%y0-c%d(Mv%Y zUMXPuJbkJcMN%QKlB^;Y@Ur=X2M@^US6A`4&5bnIe*SC$Qpu??Ngm6LTv^})Y?Rr% zSBuf@pA40$jtPY`HUVxaIlSS5{RbbtMCjw+%!;VX6==u1;S@rk=1Z=0Ti?8SlNTRV z4k==}jRHeYTsihPX*O|_A`!$u$M#F3$l6UX(iI{~RX+{@O`(o~@k*f!0b28~JxT4Z z{Kx$KUb2c`xL5-WN!$Ux+9#u+P)I*m!rWF3tkm|*Q3qNN&n)@Lxx{8$SXvIjUT2O7B@ZgU~*EPr%jVgZH7`V9|2?dy1Xqf7limyUP98I6rM z$;C?2#%q==&+f(F7Pz)75Q(IG0Lkyf5_%vKe`paPnVdmilg|cu*aA876 z{qpg1BTtsuEI9=QLs03t&5n&QtAmx~RhCCW>P`g*Q-Zod-fR^UQ?R$U7udQLrnmIe z*BiNjQzS?0YdhgZMf;Iu85x<1{)nRrqk;aD-*XN)ei#8K*IH28Ba21*gtWpSb+{}7 zpX$AEZY=b^bsP!7z=n{#=aZ;|C~Z<@1 zzvU!|dMue07|JUw32*@Hfx>%I&?L%STlx9Zb{ujlV?4Dlc6q>@8|^QA>p@w}e3r$J zH0jzA=@uwWw!Y2QG?d@EZJQc70jf+$@nKxtXz`WqPA`#~Z(vV++AXY9&z?OC8`&CC zweBXsN*saTp&k4wE9@z&vxlXmYS^=i!N1lI>u54fN@|u0K`tHvG^F%BqOi+=lzg=# z#U?2GKB?m8vRN}2#`pfEWd_w>q{a(OWg^sxYNPt>Ju_qDKJ>(@fivm-M>i92^>QgQpgD?_OJ|cyM;C9UcoZ z8)hVxeeVOq{HRAZ;{d-q1Cd}7-!8@@i zMoXY-4%PJYQ@uqnEVT!N-mctXlLlfG4Y@R@`c)&+z*oq?psv$BnK&N@4$&+lGt&)d z#=6`)1GWndeUe#?w7mf28jBsl-$~+ z8TM^}7?Uh94BouJy2KQ`CG6J7>|GjCQN~B;hy|W1s+!3iIo8L0sD@O ztn7&;A~nq|8TxtqdUGxEWc#;k23KxVv>UfuhH*sg$B)KdUe6*#R8t+^-Wt6lmDGgl z5ip!8L%y7d&~cc0UT}1TeC)^X3*-#}e=dLa`6+PTXtQW6FF01s)XI_5P13Z{OagrS zV^yC_7&)bZ(a7_k>X}TOaoY`!2A+9RFg?#c2Vx=AKcbcc)B-G%4Uiq$%4ie-7?g|d z`G_Gc{0POh8mN@}a}q$v3T)pl4Gr|@(e`j5Wj(O4W)2Qdwrtsg@){gW)F4^|`MKAR zav@6B)0><8;-*`FsOr27o2#QgKPEbXWp)<4Z-7$L0m}LCO=ND zfA}CFB?NphI&op#@s)6`4&eaZU(hkU3vu$JDp&sRbfnohZbRC=X50UF|{e>X1ng-i498ZVJ7 zh=v*f(L`&!5+Gtz^%-u!0a!vC{q!AedH)SyBn>8Fwo7>Po!q?t@v`^>12&=*l3BOwjGI$8;&`51-{Yi!i5V7Mw;w4 z_&p~(+Y`hqzGqn7v+q~|DznR>ncu}hz}SDJo#d>dTw<$v6iof-rI3;m7;N$iDd`?^ zZpim$gBVJu0-uo6L2XFGeob-W+yhox3}km$Q(fKL`1$di`ufv=?~B(Oag>_NAR<8{ z&%u>75qt07--K;}-JEm~Y&H<7%+Tq;jKmD+S(*L&pMEGh0NXsN3-1-pA$O_~3p&mC z?h}c+Pzb`{0qIjH6d-kDC#Ou9P~^%dgK!0nnG27BoDQ2M818A>;VmcmFzKN8XhZQH zF?EA(_eyz@dYCT6qPrYHt>W?0yqPAH)lE?4FcPqvb0mNym5p7+$@yKAwXl#4q2$Wa zuqNmWaLc|B;@ZxYQ(2FCK{;iDA;7T4U!Y&d`b_!Sys`i1&tjM?GX`Nhr5tGRx1oF; zaB>N(|97uYH0!f{3Gv7c1M8@)u>b6J`epo>~sT8e#!4bk|oCC*?gP_-4X zjWUjAj+w1L#LEok2*IJg6BaDXt_qJb4s-lPqmtu?4Qyryb$+giW{^hYo&HrL-VyIX z$pJG{QS=HV482yaNSEyG<5PmCyLJ1v8VC{+Kz&tMk-=elmvl8U9-&SOPFCVQsK+2e zNkRIP`uzDp+(f4Z8CpQGeS{99XP^)x&6UN*yrq)m38E+zO)k`pF1d#=Yaoijw-L`7 z8{db(r#lvMk0QvH@VlAZhJoUHt%iyM(dqutPr zqAhSy#egTgI}Vpsw1eB+?>_)iDx?+A4Vdvap2| zc4vg$z1s@FmyKXo{vRu&Wo{RPq7e1+FODI&njGcD63O%hJJNS7@9&EbjBILPE8G?YG)4vg;rG zo)1C7^VhD;zp}2YAq`1BVg^P)#uCt%Ptz5svzG*r<>h7C*Jo+KS{Syq7Y8g~KMXz` zA-+7*U-VqRWJxGRf^pTS$roz0wky8iD02P|l}d`?`@=iAN+ek{$q9iT_OM0u75Ac-wOgO@HeRb-3b4G8(~@Vk?z*xlPWqWm8<${ zo$)pEaPswc@VN`f`A1?K|n!3x{83Ix6mOXBE2W{W<{wIn$mk9p(qf*&_P6c z2?3-FQbXtg2?V|sJ?GqW?|sKRzB}Ic+;RUnTODTXguS!&TF>*$XU@5JtEsNU%*e(F zfk2p{441bBpAfj|^=p%3oq zdJd9Dyi9Z{yG<*bwIBJOUkhR6d-{_7lAw(x_UW{qo{>9GyJNpS;f9(MHs-UYSN?*x zaY;&P&d80m*eR50JLPOSyW_cwZ_>{dv9v9*xVr9(zC~%P>t9=$J>k~j(Xo{{#V_Ji zJ#!&s#IcMCd=>hk`lVrZ-=CL|TG)Yvzr9oqdUWc~%fPw6?Em(Gn;g%#QUKTqP{&-7ogq?&9I43M^_jUL_aA}r@k zUvoG2TvP2sH?f)0BX;;pun#Z4kZ9|yu;BZ^=^yx&7wAyI1|HU-Tf!nD$?)=Wu(+K+ z$gI7Kj&($wKZ84GN}sD?Wi#7YSDoR>Vm{2*Tl<^~oUcp%nM25b$HI=9ANZ6ph_kao zod0vx*B1v4sD67|Y%^5qU^`Y_)t&X{{JDDi=uFBinvS1gWj$qIAFa$3jCj=SJ%#3q z4Jw0$6*!__y9k5{{*LBH!UqxpkMi*Hs-WhcxBq~$BU5j}TMH|zd!(0ySZ7Dd)s^3b z3gcB1d8aHb2X_Y1gDZtRd@@?Iw+rj0;&MnoYfd`vg9NT+H#3uo<~xrLnz5zTFIWt2 z?P@#h%{3&v>7_VgryC9*hrKPn>p}<;W1w_s351cu>%QodV8 z3Wef^y12L~E*(l$TyU@O_uO%C@OLoJ($qn@mM#$c%Ve+(a#`n0`5=&-S8OK!Zyggw z)X!tZ>|7#vqi;J@Pc)5Wy*C$UH)T_=bJ;h}r)a;=%Dmw<^ZfT>^uGQ3MePS}iaHJ( zB#1fm^yccs#K&VIWT_8Pr`g&0p@XFk2?aHyUeOcfE|Wh=B<$N$yvnFp0psjfOsp7> zrBVFms1HnAJAG?yhLnp=Mm0X}9{6Ozv81N1uBWRT{rvg!(9tt@!**7QhsdTMG1Nou zxq0Oe_WWkK*p?gEi#(S-#32yp#S*X72-i|_e}qtH6gS6MQX2J^8gVhr7-zSkozdFh zbVnUxqVVx(`88f%CBN+rn6GbT>iaL(f z>dlMoc@EfTNk%7wWq;>Id$Fza);rS{6`4$dlziP6g0~doj)CHUDe2X-F|wXHN8W1S zG8Cy+(Hn}S!Ne~=;O$}Qcb;2Bm-J>MqWm}u=FdTK+jl+?U&+?gH#At{@U3NP?-{I^ z#?zruSFekU>lapS#4|E7>S}6^zwa+~FoyOlj#Tg;OhB`VJPnN(bHH?GC`n}#b9I!o z8+j_cyuA3XUytN|_4+lYynLWrP*fE5`Sa(Q_1$ zzJFFHFcwF^+L*9T^R+j4cog=lZFrSqEVzk_lTY+msXNLlDmo7yyzEY3J_YKT$)mC% z%1RR#wxndeq;8^F(sAd>~`B52!F_*7gnF33@%4gH|%bOGGm!87vrZb^Y z>mwdxHl)7%)r}3k8h_et_XUIY_qQ?>ht6k&5W=SH-uCJ}@wn{S0 zEWCf9q{Q#ASTSSob!W51!O{phawmp$$hKGZ$B)CeSL#L;WnNb;@(l_^lZiy&Lt-Z4Sw@R zb8~UTZasNmz(BwhuRAw4XH@Q-wm}|3OSnycd;IAks)s;`dH+7A?!{qJ1B)EOdkF)> zazj^ER>EzXo0}Pr9@UDvs&;`e>bGeM0*H8vyfu^3pX4!`+Yb*gO-{Drq&>wMnX)ay zZ7IT!mh|;2SmXHK*YcFXu_IjhIa)&-4b*El)1hI501NFz#_3NLe*Vtxk=u-PQBD>c zyOrNeacSwi^O)M2P*rKNePii3Mp99mEUW(1^6MHCD=ViIQ~AZqm+#BU${LkeM+OH6 z^R>&l{(RHY(vp~+RM|N_PsCDsRD^750~zM~@)Ioljf~yn_|mz^{TS# zaWRl26BX^Ir>FS@1k^yX47UM8Y-w%Pv9-l?R~&oCjbj^CIjg}kS9Z5X@`Q}!wU0b$ z0F&J*E8Vku%T^Miz4Nk;(f+$Z+^|=^(MZ3F@fdY@w#S(<{1in0*5gyo&uVIFIQ`bO z)Dpzhz?IpApS-z$|9*62WSW3+sWpvCY5Dfe*}Jp(ky~$$7Pv1V`npcybeY4DUR_COTr$>^HZnpyq@G1$uFVQl+;KbYqo zeJEktu74p5gozHlDg{3}<=p+VIf@8!OM9Y(4#<#vH*V+}7`&gDoD}t=t}Bx*9zXs` zCg(3K*oU!+DueML;<^6%E0sqj)_Q%mJ6_l_7-aF@GAB5QD)n2pZp{zkuo>j$ZM$Si zNs)`G6aFzx5nLX_5!~Y9{Wi%Jo`rrhwlgv79M%Z0JDo zO-jRtwOj;_y5zKh=nK~0-3h(vB4~S2nrRHM?JAQeU(J8 z2owCB;vpuFK&xc(v{RZpD~sJ!Q9%HV`}c9IE(sv7J}LfQ;xHtJa~d0+1uZb^yAelm`~gV$tSE^9+uv86_OfIPZ@w|$RyrKJzmU+? zrV%zO{l1Mz;Oc4L^RJr~hBO$22|@x%?h6BH6BCaK2NN2i#OCjsSI5G={Ia}8;euTi zE=kdUowr1MfQ;(}hhNZdY2uGr{o(o>*%Ebr=;L5*UCF`ax6ID6?5ZB7Z0zX<|>xS#OQTngS>u?tagR$FGZ;_nsVv$%ce54OT@5a#GauP5${uK zoiP>&%6d?*t7hY7@M@9p8O|11-=G6^B_=}G`DW9sTCTQdzZib2n04I-eHeL}_EBXi zj9o-i;IJuLLn;ChU;X35_ae_#LkO!-hkxx$R8$mCGXk`_wW1Qn8#dj@3<@EW1vwEX zUlbRE%`4YE&mUEC*}SMaz!~47;-DCJ6q5ajvI$#UyiHqb{LFU;v5*)0gY_(TA>O~m z;6vu~ybQiAT?PWH|kqdfn%=ck?{f9>|r#SNx z^S5!9U#;e4Jt||5d#W3fO4+MaIzPu>$k2(28`K3A0;T&7soVT^4cVR$k!z+~KL6n5 zHOIEQqSmZgsL3tKU$mzV-Yx~fZvHXr+ef~s3GJi|MsQ?$3$T&o{I2E@KPJG$g>|=U ze%&K;epZvMV`wpm%oNQS)tvQ6W=td+Z{Qn-YSKBFqM1dHqYF2 zCtpW`lvtHO?!?Yk$=XA(7GX_RLDw?nOMIWt&p)7=({}302De7_QGAX%e{Fub3$019 z@|g}mgUe%Fzc?qHpq&;eLGQ3152`KjM#2@vO_byuCwirEjOCd>Hn-Mpy@x*wg%uVEl{U!}JVxw*O2*^CHo z=%-JgP?-)xrE^qLl28q&xMQNPpP#79!~)W+uaCO0oHKOdj+y?gf*mlz?nUaM<|$8vsIkA4_xH_aYsa*PY`{MgO2KX9&5 zqg<(d+npG%<#b(~$FzGBq2Jb(07LoQ-)1c&eo7(qdd!{9zaXm?Bu>lg0f9@Ie}N&C zr&Y7ds-bk_1EwG45SPttMbZoVG(0r`-onhaC!N{+m89;#_NBB-)JY~g-^s5)W=;S4 zN6S-4fAgH~if{QbXJQ_r*x+uTC1s@^?D^Ov_l0`vj8f)vCPm~C4citJiKHezhRO(p&y4FdC$OsFI?HiGPeqrpR&HxrXQL>Zc?%45}cn z$n71o-xQ&`P@>0NBzoSyL9pk z8g8ws5H}MQ1Jebs5;v5NzR~*Z-RQJCI5UWwq%V~h$GPoIoA56H?kLZ#^i|Ot18jOUWJ*#7S+?; z;?W-C?+8ULDy=0?dlUHh1!0cLcc-jL1Jwp$<#c-nh*2Xx@?OMRxJB~rT8rt&h6v1b-uIMon;JT>Q=4Q zQaOdntfUzN9RA=_1hX@v*c!{UHNnk|8``vaL3bX7wC&9|&3d$UKL!5d$B!bTw-`;g zM1jDNt7`F?!^0+38-sRy*RE;at6SP60?H_#+Xi$;V9s>H&Wk7l14vT-BU};>%ziCU&&F0q})D+XI8j^V8w8IN6v3O^^H~S(fhs|`Pphs9} zeJdt5Hv7$+H%z6n@3}yv?W-6mh>+Vg$jZt>GoRHkyF8kDZ$F(^8YgWX&0nA|b!s@W!=16#o#wdKPmm*~F@vg|zHceO8A~rGm955#t z9x&XFv<$IGJ+Rvn5@^g{He_lGzuG^zAEH{{IChvdA+ddXeJp7Al8@nMz*|VvKMZM1 zci1z@1Njf;-I;rZ)8SwvOt9aPf4ku&Ci}ak#FWI5jn!3U7J(v9uRd!jNm-Ex?cN^U z*{rf%E76FUY1UlwH-B4K(_yb6j}5u-c$~`Fh+@y#laFpbSF1hv{rh)1ptyhk`Riln zwH+$@@{OhZ!^6UefaTzU^6>Dm$@y1GBIh$f(=9a^$|0pk$W|i=lntlr!~I~9k&%EI zB#u`3h(7*u1pQYr=25Xfjq3gDM-Xzh>r&M&l_cn-@9A0I)6-)+TwNEUlhr0K>KGua z@P}AXjALLu!_h*Fm+e$R0UqVr*vE?*D*J{zUSE3KvMpgM+I&MvJvlXwYUVQi8sdDy zK-{@#b+dm*OoewU>nR}LbkjJ52%mHmi(k11OOUr)lpO?R)GF2=q^+_{Un`lkRNj87 zgCjMMBo(|n-mOm9{bfWYuPr~{>|9cpY3kTGN7DisX;qtFh}WuBmKb4UG*!8lb!|p} zODu;s1Rb>kPaEA=7KmfL`_}NIt!PVmzhchdyoHNItt6z=@h|8g-2nx&tnS<9AZv8 z3yrq>QU7YN%qeBM?ZcH;r+{`94GsOrkJAsaaOSbd?R3pmVfFF>JZox_$_9NQKR5RS zwfNgEs-*6WAnv)fPB}R&xyUGAka<%G=bbdhLDnXlnP48>-{SNSPhl6e&6EsdKWBP! z+?|nY7R$vMu)Q931LaXA8O$}P1k!be${|SE_!NxNZ-T8UoL7Loyb6K{Fge%D)!brY z1`*Ocrls|dY0{gWOz1eg;SUr<^*$2`4OsGHi zXTPth_hwi)`g2NjTs%)r*Tq-vc-5v&PF+JSn;4CoW2;{;BfSOh(a(TR!WIEDrk6G5 z&JJ0Ug=HxqeB$Ew437q0zI^%TO7D@x%xd2L%KUqx+xH>vW*nR(Cg zFrT}5cLa}gYtv9si5hX#R}Ec*Tk98^<$w9|0NPRaR9m}8qN)Zo8#1_a&SCcptzmxq zLllZs^ea8N0JYP5x1m)?t7hu$e3`V??vFbBjUQJj#>qLHYgg|K?)+K}qE3;R@l-Ar zY^Q$VH>r;RO&WR+PGz?lXE*GrXca1)LT+w+w-sOQ6X`3OOxm-asetDa);2L?s}Eiw zLi?us<&d^f#aR==BvAWv_geaU7bAzFZ%jbF~4_@Qo>@;+;tR;atTWJcftO=Co%@6X=sn^O96)ps-; zcKh`AN9|_$w`N08VzN@kUb%*No4Vq8%2vqga;a_qg_)ouoWE>eZ20ZIaC|SK?%|Y@ zFBpZXF5Bqj^3BM!Sv#{m>wqV3&)IG+J5XI#mDE{|@3TD>GSZVC0l8+AE>pp>}Y|kmiO{3iWLY;Ttuk6$}z5-+jt6H+O zA%OYBwhtn7cC^0!{;OB7uFJ}r5zrciy|O@l866#M>FDUo(aK1?uLfm2a-<8zqjKAO z-CFH~umV8%^Fw8YAn~K$zdwg0Q@5i|fbu0GDA+MO0)do6D);XoClg&HOG&I`&l$Nv zS~nw9dq?L5(biK4P+r?ncHmRR0IOxllRPlLtdrTknx-EQ*b6!Ci>o_fyRWt}9PoCL zK|w($Po9i^_f9io!_3T#Pf$=6$T6lBlAJdY7%&a!evlMdU*s{2Pw2>H=Yq$9IFJA+ zOaTx8<+)w_M!8KvM7U(tLNc^v^kcDND<;5D2j};(2DDpzaw1CGa`24I>nZ1|-a^L3 zj)*-oO3lkt1qB?Cs4*bqw6r2`oDK2yEuWziWy@CFHTb*Dg@QRQ+llQyxbp2NVu#Q- zNux7ef{(>Yhf4`4&&mWz- zc`2bi8$?nr5as^PaXvbN?LG)`9svnM*Th7XZivuiHa7p{zvZ2=>faoTE`yny8s(aA zt5|+A2o(f!Na7Vx>HmKyv=GRn$LLi=q7)Od`Y+E#6G*V zM{>W5YN`EY00S-L_R<9id-p0`pY3OpaLr6lPp7MzK+v?U ze|Z!z;vcBbD*&hdT?HtW#V6_2;$h_SZ3Go(t|?a=K^(eM|sVybdk`*&^g!jI!Q4u zm?^KDNG{oqT3T=C=(K|_tw`<=97lcyOr9B>6V6a+xK39*8{epn->@I}cn`?Mx{n^E z(#a>ft_JXAyd)B%t)oNfR^o!904U;t0*#zN>6ePozVLrQTe#;vqTUuf4 z;ss&@CKc}avfB$H0GdJ5($Y|wvVK(SuGD+#B>L<;e*Cz^b7exgZkp>wk6gpk;_LkU z*so;v0p*ctE|!FR-Jl)ZSftQT&s{!&zCSBBh@^J-=bYQ|u2mD#rP!mx_-(NeQxZ4b2=xCbrH0y}ulp z8oJsRSbWgA8>oTN2?^MKGat2s2M>ZK)49!VsC1%XF z*;#R&eSG}}YV>G@T5@ds2w+IA>=m&1)0$_CTsSLxQ-k6?iBb*;16pOR*n$-8X#o-Z zu$;i(1>CDm4>6`q&3S@<@7<1Mh_he44^;J9$1>7ngq)s@&794P#;CYA;?`Yv!36aI zC6Qz8>U+v)+?YriXM@k8wESdmUYlEMPHC~^`7V-%TYgboS4}t~)1oDs5>ASZE zO1|3zJ+;4V%pZGJz{naHHRyJT`uh6Y&f~Rg4u5aJD!JGy@4#B55qjHQodg{L(t*Tc zi<2B2`6Zv1l8dK))L)Z~#)|qS$8m!vqE&5vPciO5xeS%r*&F03Y=MumrD)|7 zZ}0Wb6~PAyW-0C@T{Cr_pW*5o0k{3WfC6^>|&2no>v8h6Rl_IS3#33^y!){osR zy+WqS8I3=ZuV!^n%H)h<7+bFTv z>pP=8Tv_ah2=qI9LEg-lFr{qqk&6dpYI*3_gFa#nzD zn#tNy3csLbX!wCp@}Knrs-c8!z5l5fun~G8Bp^Tpaxn+#AOKeeUyhM@ScEj@%H%HU z^X|--+IESx%(}WTAd~OtI&dwZMI)-yD*ZmJG95+1AHJ)6F%RUxfB0hrmp3>2Ga_U$ zHiT?CER=tJOzYvpH^RcgC6=vc^WimS=g*&4Uy?X~GaN{!AkgV5DPgD7VTkX}9Rs?? zDkP+DZJh)9^BfQk*T6}Dj4|+fpT*qLuV88n7#JA9y1wb{0W>-j&3kcT z-J&8&bK8f}t&aTIBDL`>H3WGm!_-8$t$+gG2I}Q|nGPH8zCkjb_Ed}u8v9qvyk8p| zVTMB>KNKKIeKu1qF~ATZ=B*D~HQVkWcJR*`7q?D>@2-yaN-4k)GSf=ickb8t;_hv@ zR&Y1-mM1@6tb*q6_36t#Lxu{TVjW0S^f+g_&o*%K0Nq#_7$Pk#O^3LXCnA4iTv?jh zLWMhd-m|tVcXf3&(G0kZOx-K0S}a4sv*y>!>uQPNCw?@S&+q_ZYoPi4K{$pq=5=4G zjH_#6(SjT5SM9C9&|d!sS;!wqxGS&>$bDPz#i@%GOQ%nse2kEwSLizQ?$YMe+VTXJ z1p>h_v#{(_T?DYedooPC1c*Tj3JST7BY2E)S%EiY-V$N+2ldP_2b3OAEif#8N;FG8 z{`;J!F|Y{ydH28W3f0SCf;^IqRWvVRH~n%QN53rZ!P_iAXDlr{+vodf!k}*C1l^oR znfs&|M}J#)?kh{OF#Z70&5zW6uKyQFqVzj~p1cg3b%!MpcJFqs30O?7G<0CH(TN{Lvh;lPU=`WPXByce3U$13u(6Z_MBH|F};mOcO9eWZ!_?(ml6N-IffFA+q}uIjCUW-6ev0AddXCY|hMf z`ypN5sP_H5v$Mkur6((3z2iP%&z1uWjI&=QCQJPKPWs8Y;@Q69dSi66=YNFmcw)y{? zrR;xyke8gCoOrmotv43F&yUsAcyBJ|gDX|7bx1KXG3h8OzP|FUt+h3Z8=zf@(SX&N zsI?AmX=xMi&FCXA`pqfpSF6hTObUvA7F2I0OiN{pewJ0=Ian)k5o*|jv1i*NMPra0KXqB9eL2?wm97T-bn+nSQzt@%N?fOuk>o)b00KQ< z-k!pN4BRCDYTv$nK>Y#sqMei9+S`%w9#{3SF+X;R%c~e_N;7%SD18)Oo%ieL3!FzC zpQwF6F5SGf=i^cUbXF8!hiL{C38TIKUuF{myc~`gusGvI?P3AqnY!&qHyDG~R$7{G zk^98|Y$oCcjQ;hD7w@(wh>LrR*yhu@57zTziPRs`@^aPL%>F3*d`>4v*oq>pI!zOa*@@m|8Ee z_u&0QWL-AVmKb_o zw=vW*5AQ6o(j6$aBly6zxBmOf!~KEb$MzJRK7eG#G@zT!^c=t89d|dGBqL+fUCQ?w6A9Ub3>jq8-;90CP^bcF^=}TD^SJy3I@^ zOi*Y&SkHFv%Ux0XF>MsW*W-0H*9w01_ytVq>(tpJjWV|$);YxUr+U5L5ZtNOCX41@ zx|W?QxkKZ8^+ll)1>TT?lJpcx`*Ey z>%{)--zQK-KJQ1|voVyGMi8D`P0f+W)^Xcz@qG~i`XNrf_xI*x%!2xsx|o+DU=8KL zLQP;w8R!1WCl{Y3$yGJk%>~ZrMz3ML1wHiuq~nGn6JBGcQb|dDOJmmz;&_I+f#Nh6 zzOYoHt^s$#`OWGzxoj?P^azdF_rwPHx_5NE7!356ugNVK>#fNAl($G>ON6_oL4U_tEn;o%K$q~E6|;v2o^#Bc`2WLTL^jvKHZxIn>uKCV}7*- zPWJ_rY*92gqBO)^r!zseiUCqS_jT$bJJwz&itVyD;vKP5NiNh|Wh$#QnC!El#yl#a zq(v+2N!}WRq9*rvX?N!2fyF58Bfrty!&OcoOi=(yC51Cw8%V(W%v=!te9Nq2bk7K^ ztJA}!pYfYX7g?}qL7Iw(=;B#p7uAI`lu>$U+gmlV&a}SXK(NI`OFL9^U$3-FkPA2& z{}*i;-#wxZFNRNRa~iNi<$N{YfKz<`W#2v z@qij7_y{%ByCYyjBP9fIh8n;W==|)9%q>j^#dTtYP(aR$F{fBuc;RJ7Yq-Pqp-%$3 z@$k&0MGajqXf9A2=d&YHw34ne<9^I-A`ndsM4REe6hRx;K2ZnHr={~a>%5&8N+lr7 zQJE)MmHIvVu^H(ZUV>F{rJ(?Mub znJN`-ic^IGdxRE{(CYCenDv7?m~+jikwe5)3<;e_k;0gkf(Os3r}3SUPjP?Dj!|k@ zXPX|uED1RxW$}cvNd)X52I#Y>60qsPGEY@|X-^f!O+$B%#l*!U?`^!O$QZlh#7>)D z*beh}loagUc~iMiEcN%f>}lFpLZ@+mySGV#St7QQw!^s(QZ5IqpyiM}e_30pq8ijG zR%>7k4xdvhTa+Vj?{0U=U5Hx|#p9Fe3+*#_s*-ymf6AaTPt`mjby1V7O!aNdo&lR4 zA0X{Pjf)!#Xin@F?g*Q=xA+UP2!zpqzvI5%1ALBw(Vk1Af=LULTpC*iro zg-t@UNii&0)-0Gy&L9E4r+b!#1?lVlMp{~Cii>lhS1jGlG29hJn9!wCvW* z?U-U@&4wR!Y^@p&jNq(-iwVaVY7d@77-oV8Ch6Id6=~(_tMQsp)eJmUn$3k<;X)r~ zbSjh%&nC;baqQvFb>(X(d`nL1MYimxnzs#E?bPomon;9Dt`jBxXkn+%;f@-_*ttEu z!6Gi=e6^Wq!H>>6)l%|%e%7x+0W%sYwkkNZ6n{m7ONirpr9SAEb%ww|ZCo~aDJi3; zN_=)b=EWw>50-^sTt9PM9nScc%z>L2yo(9%Yc4MF;Bl$EvB;EXvgI%683|GV$YSoe|^YXG6HpZ$i&@M3* z8_1ZNZFcT$=3A@>Wh!UbrBmTqSTn9%uCJB(w2;2?%AI=oGp(&OiFO7a21NH*b=>bOCKWvH?f)`AE7q@=kQfc>cqNIb)leP_3s1k^vIRpW3fip!?kK>3Mi4B^>(!gH z$)VR-luvrgM%*aD)YJ^GvFG=bnZuxHF|Ty$+jLdYnX~*Kv({*X`;5i<-j*zg^f?zK z4SR&)aZ!MQI=*8?1ET@6w@#6q!UYxhB45Uvu%ffdpUZ7>h0}yX+X+-zR>SXnp>JT`8X(?YQaM z#x)1;-TfRxE_Zi-P|kSTymSvJxev@}k|i!^I*(~l;U5`9)LA*T=pubHRT8Mwj5S4J z`_k)SuF~)=R%1?a=e9L6tCA-FB6^2S4oL!NbGIaC>ws2T)$wa9e7Xq^<(0NhZb{uf8 z!$jnbz1fXkw*HGy01h&*By3`SdREsZ%K6XB65oTB>2-T*YKdPc01hsecb%VaOQ+StYCT~Z zH7jnF0bEp!Md6Za#X~K+h@bt+SIih7&aA)78MoTj0|kj146t|3uh&=cNhB|=zBm`V zXNi&w<;pA2;e4k-!}EQU#6*8?y|5N=PDV%nYIv6b=z*TMWl+aL+|CT7ciY5$CbxH< z87O*7^%sGSGVB_G!c7bhwDsE)pxZTDY_4S5)M&^7OilN3S1#UidOolCTGDLOIQbgX zNOD}lG9UZvrOCYc?bb3wFsMnR{+krMJY27uo|z zy>eao7XxR50rgu++9Ev|GuYV1MsQR z@=MSVrHj_uFS;}YLm^scgd~Z0t6dK?$1NQla>|9w*cSzRenYZ572MY)T%MuerpxHK zC9wL}6N>E4t_|#pK(Z8M z3J&keAJYIm={o!SGqgj_Ns)jff+Pq3A@TlS+pvB0qu1I~%F-D8*|TRD{la9&DvF-v z)2Do(6ZIHD#sPBVch_d(OeYMTy#X((nIh}gn`bB@Lt7`TuB{OgCER+k`a(%}T<+7i zkH&dwF_L35T zgJsq@P_LgNBm%E@0rmng7!U}iDQh;6J>fs3k+`3$Wjx7K?a_#m)t;Zg@d;fQ#b2mB zJu4nang!cHAw-KWSI57~Zv8w3m}WJghQK;l0389$aNIV)Kp20^;x!O2=-h8sc6Ohq z%%6>$icST_d;+-hru&@rlvNy*H8jNSM*`3P4?g9e&7ui_3DO4q#vx`lT^m4}d@gky z!2p>H?6E9_!+~+^<8cnjOtATFWD2REsK{2;>^PToNT&A-HkrPNRG`rAyDzAsv_nr7 zY8Xtcp42dCZf9m?UB7&}epdL=Wjck{(%A{z&NpI}*Q$R_Fj-nzNtwPL%}`>2_RORN zI3ni$blWo=z%-dn-+DMVmkX$YQ5!1Qv9SK_O2k7+kInvLEG+t9t6O)%LTn#%V%`qT zB%5XJZFsoe;PXvpK#BhI{SzyRY??asThq5H0$<|O&g6W+NYZHsuvL>FwN#n$@#9TE zoFx`NBG}@Dhill(%yvYMx~;AX7r+TlkM!2rYmtf@U>n1)0|(1LflW)_T3c1<6JbsRiBLC&Xcgd{F?{`v5FN59aPk(-kEE*!u_hg0qV>kNif5q>F_`QLDyklQ{5IcQghe~_Q ziQnX>hiQi?Brx)Zd&P(&;>4e|1Q}-(Q~(q%{rLCqmH7AX>iE47{$r&kY47lgWy7Yk zsRbwalmtS-0HNdb6yag+Y6(#@M>yL%A?$4)Uv#&0b+d7D6cLmVynW-MH3H%6CMhK3 c@Q)7&I=Na2alRY1rr!#xp#GrX{-fvr9}z)eyZ`_I literal 17941 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 IeY02p3kZ&bqW}N^ diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-library-random_iqp-1.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-library-random_iqp-1.avif index d2eb3db40cd075d99a1d8e1c0caf02235b1d8138..d7297a48533788541f51893d4d8bf35cc01e2fc4 100644 GIT binary patch literal 7518 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 a8;HAk+Dq`g9S4?&Kwx)t)QfLhKK~bZRWo(~ literal 7150 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 F{1-|3=4}7~ diff --git a/public/docs/images/api/qiskit/dev/qiskit-circuit-library-unitary_overlap-1.avif b/public/docs/images/api/qiskit/dev/qiskit-circuit-library-unitary_overlap-1.avif index 01cb8d1e893717241b979be93e05d4d0d7fa5b28..0347f260f1947fa26375dff86b50779eb81fe32f 100644 GIT binary patch literal 13050 zcmeI3cT`hfwC95YilB%ny(l0>dhZ}u0BHhBF9K2{gbtx&p$bUv0YyNh_g=PAdKac_d#-T8jsz}qhhEYe~nIT-5P}>7ua^iN%}*&%}|CLX@7dbkChZs zc3FX>!4DBImggmE{U35?fqzZx)i4s(8y z@?N(=T45jFSBqxi4(`vxE>erx`(P~QHC-*|wBrVC28W-fA|b1)44%<>Q~Xue?U`4% zRbyHW9vz0-_S2{Gf^C1245o;S3hTiWMcs8f z1@qUdX%n)O)$kD$-<@Q;U=0?x#|7eh#!BSms~xK_=PUCZH`>CJiFvM3iYUIRV6Rux(-wR3k1tO#oV zv%0yp^1CdR$L>vOaatjbkOh3OOT!50-6!stJX2Zky|?GbTg7HgG@U|pay~-to5OkP zDFPI%3YpKMXrR8~&f=))Bt>RCC~7KFJ4X@ZN|;|u50lz2;o&Ho@B2k*aOHNO`89!{ z01*Q7IVeUM<;y5xhw`nBz1ia;BOG~1bUmu&m$>5basI>a{vx@P5+r1P4x%fs({DCS zOms?$i>^})CW(tqUD+5&PfO(i_oqo0uB3?Qml$`4Q?c7mmomr7pU{Pbgzy=b2U~WA z#w8>?K`ph&%Xd9eLqHQDDBpV-*_0)r$9YGr*Q&ODNt%`g5itIt0SXDL1GO)GWWr`P z@jb~Zh=cyC`Y#K}w}jT&Df}MT1sXm-|LN@@d5~h9-WBsrZI^p`IxQn5{`gn!Q;OE1 zi6>==ohxt8dY*0wERCE5Y|(}OIuoW^5YFdi7l3>i+PHuyr~ije9e$xUuv(%`x!-q~ zo7vBo;~LH?X+9Pbv~c%HQ}P4A>ym(bvmKgk(7M@{7@wTnGgD!`HD4#lYf#D|By>Ai zk#IKR@pqIc=a(2R<~>{GsxHxQxm4AcucWSSEcHgZiW2=+A9^#wNLcOYB@7lK!=&BC zJ|*64l9%6gGrG7+W>0nV@tb*;8PRy@^Kq$0IkaY)XOz~%JA@vyr-}#n^a=O1DO;3{ zq@R6m^nO^>rp;3$xBiN4K$6qV2%*}VDwte}gK@(Rx?w z^AjYwSY{}p&a35|XGkFO>*9W3sSS2hkc%(>raV{l+nvv+a)2qp!nOSNjZ&|SaTSQ?I()P<@~~;0WoY_ZQwlF^Tnn+1rz(nE=AoM(jP*z#jD^~ zZYqKq>#~=7c#63B+&~Y96xwIoe8MJ{YkOO5X3vR%Tbmn9tOP> zEdKjS8-rK)$E04nvQJ#ZyJ@EuR?aQ)e=Dv^SG%BR{|Nnr-kWt62 z*q+7r?*o|Mo-}B#)@guTu(`e7brpm;-zjU@%FmDrI2V)1z*7EI)zJ8^nIZ9-1u;SO z#9^J$c*j#EmR_~%ENeytne_;g@OI=+#WCb(b0D;_?SwkS$#3$-&2H(m-KI7{Bv;E5 z)iR~2ISIu;N)Xv6M}(Og)1Sei7Y&2X8J+p8L`J zuD9BeY>N!ZWe{-j(fhu;UJFG@tve}fC|z=$;%9cv$B)FubMs{;G*{PwfsChJf+eXUQNt^2h~Cl z=6Q^MMY4Hz6RDfO<@M3%9o^hpI$Z*R_0O^Oeh>~a67it<`usWK8EA>$h1M2ye=6G$ z<2kjlfe@;HSf+tADqB7JAIZRo|;f<(P}&&I!{0#hUD`NxyD zE{O9IrQJ7{cXkGVNHV-VRTL2&ZPOS3P!2t*$E4st<0%SJRqd;a8_ASjb;O8@imJD4 z#KgvG*DU29q0zAV^K*U3?)u*9?PZcvDeU<<96O(iSc zB@fY)eBh;5>Lrt_52a;glh5UDRXg9zCG9=f>aTw>T?M)-==du~y%CNW=@@V$6(0Z$ zySwWn_N)NE#Uro#!o@`h(tJQ#SXlVh&aTR;`-YXZ_1RWI_TSkmE_gO-l#-l07x2m5 znTpOD_{ z-a|Nbib&wAlp7X=qi}l~xd3SzZ^@HL)en;`der)@;-7!-x4T(Tk{_%VO_zPMC_4`b z)9(5VWW**--YNd?mmrLI71n^n0l~IR7J1*>%*>i~&Wk?yvrTz@U@}*K{i6>v8D5x6J%!#4|Tf@fn#P z6VT=(h4&!tj_XZtYR30s8i;EN>-n$kELjd9OHao7tm(9_jl~A3jrB>zwBafFXn1Kd zD3P2k(Lt|NMC$yN#<7$-9*;s4ve$etb+20YveNe_&1i)PM^8X;3$5s~RIC=l~xDMX524*fPtcYU`_{^vT)toV7TwO+*lNgIWOyv!Ok* z%+39C+W67HtkJdnn;bc>4dyg6RaPRTVlIws`4n2|Vyxztq*HQETBOd_+oW1ns3{7l z2|u)|+cwSkBrcBFUaz9;R<%2G>0Ok_=S&-}2fKF4P~H7O5iv<~As%5u&87ABPuFD{ z{R!9cKB58nqLm5H{Q$`p5wHjG5162s-jT&Or0!Z58eaI<2cid87Nlx;a5aO)cfuNd*Us)st-pYo#f*mKw$7i;MYWUygC=urbFmNm zM3U5V;Bs)9w!Nr~BK~3R^JwWRCuyGS!S5GqXT;t++I6$@vwjdr?36XQ;*hc$ZuqQPk86 zc>ov;Ow#8SAENa(;;Dlw z7m$(ehYdKipDPWmb;axqZr>zx$$O!*t;9WpA<$tz9UZ}mZjz_#zEv5+vC7I~>{d5D zqMbQ}KXZLM{LM;;f}-<2q052k(=)?&`Z$JbI;nBUIg6rS0dyy48d}cs?X^a%*00bF zt~DH|qo>5#lDDH`1&K%aB;od)T1rcK_9pCzsQmmq>76xQa7a+pU*D4T>4mJ{ zQpjf`$mMOGsiU#obvl{7TNNp9oM&Z z%hU^9=o)b$VwENO>FKjxuRC+6j*Ww+noDs`Z&BtuzC%W-+J_xn;mx%S*>8AWZwP=_ z7UvUykTd}Cj}M12M?{ujCS+Dqf=0%PP7l!0qT!K9r6~2C(<;)1b-nuCcNz z592kR>#FQH+?U6Qm;zjxP6p4j|9IuJk`nx7lZLL1;%|diPU|NR_JB45u7#cK# z^GPtaYJTf~x5)@+GRf^xEIS$?Nsok=3GN-f{sQ|XFG~q3SPWTl(XY>15i_M##wlOv zn_=9nX#D>1(v2gB*Z$C+4`f0R%a0=~4_}l_teoSY9`ClFY^raB)iSv#gba0J#JujP zlP>gji$Z#>s&q3AmVLRFXJ`>rOI6k_)7Iq9@7X0M&^4lpj3zIwr>B9enG6~5kftbU zbjcu|wT>LrsWVs+w4^clyKsHDJ2~AwrRM!-zIgZ^ap!&LqE@;G#NeQ{@=z#KEAzxE zMsQx)XXF;zSlve2o#x(`iaqx9TW8=jErA-&F5;L9K&QtqlR9%WNh5EeVcSXbCP^@q~Nk#J%rl@899e^3^EB( z>`I@_;QY(aXUa)Q>Pz1|H5>o1Yt4f;*UlBVP&LO8hvuesB)DQeN_c8kfv)elN<&p@ z$9^1rT4TY7a8~3BQ+!w@q(8RLF1n8GRE@fC8 zVIB_r8P%;@xgfaj9b5E>=}ej_J@8rDx@MSGyX3cfF}Z1_Hf{2jwIpHG3nhxRIbY%l zIL4LV1COMMe!h{-9?b`dHF!|)5G0GVz(-^^mVb6n4Dcyp4jvuqiY}NhaBGimBgJ;+ z(~1F(p* zqoBSx=WDCQKXl zT|w|g;fzFx_k`|2PgP*IuQ;a!|zOD*kvzg!ijD8rWC%6jPB&hmAT{l$L}rQIuX)8-;CmsqgUw( zeMap0S2KgG?2F$Uay3@1&cH_@A7U+()_(JdwZ2I$2(r1E+*Euawe#e>&4UZ@DG^GJ zFV()XpsNVji!LZL_b_jc17i4HfEAJaUVXCuRX=N~tjsyrkC=6nof;Z%>7A29N)Qm3 z)O*gK0op}Uv00It5oT>f?>5EU0$v2v$EwACx=*?6@rQOc0Aoe^99|l0ijeIc-|S^qxcVAOt6bb#8}B_p z2@VQYrY3uaBdaR)N8$cAK2P}nb|ejazS9f zmjz~5--B4)op+FSmWdW*GGFm(2n$-nv=Ku2@6!SErxRDJQu~Nzkmk;ry!4LSz`duj z^lLIJaxHahju(0Ed$yhOWl1s(8s=>oCE9%LigF*7Ae!AqyZ0rx?waJcJaG-QEWCg} zhdcJ0#9W;^%WzGpVINt1yflV1yvjf|w{v4oBXuavX+ZjL*M2%7d)PdOsNam$F}Y@Y zt+>*k*`yMtgpz9qBpjmOGwz>J1%lk(vINctmqDU)rOT>f|003>_e=oAeoS#z)a1VU zhZTNJy3`^ny-thdf4Tj0FoyAk{8GH=ehlXz@FkX#MSrw~wkh~Lfe$}xbTIhuv~K6Q zBvSV8Et@cHQ(9|>b-aTwy2GSrMYH)K*tXxu>2r66V`21xkNR-46CVty%8Is9n~~l- zPOH)e_P5%?eKP9?7w=JxjJZDkzGwe`pv3;)(byGWEWxU;OB#{VfJi1UPXSV%QxRTk z2?JNhVrw7k!U}jp^p%8~vI|sJ%>KDU`boLVN>6j=Ao=r!vD4ZRMKk}U8p>k_1GFH9 z&%5=nL?}6Zed%gAc_?FS{e180vWNousQ8t2T`j0mGfEt6(>^ew5ZK_ zR=o;ZS@o8{i?yVgcQjUh;+rwTW(}_P*Kikr3SF!EAurTIV{6=CkIi@YJ}C3nH4+Cq zsk2q3T6wInkxIP0e6wSOA6gI?B4umjMfVUrabnvH>P05DRHHII6P-oLy9;bA{!m^B z4iUIu)~*-_8yP?mx-MVH+{XRG$w0AN2S*-cdH*ga8^GbtnwB`~9qDw#v#g3+VZTC= zTr=et#FRrz{frY>QQToIj3tmBkg3z$IP(A@KNa3rat-r+ni%i?i@BJdz(z#%mEyvl zfhIfDJL!jx244%!_t7IHv5dkYeYf4X)bXUyXRD@yFnt@7pckvnW7)ze#l4IRgs*p> z(lFx%eTElo--F)f@+$$AeFY65t+`8OE)f3Ml15u>)Xox0z9&FGryk#2%{J7ITU^=F z?HAI6Gx!dF_jkl}R|Cn!;e<$^qHB7!Q`n5?DY^38GeAI10xsx8W1;Au@pOfDEPgpv z@wT+vqi0+(I$!D$6HkibQC^vE_CMNm6|CX+0ytp5*CX5b?G`C{U;+hq0Zp4B5I$&3 zF1A}N&7|d=b;4hzIHQ+)(cH9lKNn@P?y1?9Rtf*&&Up{uPn*Pq{o68&QXp>WRPndn zMg^)CSRxP&D=PhuE^M`LmZA+zA`QJqSa6acFJb#&e~=OJl@A-Um~bu+K`Wb{%ZJlkM~JVK%iPDMb(ZcY zrFPhvH$Y{Y%gq{GKEr5w^h6tCtlZBf`oc-?OL>X}wRzrbxvac|Ge8pvU8EvaQIE_7 ze>&WcK;Wo?;ZJDeJ-+>kZ5SM`amOA*jIety#roth+x$$W&Y|>Ka7buI4bZR4pU#>V zN)57B+vl^H-%frxF?Ba$jGaOQ(aQMAP}(a%LVsnyIh>`Dt&mj%p0=VR{cw%ac5k7< zV{81=N@rM={TQ1zWrgmRZ0sS@tjy}@=ROLIee z^EP$?F?0A=)*RY?W832abH4vaOTo24$^lgiv;dM5udALgqjOn6p3Ar&>BcMgB!>U0 zgL*8m3d(l;a3j4b3AQaGVX%b*x;08v;uW?v>nEmH zk5RgEmlNkNuUNML*dbh+`V@%n4gYJ>@wASKuj?d#!vqP$?Yexq3jiGemZ1vR-iD zqnpA5|L_*$l~|ZhGh&gKEB?Nr5`NpAa}RK%#JGQF8S{0J&5&y>Z^pl?6&u$?VlY0zq+|O8 zc&UM6-t05sYR09Jns)@;`p53-ubbcF-en!YF7{6dKv?0YB2w~eZ5_OkPodh>jZXl%-evT!w@K}$1duHl2YvZw{i^u)_SKeUQ z>?7>HF=*Kv!z|`Bmsnq4|0pQ?&mSvYy`rV^S?~%Ok>AEeN~%d2hwtv=Tl}VGm7`l- zF8Yx7g^T7IR#sNgJyvxpS6bWru)lW-fbyATtB7{gKSbx345+Z+&{Zn%%*+WR9MV<9?ijEuJ_N++f28`K zdHLwco&yR;L9ku#tBK|d<3ADpnp>hmHFmmcXrAVLrqQXFpS$(NZ4eXUsRc;L9~$76<9B~C}Hr{$-6M~*g3c^B??1yyc|e z_;Y6EC)QJ&##XOWeLVaVJ5l}LSamh&B#S-Ywg6c|v(^KD^xVT51usb7r8|g^q)Sfe zPWU!Iv~JU9gkpgpoiBP4H*T;5_GQ8#g+XtYayLbB<3EfU>*_9fZq4?FhMuouSm1lz z$n0#^x+P!Uqs@^`0NmJN_E$JKIQHQt5Gs0lHCq7}FBDZbixc(EUK^LK`H2-JRQRdG2NSE}eI1j< zA(sy8quvuJn?Hy1YaCQ$;$GaJ?sm-~kT5$e$~2z@-ZD?VMEj1icDmxeFJcpg?S`4~ z_|vv3n*o|j^pwnRVp#c>jNhb|gPZ$DM+Wp+AhLr+Q}aOn>DsBo7+*Ne(DsS+krI)D z2lDpDmhQ7=7(*ZryOdO_k9TLOi(XeyordDSCh@d} zh2sJZdf-UJ-{mNi<<;Dvgr^H*77?%1Y;8FsA|h<^kEEDx-MDe1d>%;`3YeVe)2B~u zsEqJJ4+li*FWR~vRTrlyYPAu8np26^@X1!$UXPNA3vH(Pp^1l)V%Hrpc`v+B0%tS3 z2nigk|2`3b%sAQ*SIy+?=cHh^^^(6EthL z$*(}Dbi1r!ne8=@761JHEtDV_bVeR(nRs3%qrF|op9Nv*5Vw%)1ZK`V@EWJWY2%xF zo#AD$)pSAFSA^)Q*+3a)U#ABNO@SpmPoA|no>5wGJI?hjTP@b(U9u&7NGT_*sQ1Or zo9)Q}68IWs#~bw0hb`uU(!3)?(}yR>)j5hF9kjSD;E_c=dMFR*()0ts4+mGD)r3m zrC19cB5Z7H+qs|%M9WDqQ-1tO>wM6agk9KZ%oA;Mr11vdpf%w`#csXy=g$z@q*;r@ zUhVyfuEv&cyf>q|tyW671iBF;`bF3pWBz8@Rgq$S^&xLgw_E$ACUxCl%}lAd2x=~% zcvwFqC+FO#pYrCLx@2zjB{ z<~--SGA z!%?Kya&9!-G%N-r@Dfh6V%1+vI~#+A*!zuXtsbiim*Z~Nw}k4LFGr-4VEHonI|Dt; zT&k)=B`#T$dS}%vjiYEn(xo#u#G(aHtJt>F=ZhB=Lvz(7zBC?iO^ZZL^{3BUaBRSN z2X;}*VTf|9h5Am*Etl*nTZ4-a0EfJzh)QYmi;7juVlh&lJA~St*p0|3DIF@sPU^w{ zOK(i}d;fCGTV!@8dxxl++?jX2@l7WM5DFBmL^Q2bbO4iE6PoFPLL5-EYQ2Xa{s<7v z`~+q4_rFdOfwlMRmFo~>J@pGcZt`q}UeD^i*&~$s&i60B$Z2ni5m&V}`Sa4OAp>?+ zE~ojgFY1~A7r2g`yrZH-#aJ--P*A!>s}}+AE?9>DgVUD!ym9nTcP1Z?jn!-V@02XRxN9$UsuE{tV~5;&FKPv|Luj|Eu&Ov4bsnF`s7&EW68h^0jN9yb zsK<)fX)=zzoROGU-`OUWV?Ti_rWPMT2>ezknQL0Yuo}sdFa>o%H}a(U@^gs*r^1+zkcsW z7{j}JQ-a~bckQw|Tx8737`3<@2Jo6y;5|3~su}-soWE#|s9;q4t<9^qN7?44=uG_m zD-6M>k4#>RIo)ZOgqWIbO~?!@{1n`JYMy5Ij$mBHNmQKbeJ_qG#OHle@iR0^X}(Bc z4HyrjJ4=kg@d$%|Ljac9Bj0auneX$f(u02@PF>Xwmn*Y;BKp z3qMH9wA%^CQPJ4MtPjETd`>mVdTAiJaAX^4vh$ouhEP$S5$Hk?JgL zkE0YfW{sAr6x}Ct{&POZK=+;<^?7IKcnU>DBg;?(d0dD*jM;kwgqN;1>4;JDCofu( ztGutC9CI*u?!t>21K`DJJ7+ObwA9JC)Fmy;yvTSFNONzk zPqJ9L_IY%Wc`xnu*_G&~;`MB)=-l$_QA3dytM_k+R`QxUOJ(jKZ8n~NB95<+EHwwm zRbEP41|FQWZKKai%K|=J<>^0PziNWt-zCON?piAB1WD38G^l?xezd29J3iNqh5xq< zp-=J3@V6@>@PMZi4{XW~Nj!HoftX1pk0k$t$XqjqWtYcxkx-5w{OV@8P^q-udD-em zFb1IdgI`Lo33mr_K&-IFB0&>{#ux!4qu)E+vI3Zd-iV`Qkt|dRsDQ<`%nt%cpBX{v zw79hVgnLt*9yHs9`Ih8WX1+G)@8EI}-Z=1O4zl^_CNgm}l-o6EtTNL*9VZnO35MEm z4a1iAIH+@`*T#17)A5g-ynTb@_^+Li=1k=*5kH?qAQFM81*V98(;M{M?TlnfHl(p! zMX!~BkzpaIu$I}M{0bNbOt{vI{MMQHsk+UMsMmtvmvpkjH^>EDp?+#E+wfv%n#S9R zx4)mA3(t`&+1fLeJ^bbrtp3Q1WhqyF8h1*6E-xCAh;Ay9q$~6U=-7Wo5e=n$kNXlM ztFBeNKjy<_e0)`3){|untT;Ol7n38! zbrrky3RqI9oiNa2g+^a%rX9v)O2?qiM`z^0N4 zI0Tgf24Pu?(k{pu)p3*$Qen&Re!w5lLVO#$X7{e&Smenr1Onci<1dpDPq>QY+ECS*YV z@2}K59vq7dPzE+fHcx(jp)F!Uxut$S%zhU(%v0m^jH^JcsBWSdVpodyAf@+P1(sJd zZ?-iI-V2jEfu&}eUsGg$+m{v|Er77csCT4ps9pGFs&FcjOY zS)|l*Ku*3f6MyqvkgKr41tI|;9CvLtDtBr|Kz}8{S9DU2+c$QeB!Hn=l@3JGDkij?^+7(hLZS8 z{~2?$I3g!6J?0R_HJ@B!yA9gz+wdCxuUW>Gz(V09SmvIOgD{9+02z@xYAz_Ay!n1l z6S~tk0Fv@-48H1W2duAL-UR2lH@*Cp4j&n56A|w-x`cj4VpltLK3CnJ4yc0AF%hPT zm9eJJW>}xY)#Szd7-+Z$2Z=h{VF|HABiD*zOBU7@l!!{n8BU7jn9iPg;xg`d^MzW{ zi6f#_7focA&HqK?27UB&82as5Hfhgl4R0TNr)_YB`N^Au``WP`O+J^!l;{sA{HLD! zKmFzyvh$Yn@8%h%*B0^O2+ZY=~<5oxQr=tk&?oZ$Z96ZtRC81*ZM~${wrIV z$bBz!oImu@AUOR3IjIkqSi(Zi+x)p6Aal#lux^-ynq7->rl=`nTj<8ur@q?EA68tf zDhx6BK9aY)3Z&e2uy26=PXTf0Xg7^cWx!YdD=vU^qLBYolA6(mWRQW&#oPU9c0LHd zjenjd&;^Ty0odTn2@J|-ZWf)Fv{_K#J0;Z|@eiCSimvd{;}>U+t$RB--@8V(lw6e_ z(>EVjwj=>_|CE3H&pP(h)PH;Pe+QEMr)^>LAZ83(@5g5frkZnl0@3$nW2Xs z#MZ;x(#-~>Y3bqe4&w37!Ro%3jhnjz#9358T0o5NzP*Qsi@S`VpwquK5P-PZ39@`y SvIjl{r1nhfX{qv?_x}Y727dqm literal 13354 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 delta 22 ecmbQmF^gjZ2NNf|D5I)o^Y5LnHw!XxG64Wbx&~$d diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-circuit_drawer-1.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-circuit_drawer-1.avif index 9eeea46d385459f1d869501e689925fecaebba97..9c54a66d63b8aceac9f1407e110b2b10b49d159d 100644 GIT binary patch delta 22 ecmZqWYvtQ;mx+^un^9Ha#Kvt#o1Zbsvj6~5!v{A2 delta 22 dcmZqWYvtQ;mx+^Ilu=bn>eGwB&Ci(RSpZO-2QB~r diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_circuit_layout-1.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_circuit_layout-1.avif index 92ed6b53aff674222b39ce2e24de732ced819746..957ea8edcaa3f28e2b8ead797330737038613b6d 100644 GIT binary patch literal 10539 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 literal 10434 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

f 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 MB_R^uKNtu92hCR#+W-In diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_error_map-1.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_error_map-1.avif index e85644ba61126985abb78e9192e2ad18314034d4..1c2d6f57ca0aaa3610e60f367d43ecb52351157f 100644 GIT binary patch literal 49431 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

w#IVv)SD9CY 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 delta 22 ecmeyO^+jt#F*7H-D5I*D)TbALn`@YV2m%0LQwUf9 diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_histogram-1_02.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_histogram-1_02.avif index 95dfdf42e3c381a2b2d7dccef04f8411e4755193..fe12491d5e5ab35d4ecd873ddfba0cb3c0351447 100644 GIT binary patch delta 22 ecmeyV^;2s@F*7FzH>0Y;iH+NgHrFu!6$AicRS0kZ delta 22 ecmeyV^;2s@F*7H-D5I*D)TbALn`@Z=3IYIOF9>G< diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_state_hinton-1.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_state_hinton-1.avif index f373534c6ed794e6f60424801f9aac986ed98947..1036422e0bfa4f298eed4649c547a8b0d7aa908d 100644 GIT binary patch delta 20 bcmZqEZquGn#mT|VsH$*c<2Iv>&CH?zLhc59 delta 20 bcmZqEZquGn#mO$psH!FP=|$kiW@b?ULD2?t diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_state_paulivec-1.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-plot_state_paulivec-1.avif index 0ba6d175dc64ecc2a350f91462433c045bd0f78c..9c6855619fac8232413786922cbb1a90dccd2254 100644 GIT binary patch delta 22 ecmexn_04KSJu@c0Y;iH+NgHg_<;lLP=|JqVis delta 22 ecmexn_04KSJu@e}D5I*D)TbALn>(1_Ndf?57YLF7 diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-1.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-1.avif index 6da71f7fd02deeda14d2587d71259ab27779e09c..13d9fd1309ab6f9977c13eba66686f86872841f9 100644 GIT binary patch literal 16176 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 literal 16342 zcmeHucTiOMwr-D=1XJ6BLRB9|cUKP#8WGiU5N}-=R>n z&avfc;_$^0GX>dus6FJr#H#eS@X2xK`+BY@6s0oqN9OMlbQy(`BA2^&Thnu3e%Q;9 z#$s=8Y2EY<(*sit!~3n|Z0l$ZuIr0KF0JQU)w>DGtxZmB3YHdw=qQh*w6rwtlGGUo z^|A{*WkWW(bWsZQ?*iG6aUPvqmz7e9tG!`zzP4{=>DR@n=-C#Z+#fAtu`83&bTOvq zpTSh%WkOGjJ8|%qeesyd!8=76)ZzViCj5uaAAI!oRPDi=cR?s*D^RG~-+zMzBd;r$ z1IYH@@X?V`?!O6W{QsANjd+)>c!UpK?xyyXf@XYnmdoGYU;5rXc1g(*!pEkwYZv$T ziY*-mg|3djRpAs6(3qK-34HOQ^WAmxuy^mQF?tphTYp1_1%#?u9zNfIGBmtl-El!H z*HCY;*rA|2mj8wCvHkDMhO&7QGv?eYBzHH=<0O6csThO`|M`3SXQt=1X_q`OGhNc7 zJ}a-pB_zV5qB!KRKc3Pech^VjM}3m~4Y^q2cv!#2>nqB!8LO*qaU!lVb}7j2tae{k_y zLkr1(H>}ju)Y7uDc1>X%qTXxS_Chh$+sg{RYyDOfCr)$^6xmHIEI4AKQt1ztk6H

OMY|guXnde_Gs6a~ss#=xAHw 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 Ld@uKo$)o=T{sPy{ diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-2.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-2.avif index 35cc7977c765e46673e521927b254fcefd3fed38..492be8dfe009088aa1d1e169db36643305d1ee94 100644 GIT binary patch literal 11109 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 literal 11025 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 Y$KJ`Dm*xGi1u_csJ;l2@cZ{C@8)?yR=l}o! diff --git a/public/docs/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-3.avif b/public/docs/images/api/qiskit/dev/qiskit-visualization-timeline_drawer-3.avif index 453eb8ead2f396fafbbec3ac59b349d7001696cb..e7d99ef8409dfdcc134c2438cb09c4a3a8202d78 100644 GIT binary patch literal 26457 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 literal 26530 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 diff --git a/public/docs/images/api/qiskit/dev/transpiler-10.avif b/public/docs/images/api/qiskit/dev/transpiler-10.avif index b5486b349ae6a8458efda884aaa607d0e82bdf42..de34164574ddae3e0398ec35adf8432f84741c9c 100644 GIT binary patch literal 19412 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�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 literal 19227 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 diff --git a/public/docs/images/api/qiskit/dev/transpiler-9.avif b/public/docs/images/api/qiskit/dev/transpiler-9.avif index 1b7c6ad298e0eb92e832bb969138e04935fa39df..d5a320448f62c41535280a94ce14abcfc66a585e 100644 GIT binary patch literal 24388 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 tsivf4eZxloklRNLNu&5Rgcb8tIS#5$PqM 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 OppTjx79Kf$?cV^bb;(Qs diff --git a/public/docs/images/api/qiskit/dev/visualization-1.avif b/public/docs/images/api/qiskit/dev/visualization-1.avif index 8c3ded044595a63da8f1ffae5af438b17fe8fd06..0cada9b47b2622b9b48e55f9721cb1a04c9aceb4 100644 GIT binary patch delta 22 ecmaDM_d;$%5HlwSH>0W?=Y`cXH%Bw`@&Eu;TL!rR delta 22 dcmaDM_d;$%5HlycD5I)+iu05=o1>X|c>q>L2Gsxn diff --git a/public/docs/images/api/qiskit/dev/visualization-3.avif b/public/docs/images/api/qiskit/dev/visualization-3.avif index 5a25f82b845969aaf78f1ba302c7370765cdb28c..e7ab30f7ea934961cd6a28937fe035dda166a74c 100644 GIT binary patch delta 22 ecmbO(J6(2zDl;bsH>0W?=Y`cXH|sHHasvQF?*