# Getting Started¶

## Installation¶

Follow these easy steps to start using True-Qᵀᴹ:

2. Run python setup.py install to install True-Qᵀᴹ.

3. Run pytest tests to verify the installation (optional).

Our goal in True-Qᵀᴹ is to both provide standard methods to enable hardware makers to optimize their device performance and to remove substantial amounts of redundant and exhausting effort. True-Qᵀᴹ solves these problems by providing you with diagnostic tools and run-time performance improvements through randomized compiling.

## Diagnostic Tools¶

“Before TRUE-Q Design, we simply lacked the tools for verifying that we are on the right track towards scalable quantum computing.”

— Thomas Monz, CEO & Chief Scientist, Alpine Quantum Technologies

We provide API methods for the following protocols:

1. Streamlined Randomized Benchmarking (SRB)

Estimates the average gate fidelity over the Clifford group acting on a subset of qubits.

2. Extended Randomized Benchmarking (XRB)

Enables users to distinguish systematic (a.k.a. coherent) errors from stochastic errors (such as decoherence, dephasing, and rapid fluctuations in control frequencies) in combination with SRB.

3. Interleaved Randomized Benchmarking (IRB)

Enhances SRB by estimating the average gate fidelity of specific gates, including error analysis that accounts for systematic effects.

4. Cycle Benchmarking (CB)

A more practical alternative to SRB for multi-qubit systems that uses fewer randomizing gates, can accommodate non-Clifford interleaved gates, and provides more fine-grained information about the noise.

5. Stochastic Calibration (SC)

A protocol similar to cycle benchmarking, which allows users to obtain diagnostic information about specific Pauli decays.

6. Noise Reconstruction (NR)

Data analysis method using CB diagnostic sequences to reconstruct efficient descriptions of a many-body noise process.

## Assessment Tools¶

Assessment tools leverage more basic protocols to provide higher-level diagnostic information.

1. Crosstalk Diagnostics

Measures the discrepancy between gate quality while applying gates simultaneously versus while applying gates in an isolated way to each individual subsystem.

2. Quantum Capacity

Provides a bound on the performance of a circuit performed under Randomized Compiling (RC).

## Compilation Tools¶

We provide the following tools for compiling circuits:

1. Randomized Compiling (RC)

Takes a circuit and randomizes its gates using twirling groups while preserving the overall ideal unitary of the circuit (see [5]). This has the effect of converting coherent and non-Markovian error sources into stochastic errors, so that the resulting circuit-level errors are easier to predict (and typically smaller).

2. Transpilation

Transpiles quantum circuits into new quantum circuits that contain only gates that can be executed on a specific hardware platform. This includes a synthesizer for converting arbitrary unitary matrices into hardware compatible gates.

3. Interfacing with External Software

Converts between the circuit representations of different software packages, including compiling into the gateset supported by the chosen software package. Currently, True-Qᵀᴹ supports conversion to and from Qiskit, Cirq, and pyQuil.

## Implementation Tools¶

We provide the following tools for running circuits on simulators and hardware:

1. Built-In Simulator

Our built-in simulator allows users to easily run simulations of circuits with built-in or customizable noise models. A simulator with a specified noise model can be initialized once and used to run any circuit thereafter.

2. Executing Circuits on Qiskit Providers

Our executor allows users to easily run experiments on any hardware with a Qiskit backend. This tool includes automated batching, job submission, pausing/resuming, and saving results to disk.