qat.core

This module provides the core data structures and functions needed in the framework.

Objects for writing a job

Following are used to send a circuit/schedule or a set of circuits/schedules to a plugin or to a QPU. The circuit is then compiled or executed. The Job class is used to send a single Circuit or Schedule to a QPU whereas the Batch class is used to send several Circuit objects or several Schedule objects at the same time.

qat.core.Batch

Collection of Job objects

qat.core.Circuit

Quantum circuit describing a collection of gates

qat.core.Job

Job that can be processed by a QPU

qat.core.Schedule

Encoding of time-dependent Hamiltonians

Objects for parsing a job result

qat.core.BatchResult

Collection of Result objects

qat.core.Result

Result of a quantum processing

qat.core.Sample

One sample of the Result of a quantum processing

qat.core.wrappers.result.State

Represents a classical state

Hardware specifications

Hardware specifications are described by the class HardwareSpecs.

qat.core.HardwareSpecs

Hardware specification of a quantum processor

qat.core.Topology

Describes the topology of a quantum processor

qat.core.TopologyType

Enumeration describing the type of a Topology

Variables and Parameters

When defining a variational circuit, pyAQASM provides its own way to declare variables (via the qat.lang.Program.new_var() method). However, it is possible to turn most parts of a Job into a parametrized quantity using Variable objects.

qat.core.Parameter

Time-dependent parameter than can be included within a Schedule

qat.core.Variable

Typed variable, which can ArithExpression objects

More utilities on Variable objects are documented in qat.core.variables.

Misc. utilities

qat.core.assertion.assert_plugin()

Ensure an assertion is valid (to be used in a Plugin)

qat.core.assertion.assert_qpu()

Ensure an assertion is valid (to be used in a QPU)

qat.core.console.display()

Displays a circuit on the terminal using ASCII art

qat.core.formula_eval.evaluate()

Evaluate a logical formula

qat.core.printer.plot_in_notebook()

Displays a circuit inside a Jupyter notebook

qat.core.wrappers.result.aggregate_data()

Aggregate data