-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #34 from qua-platform/documentation-beta
Full Documentation
- Loading branch information
Showing
38 changed files
with
2,546 additions
and
1,056 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 |
---|---|---|
@@ -1,17 +1,64 @@ | ||
# QuAM (Quantum Abstract Machine) | ||
|
||
Welcome to QuAM! | ||
The documentation is currently being added to the QM documentation. In the mean time, | ||
you can view the documentation files in `docs`. | ||
In particular, this includes installation instructions at `docs/getting-started.md`. | ||
|
||
You can also run the documentation website locally as follows: | ||
1. Open terminal / Powershell and navigate to the root QuAM folder | ||
2. Ensure you are in a virtual environment. | ||
See installation instructions in `docs/getting-started.md` for details | ||
2. Run the following commands: | ||
``` | ||
pip install ".[docs]" | ||
mkdocs serve | ||
Here's a README template for the QuAM GitHub repository front page. This README provides a concise overview of QuAM, useful links, installation instructions, and a placeholder for code examples: | ||
|
||
--- | ||
|
||
# QuAM: Quantum Abstract Machine | ||
|
||
## Overview | ||
QuAM (Quantum Abstract Machine) is an innovative software framework designed to provide an abstraction layer over the QUA programming language, facilitating a more intuitive interaction with quantum computing platforms. Aimed primarily at physicists and researchers, QuAM allows users to think and operate in terms of qubits and quantum operations rather than the underlying hardware specifics. | ||
|
||
Explore detailed documentation and get started with QuAM here: [QuAM Documentation](ENTER_URL_HERE). | ||
<!-- TODO --> | ||
|
||
## Key Features | ||
- **Abstraction Layer**: Simplifies quantum programming by providing higher-level abstractions for qubit operations. | ||
- **Component-Based Structure**: Utilize modular components like Mixers and IQChannels for flexible quantum circuit design. | ||
- **Automated Configuration**: Generate QUA configurations from QuAM setups seamlessly. | ||
- **Extensibility**: Extend QuAM with custom classes to handle complex quantum computing scenarios. | ||
- **State Management**: Features robust tools for saving and loading your quantum states, promoting reproducibility and consistency. | ||
|
||
## Installation | ||
To install QuAM, follow these simple steps: | ||
|
||
1. Ensure you have Python ≥ 3.8 installed on your system. | ||
2. Clone the repository: | ||
```bash | ||
git clone https://github.com/qua-platform/quam.git | ||
``` | ||
3. Navigate to the cloned directory and install the required dependencies: | ||
```bash | ||
cd quam | ||
pip install . | ||
``` | ||
|
||
## Quick Start | ||
Here’s a basic example to get you started with QuAM: | ||
|
||
```python | ||
from quam.components import BasicQuAM, SingleChannel, pulses | ||
|
||
# Create a root-level QuAM instance | ||
machine = BasicQuAM() | ||
|
||
# Add an OPX output channel | ||
channel = SingleChannel(opx_output=("con1", 1)) | ||
machine.channels["output"] = channel | ||
|
||
# Add a Gaussian pulse to the channel | ||
channel.operations["gaussian"] = pulses.Gaussian( | ||
length=100, # Pulse length in ns | ||
amplitude=0.5, # Peak amplitude of Gaussian pulse | ||
sigma=20, # Standard deviation of Guassian pulse | ||
) | ||
|
||
# Play the Gaussian pulse on the channel within a QUA program | ||
with program() as prog: | ||
channel.play("gaussian") | ||
|
||
# Generate the QUA configuration from QuAM | ||
qua_configuration = machine.generate_config() | ||
``` | ||
3. Navigate to `127.0.0.1:8000` | ||
|
||
|
||
## License | ||
QuAM is released under the BSD-3 License. See the LICENSE file for more details. |
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 @@ | ||
# BasicQuAM API | ||
|
||
::: quam.components.basic_quam |
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 @@ | ||
# QuAM Channels API | ||
|
||
::: quam.components.channels |
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 @@ | ||
# QuAM Hardware API | ||
|
||
::: quam.components.hardware |
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,11 @@ | ||
# Welcome to the QuAM Octave API Documentation | ||
|
||
The Octave component in the Quantum Abstract Machine (QuAM) manages signal upconversion and downconversion through its frequency converters. This section provides an API guide for setting up and customizing the Octave, detailing its integration with quantum processors for efficient signal processing. Explore the capabilities, configuration options, and practical examples to enhance your quantum operations with Octave's advanced functionalities. | ||
|
||
::: quam.components.octave | ||
options: | ||
members: | ||
- Octave | ||
- OctaveFrequencyConverter | ||
- OctaveUpConverter | ||
- OctaveDownConverter |
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,9 @@ | ||
# QuAM Pulses API | ||
|
||
Welcome to the QuAM Pulses API Documentation. | ||
The QuAM Pulses module offers a versatile framework for creating and controlling pulse schemes essential for quantum operations. | ||
Information can be found in [QuAM Pulses Documentation](/components/pulses) in the User Guide. | ||
|
||
This section provides detailed API references for various pulse types—ranging from simple waveforms to complex modulated pulses—tailored for precise quantum state manipulation and measurement. Explore the properties, methods, and examples to effectively integrate these pulse components into your quantum experiments. | ||
|
||
::: quam.components.pulses |
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,11 @@ | ||
# QuAM Classes API | ||
|
||
::: quam.core.quam_classes | ||
handler: python | ||
options: | ||
members: | ||
- QuamBase | ||
- QuamRoot | ||
- QuamComponent | ||
- QuamDict | ||
- QuamList |
Empty file.
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,24 @@ | ||
# QuAM API Reference | ||
|
||
Welcome to the API Reference section of the Quantum Abstract Machine (QuAM) documentation. Here, you'll find comprehensive details on all components, classes, and methods that make up the QuAM framework. This documentation is designed to help developers understand and effectively utilize the powerful capabilities of QuAM for quantum computing applications. | ||
|
||
## Quick Links | ||
|
||
- [**Core Components**](/API_references/core/quam_classes_API) | ||
Details on fundamental building blocks like [QuamBase][quam.core.quam_classes.QuamBase], [QuamComponent][quam.core.quam_classes.QuamComponent] and [QuamRoot][quam.core.quam_classes.QuamRoot]. | ||
[QuamBase][quam.core.quam_classes.QuamBase] | ||
|
||
- [**Channel Components**](/API_references/components/channels_API) | ||
Learn about channel configurations and their operations within the QuAM framework. | ||
|
||
- [**Pulse Components**](/API_references/components/pulses_API) | ||
A detailed look at various pulse types and their properties used in quantum operations. | ||
|
||
- [**Hardware Components**](/API_references/components/hardware_API) | ||
Explore the hardware-related classes such as [Mixer][quam.components.hardware.Mixer], [LocalOscillator][quam.components.hardware.LocalOscillator], and [FrequencyConverter][quam.components.hardware.FrequencyConverter]. | ||
|
||
- [**Octave Components**](/API_references/components/octave_API) | ||
Documentation on the `Octave` component and its associated up and down converters. | ||
|
||
- [**BasicQuAM Class**](/API_references/components/basic_quam_API) | ||
Details on the `BasicQuAM` class, the root-level QuAM instance that serves as the entry point for QuAM configurations. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.