mirror of https://github.com/Qiskit/qiskit.git
Module-level docstrings for Terra (#3325)
* add tools.jupyter docs * execute device visualizations * add examples to QuantumCircuit and execute * lint * update execute docs * add basicaer docs * Add workaround for running with IBMQ examples everywhere * updates * lint * Add graphviz to docs job * add extensions module-level docstirngs * more module level docs * updates * more updates * transpiler docs and lint * all but tools * jupyter tools * fix import issue * tools module * remove automod * new line * fix test using function with wrong name * updates
This commit is contained in:
parent
2ba8f299df
commit
9134634f43
|
@ -212,6 +212,7 @@ stages:
|
|||
python -m pip install --upgrade pip
|
||||
pip install -U tox
|
||||
python setup.py build_ext --inplace
|
||||
sudo apt install -y graphviz
|
||||
displayName: 'Install dependencies'
|
||||
- bash: |
|
||||
tox -edocs -- -j auto
|
||||
|
|
|
@ -1,13 +1,6 @@
|
|||
.. _qiskit-assembler:
|
||||
|
||||
****************
|
||||
qiskit.assembler
|
||||
****************
|
||||
|
||||
.. currentmodule:: qiskit.assembler
|
||||
|
||||
|
||||
.. automodapi:: qiskit.assembler
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
.. automodule:: qiskit.assembler
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -1,13 +1,6 @@
|
|||
.. _qiskit-compiler:
|
||||
|
||||
***************
|
||||
qiskit.compiler
|
||||
***************
|
||||
|
||||
.. currentmodule:: qiskit.compiler
|
||||
|
||||
|
||||
.. automodapi:: qiskit.compiler
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
.. automodule:: qiskit.compiler
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -1,13 +1,6 @@
|
|||
.. _qiskit-converters:
|
||||
|
||||
*****************
|
||||
qiskit.converters
|
||||
*****************
|
||||
|
||||
.. currentmodule:: qiskit.converters
|
||||
|
||||
|
||||
.. automodapi:: qiskit.converters
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
.. automodule:: qiskit.converters
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -1,13 +1,6 @@
|
|||
.. _qiskit-dagcircuit:
|
||||
|
||||
*****************
|
||||
qiskit.dagcircuit
|
||||
*****************
|
||||
|
||||
.. currentmodule:: qiskit.dagcircuit
|
||||
|
||||
|
||||
.. automodapi:: qiskit.dagcircuit
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
.. automodule:: qiskit.dagcircuit
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
.. _qiskit-execute:
|
||||
|
||||
**************
|
||||
qiskit.execute
|
||||
**************
|
||||
|
||||
.. currentmodule:: qiskit.execute
|
||||
|
||||
.. autofunction:: execute
|
||||
.. automodule:: qiskit.execute
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-extensions:
|
||||
|
||||
.. automodule:: qiskit.extensions
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -1,21 +0,0 @@
|
|||
.. _qiskit-extensions:
|
||||
|
||||
*****************
|
||||
qiskit.extensions
|
||||
*****************
|
||||
|
||||
.. currentmodule:: qiskit.extensions
|
||||
|
||||
|
||||
.. automodapi:: qiskit.extensions
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
|
||||
Submodules
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
simulator
|
||||
standard
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-extensions-simulator:
|
||||
|
||||
***************************
|
||||
qiskit.extensions.simulator
|
||||
***************************
|
||||
|
||||
.. currentmodule:: qiskit.extensions.simulator
|
||||
|
||||
|
||||
.. automodapi:: qiskit.extensions.simulator
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-extensions-standard:
|
||||
|
||||
**************************
|
||||
qiskit.extensions.standard
|
||||
**************************
|
||||
|
||||
.. currentmodule:: qiskit.extensions.standard
|
||||
|
||||
|
||||
.. automodapi:: qiskit.extensions.standard
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-providers:
|
||||
|
||||
.. automodule:: qiskit.providers
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-providers-basicaer:
|
||||
|
||||
*************************
|
||||
qiskit.providers.basicaer
|
||||
*************************
|
||||
|
||||
.. currentmodule:: qiskit.providers.basicaer
|
||||
|
||||
|
||||
.. automodapi:: qiskit.providers.basicaer
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-providers-models:
|
||||
|
||||
***********************
|
||||
qiskit.providers.models
|
||||
***********************
|
||||
|
||||
.. currentmodule:: qiskit.providers.models
|
||||
|
||||
|
||||
.. automodapi:: qiskit.providers.models
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,22 +0,0 @@
|
|||
.. _qiskit-providers:
|
||||
|
||||
****************
|
||||
qiskit.providers
|
||||
****************
|
||||
|
||||
.. currentmodule:: qiskit.providers
|
||||
|
||||
|
||||
.. automodapi:: qiskit.providers
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
|
||||
Submodules
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
basicaer
|
||||
models
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-providers-basicaer:
|
||||
|
||||
.. automodule:: qiskit.providers.basicaer
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-providers-models:
|
||||
|
||||
.. automodule:: qiskit.providers.models
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-pulse:
|
||||
|
||||
.. automodule:: qiskit.pulse
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-pulse:
|
||||
|
||||
************
|
||||
qiskit.pulse
|
||||
************
|
||||
|
||||
.. currentmodule:: qiskit.pulse
|
||||
|
||||
|
||||
.. automodapi:: qiskit.pulse
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,13 +1,6 @@
|
|||
.. _qiskit-qasm:
|
||||
|
||||
************
|
||||
qiskit.qasm
|
||||
************
|
||||
|
||||
.. currentmodule:: qiskit.qasm
|
||||
|
||||
|
||||
.. automodapi:: qiskit.qasm
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
.. automodule:: qiskit.qasm
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -7,20 +7,27 @@ API Reference
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
assembler
|
||||
circuit
|
||||
compiler
|
||||
converters
|
||||
dagcircuit
|
||||
execute
|
||||
extensions/extensions
|
||||
providers/providers
|
||||
pulse/pulse
|
||||
visualization
|
||||
converters
|
||||
assembler
|
||||
dagcircuit
|
||||
extensions
|
||||
providers_basicaer
|
||||
providers
|
||||
providers_models
|
||||
pulse
|
||||
scheduler
|
||||
qasm
|
||||
qobj
|
||||
quantum_info/quantum_info
|
||||
quantum_info
|
||||
result
|
||||
tools/tools
|
||||
transpiler/transpiler
|
||||
tools
|
||||
tools_jupyter
|
||||
transpiler
|
||||
transpiler_passes
|
||||
transpiler_preset
|
||||
validation
|
||||
visualization
|
||||
|
|
|
@ -1,13 +1,6 @@
|
|||
.. _qiskit-qobj:
|
||||
|
||||
***********
|
||||
qiskit.qobj
|
||||
***********
|
||||
|
||||
.. currentmodule:: qiskit.qobj
|
||||
|
||||
|
||||
.. automodapi:: qiskit.qobj
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
.. automodule:: qiskit.qobj
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-quantum_info:
|
||||
|
||||
.. automodule:: qiskit.quantum_info
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -1,20 +0,0 @@
|
|||
.. _qiskit-quantum_info:
|
||||
|
||||
*******************
|
||||
qiskit.quantum_info
|
||||
*******************
|
||||
|
||||
.. currentmodule:: qiskit.quantum_info
|
||||
|
||||
|
||||
.. automodapi:: qiskit.quantum_info
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
|
||||
Submodules
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
synthesis/synthesis
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-quantum_info-synthesis:
|
||||
|
||||
*****************************
|
||||
qiskit.quantum_info.synthesis
|
||||
*****************************
|
||||
|
||||
.. currentmodule:: qiskit.quantum_info.synthesis
|
||||
|
||||
|
||||
.. automodapi:: qiskit.quantum_info.synthesis
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,13 +1,6 @@
|
|||
.. _qiskit-result:
|
||||
|
||||
*************
|
||||
qiskit.result
|
||||
*************
|
||||
|
||||
.. currentmodule:: qiskit.result
|
||||
|
||||
|
||||
.. automodapi:: qiskit.result
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
.. automodule:: qiskit.result
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-scheduler:
|
||||
|
||||
.. automodule:: qiskit.scheduler
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-tools:
|
||||
|
||||
.. automodule:: qiskit.tools
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-tools-events:
|
||||
|
||||
*******************
|
||||
qiskit.tools.events
|
||||
*******************
|
||||
|
||||
.. currentmodule:: qiskit.tools.events
|
||||
|
||||
|
||||
.. automodapi:: qiskit.tools.events
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-tools-monitor:
|
||||
|
||||
********************
|
||||
qiskit.tools.monitor
|
||||
********************
|
||||
|
||||
.. currentmodule:: qiskit.tools.monitor
|
||||
|
||||
|
||||
.. automodapi:: qiskit.tools.monitor
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-tools-qi:
|
||||
|
||||
***************
|
||||
qiskit.tools.qi
|
||||
***************
|
||||
|
||||
.. currentmodule:: qiskit.tools.qi
|
||||
|
||||
|
||||
.. automodapi:: qiskit.tools.qi
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,24 +0,0 @@
|
|||
.. _qiskit-tools:
|
||||
|
||||
************
|
||||
qiskit.tools
|
||||
************
|
||||
|
||||
.. currentmodule:: qiskit.tools
|
||||
|
||||
|
||||
.. automodapi:: qiskit.tools
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
|
||||
|
||||
Submodules
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
events/events
|
||||
monitor/monitor
|
||||
qi/qi
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-tools-jupyter:
|
||||
|
||||
.. automodule:: qiskit.tools.jupyter
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-transpiler:
|
||||
|
||||
.. automodule:: qiskit.transpiler
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-transpiler-mapping:
|
||||
|
||||
********************************
|
||||
qiskit.transpiler.passes.mapping
|
||||
********************************
|
||||
|
||||
.. currentmodule:: qiskit.transpiler.passes.mapping
|
||||
|
||||
|
||||
.. automodapi:: qiskit.transpiler.passes.mapping
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,21 +0,0 @@
|
|||
.. _qiskit-transpiler-passes:
|
||||
|
||||
************************
|
||||
qiskit.transpiler.passes
|
||||
************************
|
||||
|
||||
.. currentmodule:: qiskit.transpiler.passes
|
||||
|
||||
|
||||
.. automodapi:: qiskit.transpiler.passes
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
|
||||
Submodules
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
mapping/mapping
|
|
@ -1,13 +0,0 @@
|
|||
.. _qiskit-transpiler-preset-passmanagers:
|
||||
|
||||
*************************************
|
||||
qiskit.transpiler.preset_passmanagers
|
||||
*************************************
|
||||
|
||||
.. currentmodule:: qiskit.transpiler.preset_passmanagers
|
||||
|
||||
|
||||
.. automodapi:: qiskit.transpiler.preset_passmanagers
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
|
@ -1,22 +0,0 @@
|
|||
.. _qiskit-transpiler:
|
||||
|
||||
*****************
|
||||
qiskit.transpiler
|
||||
*****************
|
||||
|
||||
.. currentmodule:: qiskit.transpiler
|
||||
|
||||
|
||||
.. automodapi:: qiskit.transpiler
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
|
||||
Submodules
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
passes/passes
|
||||
preset_passmanagers/preset_passmanagers
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-transpiler-passes:
|
||||
|
||||
.. automodule:: qiskit.transpiler.passes
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -0,0 +1,6 @@
|
|||
.. _qiskit-transpiler-preset_passmanagers:
|
||||
|
||||
.. automodule:: qiskit.transpiler.preset_passmanagers
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
|
@ -1,13 +1,6 @@
|
|||
.. _qiskit-validation:
|
||||
|
||||
*****************
|
||||
qiskit.validation
|
||||
*****************
|
||||
|
||||
.. currentmodule:: qiskit.validation
|
||||
|
||||
|
||||
.. automodapi:: qiskit.validation
|
||||
:no-heading:
|
||||
:no-inheritance-diagram:
|
||||
:inherited-members:
|
||||
.. automodule:: qiskit.validation
|
||||
:no-members:
|
||||
:no-inherited-members:
|
||||
:no-special-members:
|
||||
|
|
|
@ -60,13 +60,13 @@ release = '0.12.0'
|
|||
extensions = [
|
||||
'sphinx.ext.napoleon',
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx_automodapi.automodapi',
|
||||
'sphinx.ext.autosummary',
|
||||
'sphinx.ext.mathjax',
|
||||
'sphinx.ext.viewcode',
|
||||
'sphinx.ext.extlinks',
|
||||
'sphinx_tabs.tabs',
|
||||
'jupyter_sphinx.execute',
|
||||
'sphinx_autodoc_typehints',
|
||||
'reno.sphinxext',
|
||||
]
|
||||
html_static_path = ['_static']
|
||||
|
|
|
@ -24,14 +24,12 @@ import warnings
|
|||
from . import util
|
||||
|
||||
# qiskit errors operator
|
||||
from .exceptions import QiskitError
|
||||
from qiskit.exceptions import QiskitError
|
||||
|
||||
# The main qiskit operators
|
||||
from qiskit.circuit import ClassicalRegister
|
||||
from qiskit.circuit import QuantumRegister
|
||||
from qiskit.circuit import QuantumCircuit
|
||||
from qiskit.execute import execute
|
||||
from qiskit.compiler import transpile, assemble, schedule
|
||||
|
||||
# The qiskit.extensions.x imports needs to be placed here due to the
|
||||
# mechanism for adding gates dynamically.
|
||||
|
@ -63,6 +61,11 @@ except ImportError:
|
|||
'or check your installation.',
|
||||
RuntimeWarning)
|
||||
|
||||
# Moved to after IBMQ and Aer imports due to import issues
|
||||
# with other modules that check for IBMQ (tools)
|
||||
from qiskit.execute import execute
|
||||
from qiskit.compiler import transpile, assemble, schedule
|
||||
|
||||
from .version import __version__
|
||||
from .version import _get_qiskit_versions
|
||||
|
||||
|
|
|
@ -12,8 +12,44 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Helper module for Qiskit assembler.
|
||||
"""
|
||||
========================================================
|
||||
Circuit and Schedule Assembler (:mod:`qiskit.assembler`)
|
||||
========================================================
|
||||
|
||||
.. currentmodule:: qiskit.assembler
|
||||
|
||||
Circuit Assembler
|
||||
=================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
assemble_circuits
|
||||
|
||||
Schedule Assembler
|
||||
==================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
assemble_schedules
|
||||
|
||||
Disassembler
|
||||
============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
disassemble
|
||||
|
||||
RunConfig
|
||||
=========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
RunConfig
|
||||
"""
|
||||
|
||||
from .assemble_circuits import assemble_circuits
|
||||
|
|
|
@ -62,22 +62,69 @@ class QuantumCircuit:
|
|||
* ``QuantumCircuit(QuantumRegister(4))``
|
||||
* ``QuantumCircuit(QuantumRegister(4), ClassicalRegister(3))``
|
||||
* ``QuantumCircuit(QuantumRegister(4, 'qr0'), QuantumRegister(2, 'qr1'))``
|
||||
|
||||
* If a list of ``int``, the amount of qubits and/or classical
|
||||
bits to include in the circuit. It can either be a single
|
||||
int for just the number of quantum bits, or 2 ints for the number of
|
||||
quantum bits and classical bits respectively.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
* ``QuantumCircuit(4) # A QuantumCircuit with 4 qubits``
|
||||
* ``QuantumCircuit(4, 3) # A QuantumCircuit with 4 qubits and 3 classical bits``
|
||||
|
||||
|
||||
name (str): the name of the quantum circuit. If not set, an
|
||||
automatically generated string will be assigned.
|
||||
|
||||
Raises:
|
||||
CircuitError: if the circuit name, if given, is not valid.
|
||||
|
||||
Examples:
|
||||
|
||||
Construct a simple Bell state circuit.
|
||||
|
||||
.. jupyter-execute::
|
||||
|
||||
from qiskit import QuantumCircuit
|
||||
|
||||
qc = QuantumCircuit(2, 2)
|
||||
qc.h(0)
|
||||
qc.cx(0, 1)
|
||||
qc.measure([0, 1], [0, 1])
|
||||
qc.draw()
|
||||
|
||||
Construct a 5 qubit GHZ circuit.
|
||||
|
||||
.. jupyter-execute::
|
||||
|
||||
from qiskit import QuantumCircuit
|
||||
|
||||
qc = QuantumCircuit(5)
|
||||
qc.h(0)
|
||||
qc.cx(0, range(1, 5))
|
||||
qc.measure_all()
|
||||
|
||||
Construct a 4 qubit Berstein-Vazirani circuit using registers.
|
||||
|
||||
.. jupyter-execute::
|
||||
|
||||
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
|
||||
|
||||
qr = QuantumRegister(3, 'q')
|
||||
anc = QuantumRegister(1, 'ancilla')
|
||||
cr = ClassicalRegister(3, 'c')
|
||||
qc = QuantumCircuit(qr, anc, cr)
|
||||
|
||||
qc.x(anc[0])
|
||||
qc.h(anc[0])
|
||||
qc.h(qr[0:3])
|
||||
qc.cx(qr[0:3], anc[0])
|
||||
qc.h(qr[0:3])
|
||||
qc.barrier(qr)
|
||||
qc.measure(qr, cr)
|
||||
|
||||
qc.draw()
|
||||
"""
|
||||
instances = 0
|
||||
prefix = 'circuit'
|
||||
|
|
|
@ -12,7 +12,22 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Helper module for Qiskit compiler.
|
||||
"""
|
||||
=============================================
|
||||
Compilation Routines (:mod:`qiskit.compiler`)
|
||||
=============================================
|
||||
|
||||
.. currentmodule:: qiskit.compiler
|
||||
|
||||
Circuit and Pulse Compilation Functions
|
||||
=======================================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
assemble
|
||||
schedule
|
||||
transpile
|
||||
|
||||
"""
|
||||
|
||||
|
|
|
@ -12,9 +12,20 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Helper module for simplified Qiskit usage.
|
||||
"""
|
||||
=============================================
|
||||
Circuit Converters (:mod:`qiskit.converters`)
|
||||
=============================================
|
||||
|
||||
The functions in this module provide convenience converters
|
||||
.. currentmodule:: qiskit.converters
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
circuit_to_dag
|
||||
dag_to_circuit
|
||||
circuit_to_instruction
|
||||
ast_to_dag
|
||||
"""
|
||||
|
||||
from .circuit_to_dag import circuit_to_dag
|
||||
|
|
|
@ -12,7 +12,30 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Module for DAG Circuits."""
|
||||
"""
|
||||
=======================================
|
||||
DAG Circuits (:mod:`qiskit.dagcircuit`)
|
||||
=======================================
|
||||
|
||||
.. currentmodule:: qiskit.dagcircuit
|
||||
|
||||
DAG Circuits
|
||||
============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
DAGCircuit
|
||||
DAGNode
|
||||
|
||||
Exceptions
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
DAGCircuitError
|
||||
"""
|
||||
from .dagcircuit import DAGCircuit
|
||||
from .dagnode import DAGNode
|
||||
from .exceptions import DAGCircuitError
|
||||
|
|
|
@ -13,10 +13,13 @@
|
|||
# that they have been altered from the originals.
|
||||
|
||||
"""
|
||||
Helper module for simplified Qiskit usage.
|
||||
=============================================
|
||||
Executing Experiments (:mod:`qiskit.execute`)
|
||||
=============================================
|
||||
|
||||
In general we recommend using the SDK modules directly. However, to get something
|
||||
running quickly we have provided this wrapper module.
|
||||
.. currentmodule:: qiskit.execute
|
||||
|
||||
.. autofunction:: execute
|
||||
"""
|
||||
from qiskit.compiler import transpile, assemble
|
||||
|
||||
|
@ -31,7 +34,8 @@ def execute(experiments, backend,
|
|||
schedule_los=None, meas_level=2, meas_return='avg',
|
||||
memory_slots=None, memory_slot_size=100, rep_time=None, parameter_binds=None,
|
||||
**run_config):
|
||||
"""Execute a list of circuits or pulse schedules on a backend.
|
||||
"""Execute a list of :class:`qiskit.circuit.QuantumCircuit` or
|
||||
:class:`qiskit.pulse.Schedule` on a backend.
|
||||
|
||||
The execution is asynchronous, and a handle to a job instance is returned.
|
||||
|
||||
|
@ -104,10 +108,10 @@ def execute(experiments, backend,
|
|||
How much optimization to perform on the circuits.
|
||||
Higher levels generate more optimized circuits,
|
||||
at the expense of longer transpilation time.
|
||||
0: no optimization
|
||||
1: light optimization
|
||||
2: heavy optimization
|
||||
3: even heavier optimization
|
||||
0: No optimization
|
||||
1: Light optimization
|
||||
2: Heavy optimization
|
||||
3: Highest optimization
|
||||
If None, level 1 will be chosen as default.
|
||||
|
||||
pass_manager (PassManager):
|
||||
|
@ -184,6 +188,37 @@ def execute(experiments, backend,
|
|||
|
||||
Raises:
|
||||
QiskitError: if the execution cannot be interpreted as either circuits or schedules
|
||||
|
||||
Example:
|
||||
Construct a 5 qubit GHZ circuit and execute 4321 shots on a backend.
|
||||
|
||||
.. jupyter-execute::
|
||||
:hide-code:
|
||||
:hide-output:
|
||||
|
||||
from unittest.mock import MagicMock
|
||||
import qiskit
|
||||
from qiskit.test.mock import FakeVigo
|
||||
|
||||
mock_ibmq = MagicMock()
|
||||
mock_provider = MagicMock()
|
||||
fake_vigo = FakeVigo()
|
||||
mock_provider.get_backend.return_value = fake_vigo
|
||||
mock_ibmq.get_provider.return_value = mock_provider
|
||||
qiskit.IBMQ = mock_ibmq
|
||||
|
||||
.. jupyter-execute::
|
||||
|
||||
from qiskit import QuantumCircuit, execute, BasicAer
|
||||
|
||||
backend = BasicAer.get_backend('qasm_simulator')
|
||||
|
||||
qc = QuantumCircuit(5, 5)
|
||||
qc.h(0)
|
||||
qc.cx(0, range(1, 5))
|
||||
qc.measure_all()
|
||||
|
||||
job = execute(qc, backend, shots=4321)
|
||||
"""
|
||||
# transpiling the circuits using given transpile options
|
||||
experiments = transpile(experiments,
|
||||
|
|
|
@ -12,8 +12,75 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Extensions to quantum circuits."""
|
||||
"""
|
||||
=====================================================
|
||||
Quantum Circuit Extensions (:mod:`qiskit.extensions`)
|
||||
=====================================================
|
||||
|
||||
.. currentmodule:: qiskit.extensions
|
||||
|
||||
Standard Extensions
|
||||
===================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Barrier
|
||||
ToffoliGate
|
||||
CHGate
|
||||
CrzGate
|
||||
FredkinGate
|
||||
Cu1Gate
|
||||
Cu3Gate
|
||||
CnotGate
|
||||
CyGate
|
||||
CzGate
|
||||
HGate
|
||||
IdGate
|
||||
MSGate
|
||||
RXGate
|
||||
RXXGate
|
||||
RYGate
|
||||
RZGate
|
||||
RZZGate
|
||||
SGate
|
||||
SdgGate
|
||||
SwapGate
|
||||
TdgGate
|
||||
U0Gate
|
||||
U1Gate
|
||||
U2Gate
|
||||
U3Gate
|
||||
XGate
|
||||
YGate
|
||||
ZGate
|
||||
|
||||
Unitary Extensions
|
||||
==================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
UnitaryGate
|
||||
|
||||
Simulator Extensions
|
||||
====================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Snapshot
|
||||
|
||||
Initialization
|
||||
==============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Initialize
|
||||
"""
|
||||
|
||||
from qiskit.extensions.quantum_initializer.initializer import Initialize
|
||||
from .standard import *
|
||||
from .unitary import UnitaryGate
|
||||
from .simulator import Snapshot
|
||||
|
|
|
@ -17,9 +17,9 @@ Simulator command to snapshot internal simulator representation.
|
|||
|
||||
import warnings
|
||||
|
||||
from qiskit import QuantumCircuit
|
||||
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
||||
from qiskit.circuit.quantumregister import QuantumRegister
|
||||
from qiskit.circuit import Instruction
|
||||
from qiskit.circuit.instruction import Instruction
|
||||
from qiskit.extensions.exceptions import QiskitError, ExtensionError
|
||||
|
||||
|
||||
|
|
|
@ -12,7 +12,42 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Module for Providers, Backends and Jobs."""
|
||||
"""
|
||||
======================================
|
||||
Base Objects (:mod:`qiskit.providers`)
|
||||
======================================
|
||||
|
||||
.. currentmodule:: qiskit.providers
|
||||
|
||||
Base Objects
|
||||
============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
BaseProvider
|
||||
BaseBackend
|
||||
BaseJob
|
||||
|
||||
Job Status
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
JobStatus
|
||||
|
||||
Exceptions
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
QiskitBackendNotFoundError
|
||||
BackendPropertyError
|
||||
JobError
|
||||
JobTimeoutError
|
||||
"""
|
||||
|
||||
import pkgutil
|
||||
|
||||
|
|
|
@ -12,7 +12,57 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""BasicAer Provider: Contains Python simulators."""
|
||||
"""
|
||||
====================================================================
|
||||
BasicAer: Python-based Simulators (:mod:`qiskit.providers.basicaer`)
|
||||
====================================================================
|
||||
|
||||
.. currentmodule:: qiskit.providers.basicaer
|
||||
|
||||
A module of Python-based quantum simulators. Simulators are accessed
|
||||
via the `BasicAer` provider, e.g.:
|
||||
|
||||
.. jupyter-execute::
|
||||
|
||||
from qiskit import BasicAer
|
||||
|
||||
backend = BasicAer.get_backend('qasm_simulator')
|
||||
|
||||
|
||||
Simulators
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
QasmSimulatorPy
|
||||
StatevectorSimulatorPy
|
||||
UnitarySimulatorPy
|
||||
|
||||
Provider
|
||||
========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
BasicAerProvider
|
||||
|
||||
Job Class
|
||||
=========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
BasicAerJob
|
||||
|
||||
Exceptions
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
BasicAerError
|
||||
"""
|
||||
|
||||
from .basicaerprovider import BasicAerProvider
|
||||
from .basicaerjob import BasicAerJob
|
||||
|
|
|
@ -12,7 +12,32 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Qiskit schema-conformant objects used by the backends and providers."""
|
||||
"""
|
||||
================================================
|
||||
Backend Objects (:mod:`qiskit.providers.models`)
|
||||
================================================
|
||||
|
||||
.. currentmodule:: qiskit.providers.models
|
||||
|
||||
Qiskit schema-conformant objects used by the backends and providers.
|
||||
|
||||
Backend Objects
|
||||
===============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
BackendConfiguration
|
||||
BackendProperties
|
||||
BackendStatus
|
||||
QasmBackendConfiguration
|
||||
PulseBackendConfiguration
|
||||
UchannelLO
|
||||
GateConfig
|
||||
PulseDefaults
|
||||
Command
|
||||
JobStatus
|
||||
"""
|
||||
|
||||
from .backendconfiguration import (BackendConfiguration, PulseBackendConfiguration,
|
||||
QasmBackendConfiguration, UchannelLO, GateConfig)
|
||||
|
|
|
@ -12,7 +12,71 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Module for Pulses."""
|
||||
"""
|
||||
===============================
|
||||
OpenPulse (:mod:`qiskit.pulse`)
|
||||
===============================
|
||||
|
||||
.. currentmodule:: qiskit.pulse
|
||||
|
||||
Channels
|
||||
========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
PulseChannelSpec
|
||||
DriveChannel
|
||||
MeasureChannel
|
||||
AcquireChannel
|
||||
ControlChannel
|
||||
RegisterSlot
|
||||
MemorySlot
|
||||
|
||||
Commands
|
||||
========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Instruction
|
||||
Acquire
|
||||
FrameChange
|
||||
PersistentValue
|
||||
SamplePulse
|
||||
Snapshot
|
||||
Kernel
|
||||
Discriminator
|
||||
Delay
|
||||
functional_pulse
|
||||
|
||||
Schedules
|
||||
=========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Schedule
|
||||
ScheduleComponent
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
CmdDef
|
||||
LoConfig
|
||||
LoRange
|
||||
|
||||
Exceptions
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
PulseError
|
||||
"""
|
||||
|
||||
from .channels import (PulseChannelSpec, DriveChannel,
|
||||
MeasureChannel, AcquireChannel,
|
||||
|
|
|
@ -12,9 +12,18 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Tools for QASM.
|
||||
"""
|
||||
=========================
|
||||
Qasm (:mod:`qiskit.qasm`)
|
||||
=========================
|
||||
|
||||
Use Unrollers in qiskit.unroll to convert a QASM specification to a qiskit circuit.
|
||||
.. currentmodule:: qiskit.qasm
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Qasm
|
||||
QasmError
|
||||
"""
|
||||
|
||||
from numpy import pi
|
||||
|
|
|
@ -12,7 +12,63 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Module for the Qobj structure."""
|
||||
"""
|
||||
=========================
|
||||
Qobj (:mod:`qiskit.qobj`)
|
||||
=========================
|
||||
|
||||
.. currentmodule:: qiskit.qobj
|
||||
|
||||
Base
|
||||
====
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Qobj
|
||||
QobjInstruction
|
||||
QobjExperimentHeader
|
||||
QobjExperimentConfig
|
||||
QobjExperiment
|
||||
QobjConfig
|
||||
QobjHeader
|
||||
|
||||
Qasm
|
||||
====
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
QasmQobj
|
||||
QasmQobjInstruction
|
||||
QasmQobjExperimentConfig
|
||||
QasmQobjExperiment
|
||||
QasmQobjConfig
|
||||
|
||||
Pulse
|
||||
=====
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
PulseQobj
|
||||
PulseQobjInstruction
|
||||
PulseQobjExperimentConfig
|
||||
PulseQobjExperiment
|
||||
PulseQobjConfig
|
||||
QobjMeasurementOption
|
||||
PulseLibraryItem
|
||||
PulseLibraryItemSchema
|
||||
PulseQobjInstructionSchema
|
||||
|
||||
Validation
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
validate_qobj_against_schema
|
||||
"""
|
||||
|
||||
from .models.base import (QobjInstruction, QobjExperimentHeader, QobjExperimentConfig,
|
||||
QobjExperiment, QobjConfig, QobjHeader)
|
||||
|
|
|
@ -12,7 +12,74 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Quantum Information methods."""
|
||||
"""
|
||||
================================================
|
||||
Quantum Information (:mod:`qiskit.quantum_info`)
|
||||
================================================
|
||||
|
||||
.. currentmodule:: qiskit.quantum_info
|
||||
|
||||
Operators
|
||||
=========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Operator
|
||||
Pauli
|
||||
pauli_group
|
||||
|
||||
States
|
||||
======
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Statevector
|
||||
DensityMatrix
|
||||
|
||||
Channels
|
||||
========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Choi
|
||||
SuperOp
|
||||
Kraus
|
||||
Stinespring
|
||||
Chi
|
||||
PTM
|
||||
|
||||
Measures
|
||||
========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
state_fidelity
|
||||
|
||||
Random
|
||||
======
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
random_unitary
|
||||
random_state
|
||||
random_density_matrix
|
||||
|
||||
Synthesis
|
||||
=========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
euler_angles_1q
|
||||
two_qubit_cnot_decompose
|
||||
TwoQubitBasisDecomposer
|
||||
|
||||
"""
|
||||
|
||||
from .operators.operator import Operator
|
||||
from .operators.pauli import Pauli, pauli_group
|
||||
|
@ -22,3 +89,5 @@ from .states import Statevector, DensityMatrix
|
|||
from .states.states import basis_state, projector, purity
|
||||
from .states.measures import state_fidelity
|
||||
from .random import random_unitary, random_state, random_density_matrix
|
||||
from .synthesis import (TwoQubitBasisDecomposer, euler_angles_1q,
|
||||
two_qubit_cnot_decompose)
|
||||
|
|
|
@ -12,7 +12,19 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Module for working with results."""
|
||||
"""
|
||||
=========================================
|
||||
Experiment Results (:mod:`qiskit.result`)
|
||||
=========================================
|
||||
|
||||
.. currentmodule:: qiskit.result
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Result
|
||||
ResultError
|
||||
"""
|
||||
|
||||
from .result import Result
|
||||
from .exceptions import ResultError
|
||||
|
|
|
@ -12,7 +12,21 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Module for scheduling pulse `Schedule`s from `QuantumCircuit`s."""
|
||||
"""
|
||||
===========================================
|
||||
Circuit Scheduler (:mod:`qiskit.scheduler`)
|
||||
===========================================
|
||||
|
||||
.. currentmodule:: qiskit.scheduler
|
||||
|
||||
Circuit to pulse scheduling functionality
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
schedule_circuit
|
||||
ScheduleConfig
|
||||
"""
|
||||
|
||||
from qiskit.scheduler.config import ScheduleConfig
|
||||
from qiskit.scheduler.schedule_circuit import schedule_circuit
|
||||
|
|
|
@ -12,12 +12,53 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Helper module for simplified Qiskit usage.
|
||||
"""
|
||||
==================================
|
||||
Qiskit Tools (:mod:`qiskit.tools`)
|
||||
==================================
|
||||
|
||||
The functions in this module provide convenience helpers for accessing commonly
|
||||
used features of the SDK in a simplified way. They support a small subset of
|
||||
scenarios and flows: for more advanced usage, it is encouraged to instead
|
||||
refer to the documentation of each component and use them separately.
|
||||
.. currentmodule:: qiskit.tools
|
||||
|
||||
Parallel Routines
|
||||
=================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
parallel_map
|
||||
|
||||
Monitoring
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
job_monitor
|
||||
backend_monitor
|
||||
backend_overview
|
||||
|
||||
Quantum Information
|
||||
===================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
qft
|
||||
partial_trace
|
||||
vectorize
|
||||
devectorize
|
||||
choi_to_pauli
|
||||
chop, outer
|
||||
entropy
|
||||
shannon_entropy
|
||||
concurrence
|
||||
entanglement_of_formation
|
||||
mutual_information
|
||||
is_pos_def
|
||||
"""
|
||||
|
||||
from .parallel import parallel_map
|
||||
from .monitor import (job_monitor, backend_monitor, backend_overview)
|
||||
from .qi import (qft, partial_trace, vectorize, devectorize, choi_to_pauli,
|
||||
chop, outer, entropy, shannon_entropy, concurrence,
|
||||
entanglement_of_formation, mutual_information, is_pos_def)
|
||||
|
|
|
@ -12,9 +12,85 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Initialize the Jupyter routines.
|
||||
"""
|
||||
===========================================
|
||||
Jupyter Tools (:mod:`qiskit.tools.jupyter`)
|
||||
===========================================
|
||||
|
||||
.. currentmodule:: qiskit.tools.jupyter
|
||||
|
||||
A Collection of Jupyter magic functions and tools
|
||||
that extend the functionality of Qiskit.
|
||||
|
||||
Overview of all available backends
|
||||
==================================
|
||||
|
||||
.. code-block::
|
||||
|
||||
from qiskit import IBMQ
|
||||
import qiskit.tools.jupyter
|
||||
%matplotlib inline
|
||||
|
||||
IBMQ.load_account()
|
||||
|
||||
%qiskit_backend_overview
|
||||
|
||||
|
||||
Detailed information on a single backend
|
||||
========================================
|
||||
|
||||
.. code-block::
|
||||
|
||||
from qiskit import IBMQ
|
||||
import qiskit.tools.jupyter
|
||||
%matplotlib inline
|
||||
|
||||
IBMQ.load_account()
|
||||
provider = IBMQ.get_provider(hub='ibm-q')
|
||||
backend = provider.get_backend('ibmq_vigo')
|
||||
backend
|
||||
|
||||
|
||||
Load Qiskit Job Watcher
|
||||
=======================
|
||||
|
||||
.. code-block::
|
||||
|
||||
import qiskit.tools.jupyter
|
||||
%qiskit_job_watcher
|
||||
|
||||
|
||||
HTMLProgressBar
|
||||
===============
|
||||
|
||||
.. jupyter-execute::
|
||||
|
||||
import numpy as np
|
||||
from qiskit.tools.parallel import parallel_map
|
||||
import qiskit.tools.jupyter
|
||||
|
||||
%qiskit_progress_bar
|
||||
parallel_map(np.sin, np.linspace(0,10,100));
|
||||
|
||||
|
||||
Qiskit version table
|
||||
====================
|
||||
|
||||
.. jupyter-execute::
|
||||
|
||||
import qiskit.tools.jupyter
|
||||
%qiskit_version_table
|
||||
|
||||
|
||||
Qiskit copyright
|
||||
================
|
||||
|
||||
.. jupyter-execute::
|
||||
|
||||
import qiskit.tools.jupyter
|
||||
%qiskit_copyright
|
||||
|
||||
"""
|
||||
import warnings
|
||||
|
||||
from IPython import get_ipython # pylint: disable=import-error
|
||||
|
|
|
@ -13,3 +13,7 @@
|
|||
# that they have been altered from the originals.
|
||||
|
||||
"""A collection of useful quantum information functions"""
|
||||
|
||||
from .qi import (qft, partial_trace, vectorize, devectorize, choi_to_pauli,
|
||||
chop, outer, entropy, shannon_entropy, concurrence,
|
||||
entanglement_of_formation, mutual_information, is_pos_def)
|
||||
|
|
|
@ -247,7 +247,7 @@ def devectorize(vectorized_mat, method='col'):
|
|||
return None
|
||||
|
||||
|
||||
def choi_to_rauli(choi, order=1):
|
||||
def choi_to_pauli(choi, order=1):
|
||||
"""
|
||||
Convert a Choi-matrix to a Pauli-basis superoperator.
|
||||
|
||||
|
|
|
@ -12,7 +12,58 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Utils for transpiler."""
|
||||
"""
|
||||
=====================================
|
||||
Transpiler (:mod:`qiskit.transpiler`)
|
||||
=====================================
|
||||
|
||||
.. currentmodule:: qiskit.transpiler
|
||||
|
||||
Circuit Transpilation
|
||||
=====================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
transpile_circuit
|
||||
|
||||
Pass Managment
|
||||
==============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
PassManager
|
||||
PropertySet
|
||||
FlowController
|
||||
|
||||
Layout and Topology
|
||||
===================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Layout
|
||||
CouplingMap
|
||||
|
||||
Fenced Objects
|
||||
==============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
FencedDAGCircuit
|
||||
FencedPropertySet
|
||||
|
||||
Exceptions
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
TranspilerError
|
||||
TranspilerAccessError
|
||||
"""
|
||||
|
||||
from .runningpassmanager import FlowController
|
||||
from .passmanager import PassManager
|
||||
|
|
|
@ -12,7 +12,105 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Module containing transpiler pass."""
|
||||
"""
|
||||
===================================================
|
||||
Transpiler Passes (:mod:`qiskit.transpiler.passes`)
|
||||
===================================================
|
||||
|
||||
.. currentmodule:: qiskit.transpiler.passes
|
||||
|
||||
Layout Selection
|
||||
================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
TrivialLayout
|
||||
DenseLayout
|
||||
NoiseAdaptiveLayout
|
||||
ApplyLayout
|
||||
SetLayout
|
||||
EnlargeWithAncilla
|
||||
FullAncillaAllocation
|
||||
|
||||
Unrolling
|
||||
=========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Unroller
|
||||
Unroll3qOrMore
|
||||
Decompose
|
||||
|
||||
Swap Mapping
|
||||
============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
BasicSwap
|
||||
LookaheadSwap
|
||||
StochasticSwap
|
||||
|
||||
Gate Optimizations
|
||||
==================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Optimize1qGates
|
||||
CXCancellation
|
||||
CommutationAnalysis
|
||||
CommutativeCancellation
|
||||
|
||||
2Q Block Optimization
|
||||
=====================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Collect2qBlocks
|
||||
ConsolidateBlocks
|
||||
|
||||
Topology Validation
|
||||
===================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
CheckMap
|
||||
CheckCXDirection
|
||||
CXDirection
|
||||
|
||||
DAG Properties
|
||||
==============
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
Width
|
||||
Depth
|
||||
Size
|
||||
CountOps
|
||||
CountOpsLongestPath
|
||||
NumTensorFactors
|
||||
DAGFixedPoint
|
||||
DAGLongestPath
|
||||
|
||||
Additional Passes
|
||||
=================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
MergeAdjacentBarriers
|
||||
BarrierBeforeFinalMeasurements
|
||||
RemoveDiagonalGatesBeforeMeasure
|
||||
RemoveFinalMeasurements
|
||||
RemoveResetInZeroState
|
||||
|
||||
"""
|
||||
|
||||
from .unroller import Unroller
|
||||
from .cx_cancellation import CXCancellation
|
||||
|
|
|
@ -33,8 +33,7 @@ class NoiseAdaptiveLayout(AnalysisPass):
|
|||
Prakash Murali, Jonathan M. Baker, Ali Javadi-Abhari, Frederic T. Chong, Margaret R. Martonosi
|
||||
ASPLOS 2019 (arXiv:1901.11054).
|
||||
|
||||
Greedy mapping heuristic
|
||||
------------------------
|
||||
Methods:
|
||||
|
||||
Ordering of edges:
|
||||
Map qubits edge-by-edge in the order of decreasing frequency of occurrence in the program dag.
|
||||
|
@ -50,7 +49,7 @@ class NoiseAdaptiveLayout(AnalysisPass):
|
|||
participate in any CNOT), map them to any available
|
||||
hardware qubit.
|
||||
|
||||
Note:
|
||||
Notes:
|
||||
even though a `layout` is not strictly a property of the DAG,
|
||||
in the transpiler architecture it is best passed around between passes
|
||||
by being set in `property_set`.
|
||||
|
|
|
@ -12,7 +12,21 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Preset PassManager flows."""
|
||||
"""
|
||||
==================================================================
|
||||
Preset Passmanagers (:mod:`qiskit.transpiler.preset_passmanagers`)
|
||||
==================================================================
|
||||
|
||||
.. currentmodule:: qiskit.transpiler.preset_passmanagers
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
level_0_pass_manager
|
||||
level_1_pass_manager
|
||||
level_2_pass_manager
|
||||
level_3_pass_manager
|
||||
"""
|
||||
|
||||
from .level0 import level_0_pass_manager
|
||||
from .level1 import level_1_pass_manager
|
||||
|
|
|
@ -12,7 +12,32 @@
|
|||
# copyright notice, and modified files need to carry a notice indicating
|
||||
# that they have been altered from the originals.
|
||||
|
||||
"""Models and schemas for Terra."""
|
||||
"""
|
||||
=============================================
|
||||
Models and Schemas (:mod:`qiskit.validation`)
|
||||
=============================================
|
||||
|
||||
.. currentmodule:: qiskit.validation
|
||||
|
||||
Base
|
||||
====
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
BaseModel
|
||||
BaseSchema
|
||||
bind_schema
|
||||
ModelTypeValidator
|
||||
|
||||
Exceptions
|
||||
==========
|
||||
|
||||
.. autosummary::
|
||||
:toctree: ../stubs/
|
||||
|
||||
ModelValidationError
|
||||
"""
|
||||
|
||||
from .base import BaseModel, BaseSchema, bind_schema, ModelTypeValidator
|
||||
from .exceptions import ModelValidationError
|
||||
|
|
|
@ -80,7 +80,6 @@ Pass Manager Visualizations
|
|||
|
||||
pass_manager_drawer
|
||||
|
||||
|
||||
Exceptions
|
||||
==========
|
||||
|
||||
|
|
|
@ -52,8 +52,9 @@ def dag_drawer(dag, scale=0.7, filename=None, style='color'):
|
|||
ImportError: when nxpd or pydot not installed.
|
||||
|
||||
Example:
|
||||
.. code-block::
|
||||
.. jupyter-execute::
|
||||
|
||||
%matplotlib inline
|
||||
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
|
||||
from qiskit.dagcircuit import DAGCircuit
|
||||
from qiskit.converters import circuit_to_dag
|
||||
|
|
|
@ -292,16 +292,18 @@ def plot_circuit_layout(circuit, backend, view='virtual'):
|
|||
import matplotlib.pyplot as plt
|
||||
%matplotlib inline
|
||||
|
||||
provider = IBMQ.get_provider(group='open')
|
||||
ghz = QuantumCircuit(5, 5)
|
||||
IBMQ.load_account()
|
||||
|
||||
ghz = QuantumCircuit(3, 3)
|
||||
ghz.h(0)
|
||||
for idx in range(1,5):
|
||||
for idx in range(1,3):
|
||||
ghz.cx(0,idx)
|
||||
ghz.barrier(range(5))
|
||||
ghz.measure(range(5), range(5))
|
||||
backend = provider.get_backend('ibmq_16_melbourne')
|
||||
new_circ_lv0 = transpile(ghz, backend=backend, optimization_level=0)
|
||||
plot_circuit_layout(new_circ_lv0, backend)
|
||||
ghz.measure(range(3), range(3))
|
||||
|
||||
provider = IBMQ.get_provider(hub='ibm-q')
|
||||
backend = provider.get_backend('ibmq_vigo')
|
||||
new_circ_lv3 = transpile(ghz, backend=backend, optimization_level=3)
|
||||
plot_circuit_layout(new_circ_lv3, backend)
|
||||
"""
|
||||
if circuit._layout is None:
|
||||
raise QiskitError('Circuit has no layout. '
|
||||
|
@ -366,9 +368,10 @@ def plot_error_map(backend, figsize=(12, 9), show_title=True):
|
|||
from qiskit import QuantumCircuit, BasicAer, execute, IBMQ
|
||||
from qiskit.visualization import plot_error_map
|
||||
%matplotlib inline
|
||||
provider = IBMQ.load_account()
|
||||
accountProvider = IBMQ.get_provider(hub='ibm-q')
|
||||
backend = accountProvider.get_backend('ibmq_vigo')
|
||||
|
||||
IBMQ.load_account()
|
||||
provider = IBMQ.get_provider(hub='ibm-q')
|
||||
backend = provider.get_backend('ibmq_vigo')
|
||||
plot_error_map(backend)
|
||||
"""
|
||||
color_map = cm.viridis
|
||||
|
|
|
@ -62,6 +62,7 @@ def pass_manager_drawer(pass_manager, filename, style=None, raw=False):
|
|||
Example:
|
||||
.. code-block::
|
||||
|
||||
%matplotlib inline
|
||||
from qiskit import QuantumCircuit
|
||||
from qiskit.compiler import transpile
|
||||
from qiskit.transpiler import PassManager
|
||||
|
|
|
@ -49,8 +49,10 @@ def pulse_drawer(data, dt=1, style=None, filename=None,
|
|||
table (bool): Draw event table for supported commands
|
||||
label (bool): Label individual instructions
|
||||
framechange (bool): Add framechange indicators
|
||||
|
||||
Returns:
|
||||
matplotlib.figure: A matplotlib figure object for the pulse envelope
|
||||
|
||||
Raises:
|
||||
VisualizationError: when invalid data is given or lack of information
|
||||
ImportError: when matplotlib is not installed
|
||||
|
|
|
@ -21,5 +21,5 @@ reno>=2.11.0
|
|||
Sphinx>=1.8.3
|
||||
sphinx-rtd-theme>=0.4.0
|
||||
sphinx-tabs>=1.1.11
|
||||
sphinx-automodapi
|
||||
sphinx-autodoc-typehints
|
||||
jupyter-sphinx
|
|
@ -25,7 +25,7 @@ import numpy as np
|
|||
from qiskit.tools.qi.qi import partial_trace, vectorize, devectorize, outer
|
||||
from qiskit.tools.qi.qi import concurrence, qft, chop
|
||||
from qiskit.tools.qi.qi import shannon_entropy, entropy, mutual_information
|
||||
from qiskit.tools.qi.qi import choi_to_rauli
|
||||
from qiskit.tools.qi.qi import choi_to_pauli
|
||||
from qiskit.tools.qi.qi import entanglement_of_formation, is_pos_def
|
||||
from qiskit.tools.qi.qi import __eof_qubit as eof_qubit
|
||||
from qiskit.quantum_info import purity
|
||||
|
@ -226,7 +226,7 @@ class TestQI(QiskitTestCase):
|
|||
[1, 0, 1, 0],
|
||||
[0.5, 0.5, 0.5, 0.5],
|
||||
[0, 1, 0, 1]])
|
||||
res = choi_to_rauli(input_matrix)
|
||||
res = choi_to_pauli(input_matrix)
|
||||
expected = np.array([[2.0+0.j, 2.25+0.0j, 0.0+0.75j, -1.0+0.0j],
|
||||
[1.75+0.j, 2.5+0.j, 0.-1.5j, 0.75+0.0j],
|
||||
[0.0-0.25j, 0.0+0.5j, -0.5+0.0j, 0.0-1.25j],
|
||||
|
|
Loading…
Reference in New Issue