Skip to content

Commit

Permalink
deploy: 9eff485
Browse files Browse the repository at this point in the history
  • Loading branch information
dakk committed Dec 30, 2023
0 parents commit bf36011
Show file tree
Hide file tree
Showing 145 changed files with 15,836 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 1b90b7a87d83483e91aa630c474b09cf
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file added .doctrees/algorithms.doctree
Binary file not shown.
Binary file added .doctrees/api.doctree
Binary file not shown.
Binary file added .doctrees/environment.pickle
Binary file not shown.
Binary file added .doctrees/example_big_circuit.doctree
Binary file not shown.
Binary file added .doctrees/example_deutsch_jozsa.doctree
Binary file not shown.
Binary file added .doctrees/example_grover.doctree
Binary file not shown.
Binary file added .doctrees/example_grover_factors.doctree
Binary file not shown.
Binary file added .doctrees/example_grover_hash.doctree
Binary file not shown.
Binary file added .doctrees/example_grover_subset.doctree
Binary file not shown.
Binary file added .doctrees/example_grover_sudoku.doctree
Binary file not shown.
Binary file added .doctrees/example_simon.doctree
Binary file not shown.
Binary file added .doctrees/example_unitary_of_f.doctree
Binary file not shown.
Binary file added .doctrees/exporter.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/how_it_works.doctree
Binary file not shown.
Binary file added .doctrees/index.doctree
Binary file not shown.
Binary file added .doctrees/quickstart.doctree
Binary file not shown.
Binary file added .doctrees/supported.doctree
Binary file not shown.
Empty file added .nojekyll
Empty file.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions _sources/algorithms.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Algorithms
====================================

Qlasskit implements high level representation of quantum algorithms that relies on black boxes functions and oracles.

Grover search
-----------------


Simon periodicity
----------------------



Deutsch Jozsa
----------------------
15 changes: 15 additions & 0 deletions _sources/api.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
API
===

.. autosummary::
:toctree: generated
:recursive:

qlasskit.qlassfun.qlassf
qlasskit.qlassfun.qlassfa
qlasskit.qlassfun.QlassF
qlasskit.algorithms.qalgorithm
qlasskit.algorithms.grover.Grover
qlasskit.qcircuit.qcircuit.QCircuit
qlasskit.qcircuit.qcircuitwrapper.QCircuitWrapper
qlasskit.qcircuit.gates
75 changes: 75 additions & 0 deletions _sources/example_big_circuit.ipynb.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Working with big circuits"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Qlasskit is capable of producing large circuit without any issue. The only thing that you have to do, is to use the `fastOptimizer`, since running CSE is too slow on large expressions lists.\n",
"\n",
"In the next example we are going to create a quantum circuit with 32 `Qint8` in input, and one `Qint8` in output, resulting on a circuit of ~527 qubits and ~8000 gates in around 8 seconds."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from qlasskit import Qint8, Qlist, boolopt, qlassfa\n",
"\n",
"\n",
"@qlassfa(bool_optimizer=boolopt.fastOptimizer)\n",
"def test(message: Qlist[Qint8, 32]) -> Qint8:\n",
" h_val = Qint8(0)\n",
" for c in message:\n",
" h_val = ((h_val >> 4) + c) & 0xFF\n",
" return h_val"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"QCircuit<test>(8248 gates, 527 qubits)\n"
]
}
],
"source": [
"print(test.circuit())"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "qlasskit_310-env",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.13"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
131 changes: 131 additions & 0 deletions _sources/example_deutsch_jozsa.ipynb.txt

Large diffs are not rendered by default.

167 changes: 167 additions & 0 deletions _sources/example_grover.ipynb.txt

Large diffs are not rendered by default.

104 changes: 104 additions & 0 deletions _sources/example_grover_factors.ipynb.txt

Large diffs are not rendered by default.

194 changes: 194 additions & 0 deletions _sources/example_grover_hash.ipynb.txt

Large diffs are not rendered by default.

109 changes: 109 additions & 0 deletions _sources/example_grover_subset.ipynb.txt

Large diffs are not rendered by default.

101 changes: 101 additions & 0 deletions _sources/example_grover_sudoku.ipynb.txt

Large diffs are not rendered by default.

131 changes: 131 additions & 0 deletions _sources/example_simon.ipynb.txt

Large diffs are not rendered by default.

118 changes: 118 additions & 0 deletions _sources/example_unitary_of_f.ipynb.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Unitary of qlasskit function\n",
"\n",
"In qlasskit, we can exploit external low-level frameworks to perform operations on the resulting quantum circuit. In this example, we use qiskit in order to obtain the unitary matrix of our `QlassF` function."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"QlassF<f>(a:bool, b:bool) -> bool:\n",
"\t_ret = a ^ ~b\n",
"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAATEAAAEvCAYAAAAtufaDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAbfElEQVR4nO3de3RU5b3/8feeBHKPEAIN5AIECIRb8CRSw6lCqBcoolK1aim1/vits6xaspYcYi/LRbu6Vike1FP0tIWKP6tdYlqLlhI5ehQ8RkQNN0tN5B7MbdCRQEhIIJnZvz9GkEgCyWRuz+TzWmtWYPbl+e4k88mzn/3MHsu2bRsREUM5Ql2AiEhfKMRExGgKMRExmkJMRIymEBMRoynERMRoCjERMZpCTESMphATEaMpxETEaAoxETGaQkxEjKYQExGjKcRExGgKMRExmkJMRIymEBMRoynERMRoCjERMZpCTESMphATEaMpxETEaAoxETGaQkxEjKYQExGjKcRExGgKMRExmkJMRIymEBMRoynERMRoCjERMZpCTESMphATEaMpxETEaAoxETGaQkxEjKYQExGjKcRExGgKMRExmkJMRIymEBMRoynERMRoCjERMZpCTESMphATEaMpxETEaAoxETGaQkxEjKYQExGjKcRExGgKMRExmkJMRIzWL0LM5XJRUlLC2LFjiY2NJTMzk+LiYlpaWli8eDGWZfHUU0+FusyA63BDyxnvV5FIER3qAgJtz549zJ07F6fTSUJCAhMnTqS+vp7Vq1dz6NAhjh8/DsC0adNCW2iAtLthz1F45wAcdX35/MhU+MY4mDYSBkSFrj6RvrJs27ZDXUSguFwurrzySmpra1m6dCnLly8nKSkJgEcffZSHH36Y6Oho3G43J06cIDk5OcQV+1fDCVj7FjS2dL/O4AT4t1kwfFBwahLxt4gOse9+97usX7+eBx98kCeffPKi5dOmTePDDz9k9OjRHD58OAQVBs6nTfCb172nj5eTEAPFN8CwyMpw6ScidkysqqqK0tJSUlNTWbFiRZfr5OfnA5CXl9fp+SNHjnDzzTeTlJTE4MGD+f73v8/nn38e8Jr96U/v9izAwLven94NbD0igRKxIbZ+/Xo8Hg8LFy4kMTGxy3Xi4uKAziF26tQpioqKqK2tZf369axdu5by8nJuuukmPB5PUGrvq08+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",
"text/plain": [
"<Figure size 371.107x367.889 with 1 Axes>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from qiskit import Aer, QuantumCircuit, transpile, execute\n",
"from qiskit.visualization import array_to_latex\n",
"from qlasskit import qlassf\n",
"\n",
"\n",
"@qlassf\n",
"def f(a: bool, b: bool) -> bool:\n",
" return a ^ (not b)\n",
"\n",
"\n",
"print(f\"\\n{f}\\n\")\n",
"\n",
"qc = QuantumCircuit(f.num_qubits, f.num_qubits)\n",
"qc.append(f.gate(), f.qubits)\n",
"\n",
"qc.decompose().draw(\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$\n",
"\n",
"\\begin{bmatrix}\n",
"0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\\\\n",
" 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
" 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
" 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\\\\n",
" 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
" 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\\\\n",
" 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\\\\n",
" 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
" \\end{bmatrix}\n",
"$$"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"simulator = Aer.get_backend(\"unitary_simulator\")\n",
"job = execute(qc, simulator, shots=8192)\n",
"result = job.result()\n",
"array_to_latex(result.get_unitary(qc, 3), max_size=16)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "qlasskit_310-env",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.13"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading

0 comments on commit bf36011

Please sign in to comment.