-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
# Conflicts: # qctoolkit/pulses/sequence_pulse_template.py # qctoolkit/pulses/table_pulse_template.py # tests/pulses/sequence_pulse_template_tests.py
- Loading branch information
Showing
67 changed files
with
16,419 additions
and
309 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,4 +5,5 @@ doc/build/* | |
.eggs* | ||
*.egg-info* | ||
build/* | ||
dist/* | ||
dist/* | ||
doc/source/examples/.ipynb_checkpoints/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# qc-toolkit: Quantum Computing Toolkit - Documentation | ||
|
||
This folder contains texts, configuration and scripts which are used to compile the documentation using [sphinx](http://www.sphinx-doc.org/en/stable/). It also contains usage examples for the qctoolkit. | ||
You may either build the documentation yourself or read it on [readthedocs](http://qc-toolkit.readthedocs.org/).[![Documentation Status](https://readthedocs.org/projects/qc-toolkit/badge/?version=latest)](http://qc-toolkit.readthedocs.org/en/latest/?badge=latest) | ||
|
||
|
||
## Examples | ||
In the subdirectory *examples* you can find various [Jupyter notebook](http://jupyter.org/) files providing some step-by-step examples of how the qctoolkit can be used. These can be explored in an interactive fashion by running the *Jupyter notebook* application inside the folder. However, a static version will also be included in the documentation created with *sphinx*. | ||
|
||
## Building the Documentation | ||
To build the documentation, you will need [sphinx](http://www.sphinx-doc.org/en/stable/) and [nbsphinx](https://nbsphinx.readthedocs.org/) which, in turn, requires [pandoc](http://pandoc.org/). If the last two are not present, the examples won't be included in the documentation. | ||
Users of Anaconda on MS Windows may install these by executing `pip install sphinx nbsphinx` and `conda install -c https://conda.binstar.org/asmeurer pandoc`. | ||
|
||
The documentation is built by invoking `make <format>` inside the */doc* directory, where `<format>` is an output format supported by *sphinx*, e.g., `html`. The output will then be found in `/doc/build/<target>`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
sphinx>=1.4 | ||
nbsphinx | ||
ipykernel |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
.. _branching: | ||
|
||
Conditional Branching | ||
--------------------- | ||
|
||
The qctoolkit was designed to model conditional branching in pulse execution using the classes :class:`.BranchPulseTemplate` and :class:`.LoopPulseTemplate` of the :ref:`pulse template definition classes <pulsetemplates>`. The software is intended to support use of trigger-based hardware jumps between waveforms as well as software-based evaluation of branching conditions, if the hardware does not support triggers or highly sophisticated evaluation of measured data is required. These options are represented as instances of the :class:`.Condition` class: :class:`.BranchPulseTemplate` and :class:`.LoopPulseTemplate` both contain unique identifiers (chosen by the user) of a condition. In the beginning of the :ref:`sequencing process <sequencing>`, the user provides a dictionary of :class:`.Condition` instances which are used to determine how the conditions for each template are evaluated. Currently, two different subclasses of :class:`.Condition` exist: :class:`.SoftwareCondition` represents a software-evaluated condition and accepts a function reference to any evaluation function which must return a boolean value indicating whether or not the condition is fulfilled or None, if it cannot yet be evaluated; :class:`.HardwareCondition` represents trigger-based hardware evaluation and basically stores a reference to a trigger which will later be evaluated by the specific hardware driver to set up the device accordingly. Note that software-based evaluation will interrupt the sequencing process and thus the execution of the pulse if the evaluation cannot be performed during the sequencing run, e.g., if the evaluation of the condition is based on measurement data made during pulse execution. In this case, the pulse instruction sequence is only generated up to the branching and must be re-invoked later on, after executing this first part and obtaining the required data. Software-based evaluation is thus not feasible when high performance is required. | ||
|
||
Future Work | ||
^^^^^^^^^^^ | ||
Currently, there is no detailed concept on hardware abstraction and thus no meaningful representation of triggers and no hardware driver implementation that configures any device. This is still an open task. | ||
|
||
It is quite common for hardware to allow triggers that are represented not only a boolean signal but, e.g., any 8-bit signal, thus enabling more than two branching options. While this could still be represented by the current classes by nesting :class:`.BranchPulseTemplate` objects and configuring triggers appropriately, the implementation of a template class which acts like a C-style switch statement might be a worthwhile consideration. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
Concepts | ||
======== | ||
|
||
This section will explain the fundamental design concepts of the qctoolkit. | ||
|
||
.. toctree:: | ||
pulsetemplates | ||
serialization | ||
branching | ||
sequencing |
Oops, something went wrong.