{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n# Interfacing with Other Software\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can use the unique functionality of |True-Q| for projects developed in other\nquantum computing software libraries by converting objects created by those projects\nto |True-Q|. You can also use functionality from other quantum computing software\nlibraries by converting |True-Q| objects into their format. |True-Q| can natively\nconvert to and from:\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#. QASM\n A quantum assembly language used by many quantum hardware makers.\n#. Qiskit\n IBM's quantum computing software package.\n#. Cirq\n Google's quantum computing software package.\n#. PyQuil\n Rigetti's quantum computing software package.\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before converting a circuit to/from a software package, the first thing to consider is\nwhat gates you want the outputted circuit to use---since each software package is\nindependently written, the primitive gates they each use may differ. By default,\n|True-Q| will recompile using only the gates supported by the software package.\nHowever, more advanced users can specify a subset of supported gates to compile into\nwhen converting between software platforms (see :doc:`interface_software`\\).\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Before starting, make sure that you have installed the software that you\n want to convert from, by trying to import it into your Python notebook. If they are\n successfully installed, continue on to the next section. |True-Q| does not\n automatically install the third-party libraries from above, so if you want to use\n them you need to install them separately.