diff --git a/computations/compute_lc_elements.ipynb b/computations/compute_lc_elements.ipynb deleted file mode 100644 index 2b6b6aa..0000000 --- a/computations/compute_lc_elements.ipynb +++ /dev/null @@ -1,406 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Computing the elements of the local clifford group" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from itertools import product\n", - "import sympy\n", - "i = sympy.I\n", - "exp = sympy.exp\n", - "M = sympy.Matrix\n", - "simplify = sympy.simplify\n", - "from sympy.physics.quantum.dagger import Dagger\n", - "\n", - "sympy.init_printing()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "I = M([[1, 0], [0, 1]])\n", - "X = M([[0, 1], [1, 0]])\n", - "Y = M([[0, -i], [i, 0]])\n", - "Z = M([[1, 0], [0, -1]])\n", - "O = M([[0, 0], [0, 0]])" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "H = M([[1, 1], [1, -1]]) / sympy.sqrt(2)\n", - "S = M([[1, 0], [0, i]])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "C = [H, S]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def is_math_the_same(v):\n", - " return simplify(v[0] - v[1]) == O\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "from multiprocessing import Pool, cpu_count\n", - "\n", - "pool = Pool(cpu_count())" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "found Matrix([[1, 0], [0, 1]])\n", - "found Matrix([[sqrt(2)/2, sqrt(2)/2], [sqrt(2)*I/2, -sqrt(2)*I/2]])\n", - "found Matrix([[sqrt(2)/2, sqrt(2)*I/2], [sqrt(2)/2, -sqrt(2)*I/2]])\n", - "found Matrix([[1, 0], [0, -1]])\n", - "found Matrix([[1/2 + I/2, 1/2 - I/2], [1/2 - I/2, 1/2 + I/2]])\n", - "found Matrix([[sqrt(2)/2, sqrt(2)/2], [-sqrt(2)/2, sqrt(2)/2]])\n", - "found Matrix([[sqrt(2)/2, sqrt(2)*I/2], [sqrt(2)*I/2, sqrt(2)/2]])\n", - "found Matrix([[sqrt(2)/2, -sqrt(2)/2], [sqrt(2)/2, sqrt(2)/2]])\n", - "found Matrix([[1, 0], [0, -I]])\n", - "found Matrix([[1/2 + I/2, 1/2 - I/2], [1/2 + I/2, -1/2 + I/2]])\n", - "found Matrix([[0, 1], [1, 0]])\n", - "found Matrix([[sqrt(2)/2, sqrt(2)/2], [-sqrt(2)*I/2, sqrt(2)*I/2]])\n", - "found Matrix([[1/2 + I/2, 1/2 + I/2], [1/2 - I/2, -1/2 + I/2]])\n", - "found Matrix([[sqrt(2)/2, sqrt(2)*I/2], [-sqrt(2)/2, sqrt(2)*I/2]])\n", - "found Matrix([[sqrt(2)/2, -sqrt(2)/2], [sqrt(2)*I/2, sqrt(2)*I/2]])\n", - "found Matrix([[sqrt(2)/2, -sqrt(2)*I/2], [sqrt(2)/2, sqrt(2)*I/2]])\n", - "found Matrix([[sqrt(2)*(1 + I)/2, 0], [0, sqrt(2)*(1 - I)/2]])\n", - "found Matrix([[1/2 + I/2, 1/2 - I/2], [-1/2 + I/2, -1/2 - I/2]])\n", - "found Matrix([[0, 1], [I, 0]])\n", - "found Matrix([[1/2 - I/2, 1/2 + I/2], [1/2 + I/2, 1/2 - I/2]])\n", - "found Matrix([[1/2 + I/2, 1/2 + I/2], [1/2 + I/2, I*(-1 + I)/2]])\n", - "found Matrix([[0, I], [1, 0]])\n", - "found Matrix([[sqrt(2)/2, sqrt(2)*I/2], [-sqrt(2)*I/2, -sqrt(2)/2]])\n", - "found Matrix([[1/2 + I/2, -1/2 + I/2], [1/2 - I/2, I*(-1 + I)/2]])\n", - "found Matrix([[sqrt(2)/2, -sqrt(2)/2], [-sqrt(2)/2, -sqrt(2)/2]])\n", - "found Matrix([[sqrt(2)/2, -sqrt(2)*I/2], [sqrt(2)*I/2, -sqrt(2)/2]])\n" - ] - } - ], - "source": [ - "\n", - "#def list_contains_matrix(l, m):\n", - "# for elem in l:\n", - "# test = simplify(elem - m)\n", - "# if(test == 0):\n", - "# return True\n", - "# return False\n", - "\n", - "def list_contains_matrix(l, m):\n", - " #print(l, m)\n", - " for test in pool.map(is_math_the_same, [(e,m) for e in l]):\n", - " if(test):\n", - " return True\n", - "\n", - "\n", - "#for i in range(10):\n", - "while(len(C) < 24):\n", - " new_ops = ([c * H for c in C]\n", - " + [c * S for c in C])\n", - " for new_op in new_ops:\n", - " new_op.simplify()\n", - " #if(new_op not in C): # and Dagger(new_op) not in C):\n", - " if(not list_contains_matrix(C, new_op)):\n", - " print(\"found\", new_op)\n", - " C.append(new_op)\n", - " #else:\n", - " #print(new_op, \"is already known\")\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "for c in C:\n", - " c.simplify()\n", - "#C = [c for c in C if Dagger(c) not in C]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & i\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & 1\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & -1\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\\\frac{1}{2} - \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & - i\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\\\frac{1}{2} + \\frac{i}{2} & - \\frac{1}{2} + \\frac{i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & 1\\\\1 & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\\\\\frac{1}{2} - \\frac{i}{2} & - \\frac{1}{2} + \\frac{i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\- \\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2} \\left(1 + i\\right)}{2} & 0\\\\0 & \\frac{\\sqrt{2} \\left(1 - i\\right)}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\- \\frac{1}{2} + \\frac{i}{2} & - \\frac{1}{2} - \\frac{i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & 1\\\\i & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} - \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\\\\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\\\\\frac{1}{2} + \\frac{i}{2} & \\frac{i \\left(-1 + i\\right)}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & i\\\\1 & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\- \\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & - \\frac{1}{2} + \\frac{i}{2}\\\\\\frac{1}{2} - \\frac{i}{2} & \\frac{i \\left(-1 + i\\right)}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]\\right]$" - ], - "text/plain": [ - "⎡⎡√2 √2 ⎤ ⎡ √2 √2 ⎤ ⎡√2 √2⋅ⅈ ⎤ ⎡1 ⅈ 1 \n", - "⎢⎢── ── ⎥ ⎢ ── ── ⎥ ⎢── ──── ⎥ ⎢─ + ─ ─ \n", - "⎢⎢2 2 ⎥ ⎡1 0⎤ ⎡1 0⎤ ⎢ 2 2 ⎥ ⎢2 2 ⎥ ⎡1 0 ⎤ ⎢2 2 2 \n", - "⎢⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ \n", - "⎢⎢√2 -√2 ⎥ ⎣0 ⅈ⎦ ⎣0 1⎦ ⎢√2⋅ⅈ -√2⋅ⅈ ⎥ ⎢√2 -√2⋅ⅈ ⎥ ⎣0 -1⎦ ⎢1 ⅈ 1 \n", - "⎢⎢── ────⎥ ⎢──── ──────⎥ ⎢── ──────⎥ ⎢─ - ─ ─ \n", - "⎣⎣2 2 ⎦ ⎣ 2 2 ⎦ ⎣2 2 ⎦ ⎣2 2 2 \n", - "\n", - " ⅈ⎤ ⎡ √2 √2⎤ ⎡ √2 √2⋅ⅈ⎤ ⎡√2 -√2 ⎤ ⎡1 ⅈ 1 ⅈ ⎤ \n", - "- ─⎥ ⎢ ── ──⎥ ⎢ ── ────⎥ ⎢── ────⎥ ⎢─ + ─ ─ - ─ ⎥ \n", - " 2⎥ ⎢ 2 2 ⎥ ⎢ 2 2 ⎥ ⎢2 2 ⎥ ⎡1 0 ⎤ ⎢2 2 2 2 ⎥ ⎡0 1⎤ \n", - " ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥,\n", - " ⅈ⎥ ⎢-√2 √2⎥ ⎢√2⋅ⅈ √2 ⎥ ⎢√2 √2 ⎥ ⎣0 -ⅈ⎦ ⎢1 ⅈ 1 ⅈ⎥ ⎣1 0⎦ \n", - "+ ─⎥ ⎢──── ──⎥ ⎢──── ── ⎥ ⎢── ── ⎥ ⎢─ + ─ - ─ + ─⎥ \n", - " 2⎦ ⎣ 2 2 ⎦ ⎣ 2 2 ⎦ ⎣2 2 ⎦ ⎣2 2 2 2⎦ \n", - "\n", - " ⎡ √2 √2 ⎤ ⎡1 ⅈ 1 ⅈ ⎤ ⎡ √2 √2⋅ⅈ⎤ ⎡ √2 -√2 ⎤ ⎡√2 -√2⋅ⅈ ⎤ ⎡\n", - " ⎢ ── ── ⎥ ⎢─ + ─ ─ + ─ ⎥ ⎢ ── ────⎥ ⎢ ── ────⎥ ⎢── ──────⎥ ⎢\n", - " ⎢ 2 2 ⎥ ⎢2 2 2 2 ⎥ ⎢ 2 2 ⎥ ⎢ 2 2 ⎥ ⎢2 2 ⎥ ⎢\n", - " ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢\n", - " ⎢-√2⋅ⅈ √2⋅ⅈ⎥ ⎢1 ⅈ 1 ⅈ⎥ ⎢-√2 √2⋅ⅈ⎥ ⎢√2⋅ⅈ √2⋅ⅈ⎥ ⎢√2 √2⋅ⅈ ⎥ ⎢\n", - " ⎢────── ────⎥ ⎢─ - ─ - ─ + ─⎥ ⎢──── ────⎥ ⎢──── ────⎥ ⎢── ──── ⎥ ⎢\n", - " ⎣ 2 2 ⎦ ⎣2 2 2 2⎦ ⎣ 2 2 ⎦ ⎣ 2 2 ⎦ ⎣2 2 ⎦ ⎣\n", - "\n", - "√2⋅(1 + ⅈ) ⎤ ⎡ 1 ⅈ 1 ⅈ ⎤ ⎡1 ⅈ 1 ⅈ⎤ ⎡1 ⅈ \n", - "────────── 0 ⎥ ⎢ ─ + ─ ─ - ─ ⎥ ⎢─ - ─ ─ + ─⎥ ⎢─ + ─ \n", - " 2 ⎥ ⎢ 2 2 2 2 ⎥ ⎡0 1⎤ ⎢2 2 2 2⎥ ⎢2 2 \n", - " ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ \n", - " √2⋅(1 - ⅈ)⎥ ⎢ 1 ⅈ 1 ⅈ⎥ ⎣ⅈ 0⎦ ⎢1 ⅈ 1 ⅈ⎥ ⎢1 ⅈ ⅈ\n", - " 0 ──────────⎥ ⎢- ─ + ─ - ─ - ─⎥ ⎢─ + ─ ─ - ─⎥ ⎢─ + ─ ─\n", - " 2 ⎦ ⎣ 2 2 2 2⎦ ⎣2 2 2 2⎦ ⎣2 2 \n", - "\n", - " 1 ⅈ ⎤ ⎡ √2 √2⋅ⅈ⎤ ⎡1 ⅈ 1 ⅈ ⎤ ⎡ √2 -√2 ⎤ ⎡ √2 \n", - " ─ + ─ ⎥ ⎢ ── ────⎥ ⎢─ + ─ - ─ + ─ ⎥ ⎢ ── ────⎥ ⎢ ── \n", - " 2 2 ⎥ ⎡0 ⅈ⎤ ⎢ 2 2 ⎥ ⎢2 2 2 2 ⎥ ⎢ 2 2 ⎥ ⎢ 2 \n", - " ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ \n", - "⋅(-1 + ⅈ)⎥ ⎣1 0⎦ ⎢-√2⋅ⅈ -√2 ⎥ ⎢1 ⅈ ⅈ⋅(-1 + ⅈ)⎥ ⎢-√2 -√2 ⎥ ⎢√2⋅ⅈ \n", - "─────────⎥ ⎢────── ────⎥ ⎢─ - ─ ──────────⎥ ⎢──── ────⎥ ⎢──── \n", - " 2 ⎦ ⎣ 2 2 ⎦ ⎣2 2 2 ⎦ ⎣ 2 2 ⎦ ⎣ 2 \n", - "\n", - "-√2⋅ⅈ ⎤⎤\n", - "──────⎥⎥\n", - " 2 ⎥⎥\n", - " ⎥⎥\n", - " -√2 ⎥⎥\n", - " ──── ⎥⎥\n", - " 2 ⎦⎦" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "C" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAABMAAAAOCAYAAADNGCeJAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABZklEQVQ4EXWTgVHDMAxFHY4BcmWDdoMCE5ARwgqwAT1GgA06Q9mgXaHdgG5A0w3Ce8HKNSTV3Y+tL/lbke2ibdtUFMU8pbQC2gM4gRWxg0QYeSXzd/AD7oD+hrwdY2cKSaQA/gdoQRWcI7a+9DO3ga/zPOmUE0kNfBM88xcRfoyuBXv9GyYVaPIvMO3N0svcAskFeHZyzRRz0RHl85Ukd9a2oEJ8+29jW7I2oe9TlB0joe+/8KCXtsTmiTegSNcv102KkbAE3YIQjxE+Dsf4Hsz7WEwuRxKsaurkanjFvAH+toKiO/VRZQQsfUrI0xzw+Ior5smXAzGI0YKoOBaEHyO8VSpY3/LpjBNylwVJr5mKl6Hri/Aujk4c7sjaL+Izr4aLbPgjgXhS0pobnLLImTyrmDKvz67gE83s31fOnjEuEfKyuqGX2+Y/ZXFpeVtj1Z+KebxWNmUHku4jkP/Ah+5vh/UP/Rd43VK9lG9blAAAAABJRU5ErkJggg==\n", - "text/latex": [ - "$\\displaystyle 28$" - ], - "text/plain": [ - "28" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(C)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This is bad. Does one have to ignore global phases? Note that the matrices 10 and 18 are the same, disregarding a phase of $pi/4$:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEIAAAAzCAYAAAAjKt6MAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADb0lEQVRoBe1bi3ETMRC1GQrwQAdOBwlUgNMBoQOgAxhXwIQOAhUwuIOECjJJB6EDPO7AvHfsZnQXaXUyOtu60c7IZ31ute9pV6eT7OlkMpkhPZHtdrt5UjiCgul06sVLaA9I2066AhGTMSbgvO5gJfbrZ/ignAP01Ekf/xWP7xMYW1iBsMGqRIwPcSKi533bI7ZO0fYn0hlYPYr5AzZdiv1/cD1BuoRtv6Us6WISIRPLd2hcI71CmidpH7AxbLuD+i8AvmI3YusdrnT9ZDLM0ODII10gMY5+sMNjEID9ADtmsKshgTbRVlyYv2I+VUwiUpXtsf0F+rr39HeLsoV4h6c6XFQqEQtAYrh2Recu1idJcUT0HO0XSSygcXFEwGYFqaPvYlYvmbmFfb6XSEQfXC/7NHLblEiEjrqLQ7+rt3BdkSTFESGPSYL0ub+W5V1HJFG638Y36G7u6VI9gvVJUpxHCDou9bnS7coZCu4dr+nWB/NFEgGg34BojUfpW0Umj9V3yL/XspSr+a5BReiA7DP2dAS4nueq7hYGfcX1UMLRX8IWDZHXyL+BTbQtWaJEQDGXs0cnsGsDoz7nMqzI0MgF3tVTiRA2KhGVCDcwynzpaiPIlKuhUUOj7UrVI6pHVI9oMyC56BKb7bCez3aQ4rVi4ELY/wldnGBZHjzKjBIBJVkPUgbGHFJPAh7PQHyNTCJAgvcgBeV6kHLuU3psZfAEHgeaEntqZD9IMa05YGWMiAVs822W8hWYwvpRSDA04P66EWoB1T1Cq81B6sR+hjbD4gHhYW4iWR6hIHX0XUDqJX3Icu/b5/elgOcO2zLWsUVE7F7WJx+k9FH6v23gDXPo4IEwhfNcdHs/GBq4WUedyrqi3pJ8kNJVFMqLa/9CfYrX8ScM3LNc46qPS4ZHdEsvSAQUbWAM7fQZomVRpqlgF2H/uI8btMki93IhqLvc3PU2JRYa2Q9STGvyV3JuWCkxlvoYEdkPUixjctZJaJ1CZ/NLH+T1NcHbjUkEmMx+kOK1YpjC5hwGGFYggZMnf08alOAc4dyR9SDF0TvoVxBwAwKY+MLF34KZ80SUCCjgpBWddQdFtaNy2N77XcgMjR37L/K2SoQMWyWiEtGO4OoRwoc+NeZ4zOiyuamSp0WbthHkujgB6RF3/eMK/rjyFzozUuFUA8PIAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}1 & 0\\\\0 & - i\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 0 ⎤\n", - "⎢ ⎥\n", - "⎣0 -ⅈ⎦" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "C[10]" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2} \\left(1 + i\\right)}{2} & 0\\\\0 & \\frac{\\sqrt{2} \\left(1 - i\\right)}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡√2⋅(1 + ⅈ) ⎤\n", - "⎢────────── 0 ⎥\n", - "⎢ 2 ⎥\n", - "⎢ ⎥\n", - "⎢ √2⋅(1 - ⅈ)⎥\n", - "⎢ 0 ──────────⎥\n", - "⎣ 2 ⎦" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "C[18]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "XXX: continue here with computations" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "lookup_table = [ca * cb for ca, cb in product(C, C)]\n", - "for l in lookup_table:\n", - " l.simplify()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(lookup_table) == 24*24" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "ltb = []\n", - "row = []\n", - "for i, result in enumerate(lookup_table):\n", - " if(i % 24):\n", - " ltb.append(row)\n", - " row = []\n", - " row.append(result)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "#lookup_table = [[C.index(i) for i in row] for row in ltb]\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/computations/local_clifford_group_elements_raw.ipynb b/computations/local_clifford_group_elements_raw.ipynb deleted file mode 100644 index 9c9a976..0000000 --- a/computations/local_clifford_group_elements_raw.ipynb +++ /dev/null @@ -1,1807 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Computing the Elements of the Local Clifford Group\n", - "\n", - "From Anders&Briegel 2005 it is known, that the Local Clifford Group (LC) has 24 elements.\n", - "Also one can disregrad a global phase. Below are the computed elements." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from itertools import product\n", - "from functools import reduce\n", - "from operator import iconcat\n", - "import sympy\n", - "i = sympy.I\n", - "exp = sympy.exp\n", - "M = sympy.Matrix\n", - "simplify = sympy.simplify\n", - "from sympy.physics.quantum.dagger import Dagger\n", - "\n", - "sympy.init_printing()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "I = M([[1, 0], [0, 1]])\n", - "X = M([[0, 1], [1, 0]])\n", - "Y = M([[0, -i], [i, 0]])\n", - "Z = M([[1, 0], [0, -1]])\n", - "O = M([[0, 0], [0, 0]])" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "H = M([[1, 1], [1, -1]]) / sympy.sqrt(2)\n", - "S = M([[1, 0], [0, i]])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡√2 √2 ⎤\n", - "⎢── ── ⎥\n", - "⎢2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2 -√2 ⎥\n", - "⎢── ────⎥\n", - "⎣2 2 ⎦" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "H" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADNklEQVRoBe2ajXETMRCFz0wK8EAHTgcJVIDTAaEDoAMYV8CEDgIVZHAHSQeZpIOkAzzpwHzv0N4oF/3cnWMjZ25nZOn0t+9pVzp57UlVVVPSE1mv1w9PKgurmEwmQeyCeUdat9I5pKrSE5gvW7jF4/IVH5ITCEy89OVfddmf4H2EG7Q1biNVNvqe6A669sd/j+j7m3TMCu1sv6H3zGH8Q35IOkP/vasLZklSbiP+YuSK9JY0C86ypUr03zD1d0gspcLhuSGX20WJJd1PFiGdkuSrF5p4VwLwz+iaorsmJL3CQ6bncz3HJEkqNmhH9afouQ3ouqZu7qwWaK6qkknNQSy3b4vtZ7UHpUhSKSt4LF575UfFIkmB0ACbVXzQZr2pX+mXSyXlY4yV38QaSiVl1gjhNivqvRWUIkm5o1uAQy5mdcPeU8Fl2F3lFapmAXVmKbUHpUhLOaS6kukW05ZjKm49a7bby31PAfonaFcc7x8MtTvqP/L8yepCefLupwFMpBWTH9uq6e6lN/01in+Qb1NklQX6zA3f8fwevdIflSwpJtB15b8Iuh9Q/K2v8pL3VF8uTf+RVLMUhRdGSxVuoAbeaKlmKQovjJYq3EANvBdpqew1SfS5e/UOKDbL9owFcHxlukOuT8mweJYUEw0KKD4jF38qkWnigH6DX06SglAwoEi9BRRP/Mm2XcZCCjtnJbenBgcUs5q32CFHao7uUBBEXwkkai9Oou6Hi1mAIwXa4gWpPhu1ORzaBnK9O1ww+8U0ZSkDbFbxwZn1uhD3xw0pLxwRfQNfdJkgRarL+GhAscvgXB+sNKOPfhCQaH9Hw2J1D/eRImXW8Ptb2awYDShaxw3zFVayI1wu2OnnpCgpJjO3C7mY1XVauaHEDAMWs4iSIkxZiZJyIwcHFLOa+3XQXloaydzQHKnBAcWc4q7t7vQ7on/tejzblS06RZIUKzM4oBjV2L+hjjeCZekODv3vIynR95Q3alBA0Ru/UREyV5BR0mVWv0Fn91WWFJPowOgdUNyISWswGHrdMZPu15p7bx5HUvtiqtFS+2IpO/1mHJl29amxu1OvaB5tzIBtOLy4PzH+BYFD/CuL/K+XAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}1 & 0\\\\0 & i\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 0⎤\n", - "⎢ ⎥\n", - "⎣0 ⅈ⎦" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "S" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "s2m = {\"H\": H, \"S\": S}" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def evalstr(s):\n", - " m = I\n", - " \n", - " for c in s:\n", - " m *= s2m[c]\n", - " \n", - " m.simplify()\n", - " \n", - " return m" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡√2 √2⋅ⅈ ⎤\n", - "⎢── ──── ⎥\n", - "⎢2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2 -√2⋅ⅈ ⎥\n", - "⎢── ──────⎥\n", - "⎣2 2 ⎦" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2 √2 ⎤\n", - "⎢ ── ── ⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2⋅ⅈ -√2⋅ⅈ ⎥\n", - "⎢──── ──────⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SH\")" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡√2 -√2 ⎤\n", - "⎢── ────⎥\n", - "⎢2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2 √2 ⎥\n", - "⎢── ── ⎥\n", - "⎣2 2 ⎦" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGkAAAA/CAYAAADjVebQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFuklEQVR4Ae2cjZHUOBCFd7YIADYELgMghCEDCGEhg7siAooQIIUNAcgAyABCADKY+55WdsnambHsUetnalyltWRr1O91q9u2fnZzdXW1JX0mxcev3W73T3zxUrbRwGaz+U7Lz/a0/vpRcPFlkFf2d1S+FG01cEvzN5EI5zyjkfCaL1EF8yK9ZzcnBFybuTot3ofbHbhezWEb+HH+Edeljb+6dh3fKFUGwBtkvRXIY6kUnpxyPLfPx3gN91Lkjp6UUjlzndcAjUNsZhHVmsvKrYqR6Gn/or6PUiH5x5zeKc/x9P50dYsBnav7cjenkJtA5+K3pS10stOfIgl5CgVOFvmPQ15nlUk/w2s95cE+chv4hPiX8KPuH5J7rhU1EkLlRa8G4ORlmW1Qljfp2rPhWi9nME+4Cbfnsoofv3VGKhruvOu/BHz4LHoLmG9i0/NxgJsoZeGX1ZMAJU94s6/3c/0DaexVR+o0Ge5O5eY9SzpI4ke9/OFOBiAJhPz8cWgElUmTeB3e9wT0xf0z/m1cr0YZTCdxW8MPmfmNNCiPxjXE8WEoe4B6ITj4nOGePFBf2BPjhm20kAffYm6e/2J+yDI1kt5IRm+S4kkHvYh7InA3GIG8POrpUG7pDK5F3AIDLeaHLDsjeWAKW86bOB/0Iu4NPUyGGZLqN+tRYEviFhhIEWLgpnMSP+qZG0k9TkIEauxFsVf4OvK6SYrrtVQGaxI3byTpYMJN5RQ+1HNG0uClHogKRdkHMnktVY+7IT2n/V+cz+YowQ0ZMtLtI2Ot/Uf7+i46KwN5nRXjZupJxh3g7JvP7kk0qLib/bAIw0tB1uaWLdy1oMylyk+tX5vbdSrQS716GsjmSccoEC7Oas4o5mrNr4iRIKWPWo0GuwNS+pjT8Mq5rEYy57dFWejQbsJP7ZPG0W/yGmXQtYNjeZZ4crftuWTnR7vuY7bUMynLnAqgWz1M+RUJd/TcT5F2RUqLLx8sY4rqdVG05lfKk0Zl8zzSWJ7Gvp6PF88oY8GvqJEgoGeRJgU1ltflaqBj/cmKX5FwJ2IDAYzj1jf4HveX8lmM61nyK+JJnoBeu9/LON5Aei6dxXpza35FBlghoVdJfdBODrwo+/TIREChghU/3675VIVTE8Z4UkhfVcRY8ysS7tZqjp60m0tr27b+Hbjv5rDrfgqOZo0EgW53XXjsbrZbIf1YSjFSsbe7FDBRnaw7E6K2rYtZsTdpJHpit7suQuzqCZSzzABsaQuPtBtgXdo2eMY1euS72nURYhfvU/DzWzfAqkaaMhJ4JjsTKHczgh5j90ZajZ/2nJGaCnc+NHS56+IAdvTc4K6KudAGaI3fdbnr4lTs3rPq7qpIMJBCa5e7LsB9EnZvIM0AJO8aoW69ZxLCF+9M4DfywOq7LtZg9wZajB9ZVY20aGeCN9C4npyyemSVXRfIXYQ9MNBi/MiqZyQPPGlngoxBWrUrQXIsEniSsAcGWoW/BSMl7UzwQPUaO0kWyk9tEyxJ2L2R5A0T7CqnyKKe86QiUxUI23vw2trtrosS2JEhI5WZqthrofuLxXYmHMGw9lYx7LMfs/4j7StMHkzaHWGnAcbJSiDakcvvPbinEe9VB3LMJw5rY581EkrQgpGTV/aUUOYqKyf8qDb26wSMlyqVNTDrSaXw+bD6zsvTa7eOLv4RlDX2ZoyEQcwXvTuz2/wxx74FN2HX5sMvtV1hIGVf9J4q/5R6Vthp130ntfRMMl30DmHLwxR7M+GOntzton5r7C150tjTeRB3u6jfAntzRoKk3uy6XNRvhb2ZcCc3GkgSPrpb1G+JvRlP8iS7XNRvjb3qKPj4ELr3Ir1uPhgfxKvMx+ZCHGvyGMkEu2+3+ij4qBOM0e2ifmvsY7jDavHieM31XI5CGkD/32MbINpFFoUSZV7swfKbHjKZbthT53IpkwYwkD47bvY09+1/yqG8lgYZWUEAAAAASUVORK5CYII=\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2 √2⎤\n", - "⎢ ── ──⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢-√2 √2⎥\n", - "⎢──── ──⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SSH\")" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEIAAAAzCAYAAAAjKt6MAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADb0lEQVRoBe1bi3ETMRC1GQrwQAdOBwlUgNMBoQOgAxhXwIQOAhUwuIOECjJJB6EDPO7AvHfsZnQXaXUyOtu60c7IZ31ute9pV6eT7OlkMpkhPZHtdrt5UjiCgul06sVLaA9I2066AhGTMSbgvO5gJfbrZ/ignAP01Ekf/xWP7xMYW1iBsMGqRIwPcSKi533bI7ZO0fYn0hlYPYr5AzZdiv1/cD1BuoRtv6Us6WISIRPLd2hcI71CmidpH7AxbLuD+i8AvmI3YusdrnT9ZDLM0ODII10gMY5+sMNjEID9ADtmsKshgTbRVlyYv2I+VUwiUpXtsf0F+rr39HeLsoV4h6c6XFQqEQtAYrh2Recu1idJcUT0HO0XSSygcXFEwGYFqaPvYlYvmbmFfb6XSEQfXC/7NHLblEiEjrqLQ7+rt3BdkSTFESGPSYL0ub+W5V1HJFG638Y36G7u6VI9gvVJUpxHCDou9bnS7coZCu4dr+nWB/NFEgGg34BojUfpW0Umj9V3yL/XspSr+a5BReiA7DP2dAS4nueq7hYGfcX1UMLRX8IWDZHXyL+BTbQtWaJEQDGXs0cnsGsDoz7nMqzI0MgF3tVTiRA2KhGVCDcwynzpaiPIlKuhUUOj7UrVI6pHVI9oMyC56BKb7bCez3aQ4rVi4ELY/wldnGBZHjzKjBIBJVkPUgbGHFJPAh7PQHyNTCJAgvcgBeV6kHLuU3psZfAEHgeaEntqZD9IMa05YGWMiAVs822W8hWYwvpRSDA04P66EWoB1T1Cq81B6sR+hjbD4gHhYW4iWR6hIHX0XUDqJX3Icu/b5/elgOcO2zLWsUVE7F7WJx+k9FH6v23gDXPo4IEwhfNcdHs/GBq4WUedyrqi3pJ8kNJVFMqLa/9CfYrX8ScM3LNc46qPS4ZHdEsvSAQUbWAM7fQZomVRpqlgF2H/uI8btMki93IhqLvc3PU2JRYa2Q9STGvyV3JuWCkxlvoYEdkPUixjctZJaJ1CZ/NLH+T1NcHbjUkEmMx+kOK1YpjC5hwGGFYggZMnf08alOAc4dyR9SDF0TvoVxBwAwKY+MLF34KZ80SUCCjgpBWddQdFtaNy2N77XcgMjR37L/K2SoQMWyWiEtGO4OoRwoc+NeZ4zOiyuamSp0WbthHkujgB6RF3/eMK/rjyFzozUuFUA8PIAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}1 & 0\\\\0 & - i\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 0 ⎤\n", - "⎢ ⎥\n", - "⎣0 -ⅈ⎦" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SSS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡√2 -√2⋅ⅈ ⎤\n", - "⎢── ──────⎥\n", - "⎢2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2 √2⋅ⅈ ⎥\n", - "⎢── ──── ⎥\n", - "⎣2 2 ⎦" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSSS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2 √2 ⎤\n", - "⎢ ── ── ⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢-√2⋅ⅈ √2⋅ⅈ⎥\n", - "⎢────── ────⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SSSH\")" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2 √2⋅ⅈ⎤\n", - "⎢ ── ────⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2⋅ⅈ √2 ⎥\n", - "⎢──── ── ⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SHS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2 -√2 ⎤\n", - "⎢ ── ────⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2⋅ⅈ √2⋅ⅈ⎥\n", - "⎢──── ────⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SHSS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\- \\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2 √2⋅ⅈ⎤\n", - "⎢ ── ────⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢-√2 √2⋅ⅈ⎥\n", - "⎢──── ────⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SSHS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAAA/CAYAAADE+2c4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFIklEQVR4Ae2cjXXTMBSFEw4DQEcIGwAjpBuUEQIbwGECTkeAFRihsEHLBjACdIPwXdc2qurGJNF7UizrHNWW/6R7r96TLeV1uVgs1uQrcpx+bbfbF/HBuVwmA8vl8oaWvRxo3ZunwcHzYF+7v6PyXCybgQ3NO4ua2BhvLzJW+y26wLxI79uOVUK7lmPXTPX8PvzA04+YB+6/1bEn8QmvMg14S13vJOKu7NWe0upJyU9vyRlAvkHceIjI0Ixiq0zGTxaR6aXvofaz6GX/GZuP2iet7jaLDR2gcTVtuapNan6yiIxi54EVX7L/rlMRgBJfb4o1v9kn52cNofC81R/zTF2y4ouuLtVNXgdlWbOOveyO1bQFdzJ+eNYf8oWrJbeuOeyltGEhK77WTu3Jip/kb9c0dEXWm/NQ0th7GZ7ASr+Qw/FXomsi5sEnQXjfqe7n4ieZu4Z4PUsiyt0+C92syuSr8Fi8z3nN2PzUtfG5KZTB5coP9TXumm1TMRymG495pl6c9ELVj/GU9UL16DjLOY3FmqGZpMARFy78wKWpyBdU0FuzhCM/asWck8BfOyLYl0WvuvLUtmBz4Yd67ESWKCS53caa2T5qxZzrLFjCdlnXT9qiwWfOD3WYi6zeqkokXG+lsVW216hX3MvxdVMrg9ecn5bbC03+62VArjT5QgBvkuqtZ+RXPP8X2zkFDFjzw/NlZJunQZ0Wux94qL6LZ4GH2XXhx9SSh3HNR70YSG7JPLB520oNwGIY2aeN4NKXwXeytv+btIJ0bzInJz/J3HVuMf6X/X2vA9ct97za9774+pz8JJ/WjMHN5fwMJLPkXVBal6d5ayV9FyttWiu5K1X815ofF5HRb14z3t2JTfnxctdv6a3rAKcWMbRapYmSOS0Wpvx4iTyvGe/uyqb8uLhrxt4vEcZJrxlHWEeL1vx4WXIPtHXRmrc9+rOkf+iEdiz4cRUZACv00HisuWx9f84pYMCKHxd3LRwdAMRtfmvd9thbyvO8tjE/LpbcCqw14k8StxVY4/Icb/VPYDN+XBYoEFVLXg/mfrHi5Mub1HNyyYqf9rnmS40N4Yj5/OSYd2ywNT9uY/IhnNETR1e2puwNUuF3GZMPFLjqqEcEToa/ZEtOFtV3SCcr4J5k+IsUmV5cddRjavxFiowVhfFSpis0BVjsUBOS419TC+8v/6Idcu7TlmRRfTlxHFp3Svw8q/nddVGWjJvSt3TYiynWE/Vohd/97RogVUc95sLv5q6xStVVbdSjN37qa9w12/RRjWPjEXW6RPWNtSPXeS/81JNVZJeovlwijtUL+S74s4osEkjmUX1jZOc874G/BJHNo/pyijhWNwKY4+9EdllqpLLBxJtm1VGP1vh5vsZkn6XGQYXvDrpE9e2oP/cpF/yjkyH0Bk1QmAZ8Ucdj/y1oVATcoukPD6aAf1RkSNQP7o7+ZaW1GKO94cALpoDffcbrQK7n245gYNSSj3j2Xre2brHKoDhr7MWITI+ocUmxMwRT7CW5a9Ogr47NQrem2EsS2TToq1Bxu2aZYi/GXfMWW21QnDX2kiy569UKqVHcsqb9jv506x96IjsW2IsTGZAr9KgyKM4KezHuWobWgcR9VRcUZ4m9GEtuQZoFfZXsra2xZ12FCokHqFZMqgyKs8LePjf7KlSvMy662qA4a+y9u0b1bZS11junE2EA7W4i/fTzm8Yzyl1r5/UAlt/0sHv/H3LgmvlQIQwgsD479W+n43T9FyVSzpC8C/88AAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2 -√2 ⎤\n", - "⎢ ── ────⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢-√2 -√2 ⎥\n", - "⎢──── ────⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SSHSS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\\\- \\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2 -√2⋅ⅈ ⎤\n", - "⎢ ── ──────⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢-√2 -√2⋅ⅈ ⎥\n", - "⎢──── ──────⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SSHSSS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIgAAAAzCAYAAABMt0DkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFXElEQVR4Ae1dgU3cMBTNVQxAGeG6AagbHBuAOkFhAxATILoBrMAI0A1aNigjtLfB9T1wTpFjxz7/5PxjbMlcYsf28/PLt53ki0XTNIeIvbDZbNa9ROUJi8WCfTkC9lflULPB83Fk0nu4PiHlN+I/K97ZV7ICxAtEXq813ADYWS5wM+foEbzZOng8MGSe4q579hGLjh8jb2XynRbHV3af6ejD9T7b67Y1d47A3anVnwucn7cC6eb1jlH4BYkvICHb3dkDpSyhVI6iBKJsLHpwIFxaN1q5rxio894FNaFJ5YhrkBICzeMD4hmIUDsFZiY6iaPZCwSCWIL4W0RakVdYkNntvqYWjoSjrAKh2UPkYig5QBCtKC5RyX1yRQUXlHCUVSAYE04H4ikBImMdtCAPOOZapAaLgVSOcgvE6kbyKcXxYqaXb8m1lF0wiaMogUB9S0Q+POODKB7fI14p4pPPcF4NpizTDNoukqODmEHmHIbrsj2ECmE0liPr9rZUjqIsSGiAan65DAQtCEznJtR93D2LoWtQB80+50A7HDEB+dyB2IFrikGrMAY2u9GUcykOlOci+yfiLgv2c/DDJ9yDQYotKJDQ4A+iM5mowyUACoOP7pfI/xFTj33NGNjsOlPOpThQfo12T1LaDpWRYqtTTIjhD54ftCDkx5hA7mAYlu8/zXejfHOa50cLNi04XKMgwRYlEDR6BzFspwk0yDUFvwv54gK05zQt2LTgcNEvwvYHNa4ggMYXkc+F6vYaHNOKMO3YVyYmHeW5BrmKudZ3jcExOjZfe750LThc+FKwoQxfgTzFrkFoPX4hagxasGnB4RqjZGxRUwxUyVfp3cAG+ZIsuM3qFnIcc/XOmBwmxLYTJi04XKAl2KIE0m0U6w++DOPUIN6WAbj3M8dum7HHY2KLbdN1nRYcY2CLnWLe2kLHufbgO5kTDK7ozneBl6RpwaYFh4vLFGzRFqStHMJ4+7gV57Qka5xndzHQgk0LjiFx7Dp+URbEdJxb21sKgxHHXIf8dYHZZ5oWbFpwuLiXYOM7FG5zL6Es73oADdBf4tBuHGUG38HY109xrgWbFhwujlOwocyb20OUBYEQPqNhRloNvkRbaBAHySC2Dh6+07nOgY040HZxHEWtQaAmTikrRIaeJXlPzv8Xg5Ttm5VSOYoSCIivjlMB/ZfKUZRAAtxkz8bdS+tGK1cdpzyjkcpR1BrE06am5CSnIE0d2AOWJI5mLxDcGUuQe4tIK9L6yOyB7/k0IeFo9gLB3N+KgjssPqspJnBaQBQ5lpEMCUezFwgJAIncWdGClOY4xX6NsmtM5agIgRhxVMcpEDEQeAPtzFGUQKC+Ip2CBsjcOatUjg5imOAchuuyPYQKYQS+Na4ZdJEI1SHNL5WjKAsiJa+Wny8DQQsC0zmG4xQXWqM7Bo2BbYyhk+JAee6+uEawwxETkM8dmh2CjmUsIMUWFAhMp/iNrZkCxF+g2QyNgc2uM+VcigPlXQLg4Iocy9gXKbY6xaQo4gOVCVoQcgElc4q4MbwszW91nDJE8KdUjqIEgv6LHG86PE5xqAWbFhwujkXYsjlOYX70OmvF5oGNSZy6Yttvr5sCB+oUO5YRXwo2lKmOU2RuxMCFZnHOZVFTDFQ4leOUeHy0YJsIBx8AMoqCBFuUQLrosBjjhzmjOE516x3jWAu2sXBgYL0fkqfytSu2nba5qJw7mOo4NTA6pXEUbUHajkPV1XHKI5ASOWotCN/W8v/BbGOXA9Px6jjVJcU6njtH3bHnMbrH2LSOU+3Dr7bbD7AU28e/KFAdp1pmPL9z5wj4n9C1ldW95/9Q+o3363EmRQAAAABJRU5ErkJggg==\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\\\frac{1}{2} - \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 ⅈ 1 ⅈ⎤\n", - "⎢─ + ─ ─ - ─⎥\n", - "⎢2 2 2 2⎥\n", - "⎢ ⎥\n", - "⎢1 ⅈ 1 ⅈ⎥\n", - "⎢─ - ─ ─ + ─⎥\n", - "⎣2 2 2 2⎦" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSH\") # = exp(i*pi/4) SSSHSSS" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACsklEQVRoBe1ai03DQAxtEANUsEHZoIUJKBtQNgBGQEyAygbABAg2KBtU7QawAYgNynvtWQrX+yR3TbBQTnKTOHf2e2cnsawWvV6vD9kaq9Xqe0upTFEUhRM7Yb5DVpY8gFRPuwDzzMJNHrM9/HCcgUBRkuuNWvcv8P7CDbRr3EJKN/qa6ParzEfuTs28TxyPIFPs0keVtbuYA/9D2HmBjOA3+qxHScHgAsbuYOyVAM3DucCRoW+MmPHzBJdfkGPIAFJpBNMPhq9gpS+EaNHsFAk+8LqpQT+QCYTPyXMdP0FSMDSBLB0G59CNzW46bv+tKkZqDHgMvz0kr3lf3fCSqhiFA3WMAMhLCvcEsESljF+i5/2ilye3fR4iVQXLYZVJbc8JkZJouDBJFPndUje8pMyrm4BdKSa6xr5TOTvlJWWMvuE4cDiQSPG+uhEjxdKEX3N7jKBYlqJp3//T6yApgH4Eui+83s8FpXnVX+D6UnTajtHaD4AZlVuQkTQ8wfUpCLsqjZ3yg09mCp9fyRbWnPQ7h/97n7MoKZNiNz4DTerhm2Va7RFMv9rWlCzoSCkJRBRGF6noFimZ0EVKSSCiMLpIRbdIyYR/GalomSSbj5priPPKDUVZl3uE39qN1CApGGQxmdRQzCXD9fCf1EgNph+LWRaVkNoNxVxSIJTcSA2SygWWuT65kaqZ1Bib4mr+fJvN4n3nUEnKPMtOwCWl9ElKqs2pSlKAJoAlKmXgEj2+xJxDKyknWEvpbaRqJSXRsHisLyWK3kaqSlL8lBg2rhQTnbeRqpKUIZTcSNVMKrmRqpYUUjC5kRqs/ZgG+GYkNRRNCuUekhqpUVKs/XKRpa43L4zajVS16Ze6EVzXkcrZvTbXdpFqc7dzfMnbb2CX+6VSJcd+o2ttzHAmJdT/+xPjD2U+4S47RBrKAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}0 & 1\\\\1 & 0\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡0 1⎤\n", - "⎢ ⎥\n", - "⎣1 0⎦" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSSH\")" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADHElEQVRoBe2agXHUMBBFzwwFZKCDSwcJVMClA0IHQAcwVwETOghUwJAOkg4ySQehA27SwfG+0TLGJ1mSY100Ge/Mns+yvPu/diXLe9csFosDdEe22+39TmNlDU3TeLEL5h267ek5pBa1K5gve7jF4/IZH5ITCDQd/fi3ue5P8P6HG7QtbiNVN/pMdM9T+pO7Z67fb46H6Bmj9Cvl3in64P8IOz/RY/xG53qUFAZvMPYFYxcC6CbnDUeFvhgx5+c7LjfoK3SJJslg+mH4A1YOjJAsupESwXOdlxL5QU9RzZMfOX4GSWHoFL31GLymbeVG03P5cZtipFbAU/j7Ynmt69VJkFRiFF5UxwhAQVJcM8AWlS5+i17wid7tvO/vQ6RSsLxM6bTvPkOkLBo+TBZFPbeqkyApt3QLsC/FrK3Yc+ohIxUk5YxecVx6HFikdL06iZHS1kRP874c03DbiWb/+qOeD5IC9DfQbVje3xpKt9S/4/y9tdV2jO79AKyorCFjafia8zcQ9u00JuWHT2WK5q9li/ac8nuN/68hZ1FSLsU+hwyUbMe3tmnZMph+2dYquWEmVUkgojDmSEWHqJIOc6QqCUQUxhyp6BBV0uFJRiq6TeoPPnuvT7QdsoXZS2kaf9mF1GxSEBKZtrDZJzz1OYRGFVKzSREhlZ2LC4S8hVTarZB6EgJR85waXUitmdSKSPiKP/cuQrrulaT0I+R6UVM6KPXuSMHgC5rXS2aj8xe7y+okO/1SI7V2RPQmut6xMn2DAbaodD1Y9DTQXomSYtSW3KkfBCTK81rKYsFCapQUJDZEyZZwpWDWzyr0HyMWDd+9FsVgITVKCkJtChAxqyipwlRUzCdOfClmbcGMiZLqoNdcuug47Fwq8nV0ITWJlFuNjoDeph7ntnUpwsYZHV1ITSKFk7buprnlFg7996Ko4Gt0ITXpOYWDK8hItZnVb7HF55UbsVGF1CRScgCR4F7LAZj8gE8tUtmF1NT0mxxwSYMzqZKjO6XtOVJTjmZJW7b6LVmubfvR+nMrT0nfD7bdx4zBfxye3J8Y/wBM4vwr1xGMdgAAAABJRU5ErkJggg==\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}0 & 1\\\\i & 0\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡0 1⎤\n", - "⎢ ⎥\n", - "⎣ⅈ 0⎦" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SHSSH\")" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADFUlEQVRoBe1ai00jMRDNoisAQQe5DvhUcEkHx3UAdABKBSeuA6ACRDpIOkCkA+iAKB2E9xaP5DPjT3bXi4V2JGeTsT3znme86x2oRqPRPton2W63m0/KwhRVVanYCfMFbeu0W5Aald6AeeHgJo/FHj4oUxCorHb5oS77E3j/ww20NW4hVTb6HdH9SBmP3L0x495w/Yl2g1V6TZnb5RjguKJ/+A5mUpQUDD3D0F8YmhOg2ZzPuDL0fRMjmRoHsfgkSArALzBxXwjRCL5voKfhW7QpdX0JfDNLohLbU2ewsFKsPEE3MVFTur9WFSM1Aby1AlGeYewvTrzplxiFg9yMDA5uA6beC1LwX8xnKFICWKJi25LoeZ/o9uCW32eGyCPszFJshUilzD9MGdR0DKI0xlzuXwr3d9LdNkRKolFbdD4kinxu5ZQ1oiS3cKbgQ4ozLykYk7TTUkx0SSuXAkQbIxgQsd+m/04b5+q8pMzAJa5MAVckUuzvQ7iX5kIy5jBGipvzRDFyDN0q1YkyP1ll7n5HmFCnHn7Lkc1rI0gKoBnutRV+OSb9gf7ca7XbjnpRgWUOHMwavioFxfucsmYxKjNjkOpTtF9wop002N+pwM8Svtl4mN2YhQ76iJKCEd4wroNWMncCw05nzGD6ZcaazfxAKtvSdmx4iFTHC5rN3BCpbEvbseEhUh0vaDZz3zJS0WOSLCfOXjwp89R+bI5O0pX1Cr9yKk8upAZJwSBfBu/R+BbM0/IYrTeB/0aF1GD6MSJoZ2isjCa9SnfFGITUQirsSyHV6ypIyjurn47GhdSSSU2wdlrxh69CFParUiQps5dVwJZS6iSW6uNrkaQATQBLVGzgEj3exFQplZQK1lF6C6mlkpJoODzqnxJFbyG1SFLWw11LMdF5C6lFkjLhaVxILZlU40JqsaSQgo0LqcGzH9MAzwyuGPNYys/8I/YKv5/gOPoHMIxrI40KqVFSAM7jypeIuWHsXEgtNv3arOJAqs3q9Tl3iFSfq93Gl9z9xu5x39x52tjOPtfFDIdyhPp+/8T4DgLK/Cu7v9cMAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}0 & i\\\\1 & 0\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡0 ⅈ⎤\n", - "⎢ ⎥\n", - "⎣1 0⎦" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSSHS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADLUlEQVRoBe1ai20UMRC9RRQQQQdHB3wq4NIB0AHQAegqQKGD0AHKdZB0gJIOQgecroPjvcUjGa8/M876dhWtJd/tjT0z73nGXmeUbrVanaEP2vF4PAyEMxN0XRfFTpj36MegX4LUau4dmK8D3ORx/QQfbOcg0Hn98z/xvD+B9z/cQNvjFlLzRm9E91QzH7l74eb9wfcL9Aus0m+N7phzgOML/cN3NpOKpGDoFoa+wdCOAN3mvMU3Q39qYiTT4yCWVMuSAvBPUDwTQjSC5wPkNHyJfk7ZqRp8M0uKrbSn3sPCXcTKL8g2LmqR4WlFJVIbwNtHIMo7jOOza8n0U0bhWWtGDge3AVPvHin4veQzFykBLFHxbUn0km90f/IDn7eOyBXsbDW2cqQ0+s81k2rnIEpr6HL/snF/q07bHCmJRm8x+JAo8r3Vsu0RJTnCmYI/Nc6SpGBM0i6WYiJTrZwGSGyOYEDE3rnxH7F5oSxJyk28wTdTIGwSKY6fonEv7YRkyWGJFDfn64iRV5DdaZ1E9NUid/q9hEKfevgtV7akjSwpgGa491745Zr0AfKPSavjDvSLCiw74GDW8E+lbEu+pzwtRmXrDFL8Bv0tnMRuGhwftcHPDXyz8zJ7cAud9VEkBSM8ML5mrTQeBAbTHTObfo2xNjO/kGq2tCMbXiI18oI2M7dEqtnSjmx4idTIC9rM3KOMVPGaFC6nu4MVC4qhXu1v+JNbubqQaiYFcKqCYi0JXw+EqgqpZlK4XKoKij64mmcQqi6kznlPVRdS50xqgwjHij9SO+F4tKnSD6nAQoupoBj1phQ6f6XZUicZzNNGylxQHHiyCQSwRMXXluhxoaOtSAqrtoamuaAY9TauMFlILZICjqqC4gPxSzRiZiSKyUJqkZSrUbCKZCooxtBoZeIT82MpJrJkIbVIygNiKih6erWP1YVUFSl3GpkKirVMPL3qQqqKFByZC4oeuKpHpGB1IVX1noIDc0GxislQqaqQqiJFXyBmKigO8dkl7sAwF1K16WdHNKHGQmrCxTe5XiJlWq4JJ8vptw6v++7kmRBa2XWIGRpyhXp8/8T4F+pfFzck3CXOAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}0 & i\\\\i & 0\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡0 ⅈ⎤\n", - "⎢ ⎥\n", - "⎣ⅈ 0⎦" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SHSSHS\") # = exp(i*pi/2) HSSH" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡√2⋅ⅈ -√2⋅ⅈ ⎤\n", - "⎢──── ──────⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢ √2 √2 ⎥\n", - "⎢ ── ── ⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSSHSH\")" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ √2⋅ⅈ √2⎤\n", - "⎢ ──── ──⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢-√2⋅ⅈ √2⎥\n", - "⎢────── ──⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSHSSH\") # = exp(-i*pi/2) SSHSSS" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGQAAAA/CAYAAAAWq21gAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAGeklEQVR4Ae2bi3HcNhCG7zQuwLkS5A7spINzB1IJsjtwxhVknA6cFlSCU4KVDuwOYquDy/czAIYEXwAJgOQNMQMRz8X+u1iA3FsdD4fDmfyF7Kfvl8vlld+41+dL4Hg8PkHldQel+xe1xre1soo/vPpeTSeBB0idPHKVUTiFYA1/ewNmV9kJlzEirHscG7PWfvA9wtvdGH8+Rur/+HOg9ay2G78jVZ0F3kHrvZgZyqnWK03H4PsyhM32xfDmLCRmUuDYexjyj8HBqYB8yYAT874PDlxHZzS+ELazKATBfmDxz2LACPmjYebWPB8QemWipm4fGvcv+U/bsMZnHZ/4i8Q4CunMCORz0Z8kGXoy5YoW5c+2rKfq5G/1tq2V4d/hs5jqGKZgZM5PcnUfJVUIRGUdd5ZBytLCuVaXlajttW3b0hO+G/jEu8EzCyM0KoUkPbKM6b6Fyfrd8Z7FvorrvsQ8bQq9l//G3Pu+cUu39+ATW6MYY3iPshAIa4e/69rVtH8iu50yMKZxZJl5utC13V52zSvVxvqz8IlPkuTQwDjGP+PjjywmSXlarCU42iTQxtnqM0G/rOCbxto+yhKA5ur8jAJhaaR6sv4sfOKD1MIYwh/z4hViCTNZn/6fbN0wosu6916gT4LX16hThjdffR/qbUuV4SMan5HBIMYhPKw5SyHazc5KKA9aB/1i9NEyRFm76LZWd8eV+mz7Uk94iMInPoWH3ItxDAtzpyvEMKCjp7ISnr3WQZ/dNVKCzRrvLIWyBPBk6DYsbwxIrn74CcJneB7FOMYn681WiIQoIhKy2xn+wmaMtlAj18fRJwuRX0ivlM5y6mNKl+EjCJ/4IkkODXyqx/BsaNzJsaeLrPLJ8IxKvAZqF53Ib1h8C+6O1eJDllLqw4soDtuDf6dJ3x1XpwwDtTi+WRbS1s/eMlUC0RbChOqwnLpg7DysrujvJLnwxeIIPrJiCccqYOnxa8F3s7Qg9vWbEgi2kOa0/hqmr1fYj2aE3s+V+n7/+L93A39L4UquEGSrDzt5P6sEEH0EyhWx9QiWYrjOCAsZJvtxSpe/8/hSlpWobXGXyByMBkM2XNCvvtRz3CFJfxuA0bWkIriSH1nswr88CQqIgu5aoS/euFVXS+HKYSFOsNwf8nPJJ/TGNV5BISeubAqBad0d+jFLfq7nK9BDBSE3ruRHlri2TKOI6rd1s6OeqW/a51UCV3ILMUzrVfcPKcIoQ/fIpmOFS+FK7lyEcb2+6eOwkbCOor6pxuIJKrlxGfqz3e8tqAj+l1bjFTSUwpX8yOqTPTvgMpb75q6pHQyPYzjUP5XnIgqBwauIhDc4ql9XdQQP5akKyfKW1cFMlkjxjnVyN0XjQIm6T08oL+gNM7tCYGhqJHxu4UbRr+PQRCPoEK+2xkRF9J+ZgALTOBd9OtB20YyUNxsJX8chjKmxQK9yLopwNoVAuxEpTn2TnmAfh1FIUiysUSkk25FlTDo6Eh7GVpV6cIjHQe8v87TR5cuLjuifbCEsJn9V0kh4/8grUZ+Lw1hMI+IdmqrrQpcluSjNPjyMmXdkQUCKTBoJ38dszva5OIwyZAkuqp+yNqqUIU93UEQ/4+YpxAoJQtGR4swRw72R8JZ2yecUHEYZvVgMxqCIfsYmU4h2gTNLytoZ7s3KFyp9AuBigSlrdy0ezwsPUThqyujEAj13XAmjLwe/zpg0CjGMBUWKs6jdTVKCzfIMj56xPoAcdfgIwmEwD2KBlhQcHNHP2KQK0eIiKCG7HeMLzYyRNTWyP26pOnwF4TAKEd4GDtUt75RlIcER/YytFJLM/c5r3lVEwi+Fg3WlkKTu9+KR4gDIkRbFMenDEG3KVDsTffLsTkqYe9EfsXLh6AMfgm+SQkII9zG1pvY14rhZk4B2Xg6HSRYyJDiOAb1dhLilh8isrq8UruQKQZLFgpILa60YrjPAOE7T/B4iWuRsQcmp+IylkxsX9KvvkBx3yKBbmoW3morgSn5ksfP2YOsZWy6HhTh2uAjlSpE7Yg+2dlIZLmRTCMq4Zek92HpY/q3e5EeWVrDK4Pjag61bIh9uSG4hRhlyqe/B1sOy7+xN5u211FGIXt/0cdhIWEtRP1Vj8QSV3LgM/aTe3go2gt+DrWdsAHdkoSE/GFq/b+wpgwSQ9ZMvb5apThUdIyr82rHuD3b7pv9RswPTKppQhj4HTh3MfP0PQGFN59x03VEAAAAASUVORK5CYII=\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡√2⋅ⅈ √2 ⎤\n", - "⎢──── ── ⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢ √2 √2⋅ⅈ⎥\n", - "⎢ ── ────⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSSHSHS\") # = exp(-i*pi/2) SSSHSSS" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJkAAAAzCAYAAACE26oyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFSElEQVR4Ae1bgVHbMBRNegwAjJBuANcNwgZwnaCwAVwn4OgGsAIjABu0bFBGaLNB+l4q5/7Zsf1tSdGPLN3pIsuS/PT08iVZ/vPZbHaM2Ajr9XrVyDSeMZ/P2ZdTYP8wDtUsPB8OXd1G3z4h5xfi31p8qJdkA4jXiCxvNXwHsEur4CbA4TO4r2vp+cgNyAX+/a9tgwNyznBv6e7vtHxtdfeZjz7c7fN5Q541BQ7B/4XkBH2+xvVVJTJ5r5FG5XdkvqOSWSvRAG0sY8ocqkRmbLwacCB+Wlla2y8YzKtGgZLRy0BMDrkmyyHQTD8hXoIss9O5caKjcXjwIoOoFhi8e0Rasw9YsoPbFacWX2wOk4qMJhqRi8PRAaKqhHWDRh5HNzThirE5TCoyjCunNu/pDUJlG7RkT0hzbVbCQAZicphaZAOpaC1Ogb27qfJra6lyo4uBaByqRAaVLxD5gpYvO5l+RLztQrzne3zH9+EwmZwygW2yHB5pxMA5G+XMvuh0Fsz0q4spc6iyZBohljKFgTYGei0ZzPy6rXKVj3/pvErv+kUbnMI459fDKTNwnzvDeuAaq9M6hcBWf2iM6xA40QY3N2+IQzZKV+CQpzWtIQS21sbdjV6R9Qmo7wG8jzZ2iYji4jHVAvd/aNqplwmBrd5mjOsQONHGCtjOQ+MLga0PU5ku+xgq970Z6LVkfIIz1dxZMiz+/8y+uX+Xu0zzYxmbZMQyztjYVCIDWQ8Q1HbKAyiusfhd2WdJZKK0ZWySEss4o2P7DSaWEBHXTjsj7nPxvy2DNK0Z887a6mjyUZ9rsltN2bYyDkdwbG3PG5tvGWcsbGiXR4Yv2jUZrdhPRIvBMjbJl2WcUbGppkv8e/kZjQwExYPpzu2xrNCS5o6JcXSIiG00pl0VLeOMjU0lMkka1mM8gOY0572dRudaP/mWz9SmQ2LTPnNMOcs4Y2DTTpcbLgGAazGeYZ5DIF4WaMzgdNWxjE3itowzFja1JasAQFwbZwFc06KtcJ3c/cwytl0CmxqHKkvmBpGvLe4pLicwrsv+SBJTpC1jk3xYxhkbG88c+QrjBv+u1vURQNCX7liSxjTqdJ5Z1svHuLaMTfbXMs4h2FCWOlA5UKPsxiVOZckgphM0zEjrxYPruQWBAQuFfiLw8Az0zgo24quCxFnhrePkAHJgEPfqQK3BVvUDvzz5GeQaqVqTodNcfy3dgxoWzeUn/wFZZr956yMnZ45VIsPgFefePpV43s+ZY5XIPPmLXh1WgFaW1rY490Zi24dj1ZosEu6QzUZzTA0J8sDbGs3xwYsM/7AFBu8ekdas8sE88PG0Bd+X46QiowlGLM69ETVlgeOkIgO33Kl671ZBJNugJSvOvSChFpJznFpkNT5GX1Jgxbl3NH2qiqM5VokMlmKyjqkq+gMUypnjIw0/eIdTnHs1RHmUyZljlSXz4K5ULQzMei0ZzHhx7u0Qitt0eDnd5s5xr8hgxr2/tEAbPFhvBJB78M696NsKHfP6Sjh3jst02ZB+yQjNQK8l4wPdlFCce0OzL9rLmWOVyMBFdOdPwffQpGVsQ/piuR9e2LTTJT+kWwrG6EzCd2f88iF1sIxtCDeW++GFTSsyLtyLc+8QyQwvmy3HqukSu5/i3DtcNINq5MyxSmSSLTdFFudeSUrgdG4ca6fLDY3o/AKJ4twbWFSyuRw5VluyqvMw68W5V6oiYDpXjitLxp0i3bG2UXLnOl+ceyUpgdM5cCz1wzQoYpxVzr2cBmV4gsXaHgWhQnHulexESOfAMfrwAmrkqy4y9foPAlOW4hBH8V4AAAAASUVORK5CYII=\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\\\frac{1}{2} + \\frac{i}{2} & - \\frac{1}{2} + \\frac{i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 ⅈ 1 ⅈ ⎤\n", - "⎢─ + ─ ─ - ─ ⎥\n", - "⎢2 2 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢1 ⅈ 1 ⅈ⎥\n", - "⎢─ + ─ - ─ + ─⎥\n", - "⎣2 2 2 2⎦" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SHSH\")" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\\\\\frac{1}{2} + \\frac{i}{2} & \\frac{i \\left(-1 + i\\right)}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 ⅈ 1 ⅈ ⎤\n", - "⎢─ + ─ ─ + ─ ⎥\n", - "⎢2 2 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢1 ⅈ ⅈ⋅(-1 + ⅈ)⎥\n", - "⎢─ + ─ ──────────⎥\n", - "⎣2 2 2 ⎦" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SHSHS\")" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJkAAAAzCAYAAACE26oyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFe0lEQVR4Ae1bi1HcMBC9y1AAUMKlA5h0cHQAkwoCHcCkAoZ0AC1QAqSDhA5CCcl1cHnvkA9hW+fV77y2pRmNZVmft0/r1cfe+Ww2O0RshPV6vWpkKs+Yz+eU5RjYX5VDHSy8XRybZw3ZPiHnN+K/Wryrl2QDiJeILK81fAewc63gunCNgONHyFjXpccDI/gZ3v5nFwkQ/gTPluZ5q+Vz1d1nPmS42Wd/KfsaA8fg/8zmBDJd4v6iUjL7WSONyi/IfEGlwVqJhlDKMsbMsUjJlI1HAw6Un1aW1vYLBuuiUaBkRDMQwzHXZGMINNMPiOcgQ+10PnCigzkevJJBqRYYvFtEWrNXWLLB7Yq1K18sx70qGU0wIheHwQFKVSnWFRq5D25opBU1cNyrkmFcObVFT28gkm3Qkj0gzbVZCe8M9M5x30r2TkVcigr2YqbKr3FNldoOBoI5FikZrMMCkQe0POxk+h7x2gGmj2ye8b0aTIOcMoF9tBwfSDSC6x6UU3vQaSzYoI8uxsyxyJJJFLGUKQy4GOi0ZDDja1flKh9v4bxKt13RBqcwzun1cMwMPOfOsB64xtppnVJgq3fqew8MXFj/RPTZwFxANn5F2YQUcqANtRx3KlmXAlVE7bqijTYlonLxM9UCz3/squ96lgKbq21pPjCsUPZUWr6tXAo50IZajst02TbqJS8pA52WjL2ZKYE7S4bF22X2zbzF5rafi2ZsPoxoliMWm0jJQNadbY7RKed//lf22YfITGU1Y/MRWbMcUdik0yV/VrQX7jwz47mOhtN1zdh8lEyzHFHYpErGReUvH8b2WFYzNh8aNMsRhU00XWKq5G80dmCn/DC93YbbDz3S3JkxBoeM2IIxhVTMKEfvHIuUzCbNTJE8eojatrNNEOv85dvuU5pOiU3aZ45yKeXQwLF0utxwCeG5s+R67BTgoyxQ6sHRjM1HVs1yhGITW7KqAyjXxlkA91z0r3Dfu/uZZmwhCjY2jkWWzAwijy1uqVxGwbgu++tDYo6ymrH5yKtZjlhs/Ob4B/EKb49zfYRO6Et3WCcNdXZ+s6yXz3GvGZuPvFrkAA6O8wcH6VBsqLdxiRNZMijTETpmpPXih+u5BgUDFm4ejiw8/AZ6owUb8dmBA0jiERsO0rYclTw9ycEvOx9cH2OxidZkIIXrr6UhrGHRbCL7TIMMtf+8TZlDkZJh8Ipzb+TbM2UORUoWyW/26rAStLK0tsW5N5DtnByK1mSBuPdZLdjxdJ8glfeVjcPBKxnewAUG7xaR1qzywVQ+nrrg5eawVyWjiUYszr096xzWi9XLydMDnocmDb0qGSThTjV6twpFZRu0ZMW5FySEhJwc9q1kIXy01aGCFefeNmbkedk4FCkZtHy0jqfyMYgrOWUODyTUcc5GObUHncC3Ar6d7nMSOXOWmTKHIkuWk/zS9vgZ6LRkMPPFuTdSDxJxyM1NlBNxmxgpsLW1a+d1KhnMfPSfFmiDW+NGgICDd+5tCNWSkYhDLgmi/0auw0uBrd5m/b5Ml3VGyn1yBjotGXuExaGp5i8gDIu3S3HuNTyILlPmUKRkYDHKuVM0CuGFNGOzpdKMMzs2/hm7xNzMHwBbI55z8b8tgzStGfNOXHUk+ajPNdm1pKyrjMGRHJurv9B8zThzYUO7/GT4JF2TceFenHtBQkSYLIei6RJvb3HujdAuVs3IYSSy/NhESmZLgQUsfw4szr02KZ7plBx6dt1ZPAc26XS5AQcAXIsV597OoXIXmCKHYktWkQOzX5x73Tq088lUOawsGf+yoLvWNtpsGXKKc69Nimd6Chza+sM0KGKcVc69nAbt8ACLtf0UhArFuddmJyA9BQ4h4xOoWdboef4PUz+W4jFS3NIAAAAASUVORK5CYII=\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & - \\frac{1}{2} + \\frac{i}{2}\\\\\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 ⅈ 1 ⅈ⎤\n", - "⎢─ + ─ - ─ + ─⎥\n", - "⎢2 2 2 2⎥\n", - "⎢ ⎥\n", - "⎢1 ⅈ 1 ⅈ ⎥\n", - "⎢─ + ─ ─ - ─ ⎥\n", - "⎣2 2 2 2 ⎦" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SHSHSS\") # = SHSH" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKkAAAAzCAYAAADsKCgKAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFrklEQVR4Ae1cgVHcMBD8z1AASQmfDsKkA+gAJhUEOkgmFTCkA2iBEkI6SOgglJB8B2T3kX+E7PdbupN8AmlG87ZfOu+t1idZtrVcLBaHyL30+Pi47h2s/MByuaSv7+DbQ+WumIUv4djV7fn2Bkd+I/8L8lWv5IQDPAnyOTJtWkzfAOrUIrApmCrgl25IOL5F/VCLtweOnBNElzu3nfQDAj+g4rGrPBidkwwrVoKPXxXNFTVVA78kRMIx6p74pMLnc+yfdSL1/0vaxgnuUfEehquNVEmOF6r0mvlVE2mhtko6DS4cRnhG+o9o7LMkI63SKAM5OeaY9DUkdiM3yKcg0+RQ5AU0QjaOX7xIIcoVBHCJzGj6gEj64mYt5hZ4bo5Ni5RdCDIHz8kJouyEeQEj18mGWsWdDOTm2LRIwQq7ZnH3DKHTBiPpDbY5Nm1JmYGcHFsXqRaVFOi96+o/aRltdp4xkI1jNZHiSloh8yEAJ3O5fY385Zkb8+1wDvjB4amyywd2y/yyZbNxfKClG45LYMvkZLmLoFVPPVnmlxrKybFaJNUSe7PTGAgZUImk6IoeQ8PhPq60ZXis20d9dsEc04TpHQ/gf96Zh4ljzNHoKMUVnnCufQ0/YIM3jz+RY25Ez8AxnyTuTBrYdhp3f6iIdEyA+wDwf9QfEiHFyUesK/z/fYqdsIwUV2hvrn0NP2BjDfxH2j5oYNuHqXX3+xhq/8/OgEokpReuO+GdPdPq6Wfx2V3Bbrf8j1VcsUxY9iM3NjWRgvQrCHLbbQM4x5l8r/R9bIMol7eKK9ZNy35kxabZ3fNlZ//mh3OmnNub+wmPVVyxIrXsR1ZsmiJlFP0Vy3yB8lZxxbpu2Y+s2NS6e3T1fBXOTwTOlztGpzD8CgPbvCNlTk6ZcCXjSa1o2Y/c2NRE6pPvunhOH4mmPOC86JMWHxO3tXCFdkvvW/YjBzbN7n7TVgDJO3uOR48gMlEU1Gx8q7hifbTsRy5sqpG0Awlxbj6owj5vmtbYn/UTYqu4UgVqjV/6kZNjtUjqQHLa6ZLiZMY2x6V/kWdLVnHFEmLZj9zY+Dz9D/IFrk7R+A9A+b30YUg+7O58Zh+WzbEfgwtlid/k4hExfuTgccxmDLYYjlF280mzWiSFGN9SkGH2nSNAnhi52OIRU3B5GPnEzOQn2VP8mINfcjcFm4Rj1TGpB6S3CQLZ/R+7P3oRt1dhhgMg2+T7sFOoqIFf+pHCcTGRAlxbPGKK2hLLvGR+i4k0kfsi1RCFGOEZ6dviEZkYl3CsNibN5Fsps9kWNijlQAXnSeb41YsUV/gKDXyJzGjafaNfQZvXA1HKcdUiZReC3BaPMK5XjJe7i5/z5pxLj0pVixSecpZAPFMAodMGI2lbPAIk5EgSjmsXqRafFGhbPEKLzWE7yRwXEymuJMuLG2Rb2GC4vfSPGueXDidzfKBP17BFjkvwj8nJcmBbA9vo59HDXtk5aplfsiThuFgktdOcDUltDIxGUjfYFS8oADtt8YgdytDgWMovoWngGHJRA9uoSF2IFr1dT+CwI3oTCvU5ddFLIKD6xSM0OJbyS2I1cPQa6MmuqO1ps3X3Q8y2Y6YYGI2kmkhdd8JX4ZhWTz9t8QjHg/jHKr90TIqtmEiBNesCAoJWtoor1iXLfoiwlezusy4gENuiXnmruDyIkzYt+yHCVlKkvPlpi0dM0ltSIav80hkRtmLdPe4e2+IRSdqbVikTv9NOvqeUFFsxkfp+YCDNF4zb4hE+KYrbWvwqQtqaSsFWsrvfAAVI3tm3xSO2zaa7YZVfepmKrWgk7UAi/LfFI3S1ubFmlV9foClt30VSvqHEz423WZtDR2BbPEKbWGfPKr+eQPe2va8/bqPu5l3hbnEIdsF+uoHiBx9F+oVitnHS6hePiPG3dFmr/JKHqdhQ7geKHwfc3f0HCdAl4eABvw4AAAAASUVORK5CYII=\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\- \\frac{1}{2} + \\frac{i}{2} & - \\frac{1}{2} - \\frac{i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ 1 ⅈ 1 ⅈ ⎤\n", - "⎢ ─ + ─ ─ - ─ ⎥\n", - "⎢ 2 2 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢ 1 ⅈ 1 ⅈ⎥\n", - "⎢- ─ + ─ - ─ - ─⎥\n", - "⎣ 2 2 2 2⎦" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"SSHSH\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Using the string representation:" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "LC = [\"H\", \"S\", \"SS\", \"HH\", \"HS\", \"SH\", \"HSS\", \"SSH\", \"SSS\", \"HSSS\", \"SSSH\",\n", - " \"SHS\", \"SHSS\", \"SSHS\", \"SSHSS\", \"SSHSSS\", \"HSH\", \"HSSH\", \"SHSSH\",\n", - " \"HSSHS\", \"HSSHSH\", \"SHSH\", \"SHSHS\", \"SSHSH\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAABMAAAAOCAYAAADNGCeJAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABOElEQVQ4EX2TjU0DMQxGL0xwYoSyARIblA2Q2AA2aGfoCLBCR6ArdAS6QrvB8d7JiZLcUUtWnM//sTNM0zRAG/gr+Mz5Az+ru8fa6JNtkOdAxwx4QgdYYVvjvYz+Fy6+yMMRHlcMr+DXHs93dDu4CfYAsNUppTRy1nTiMoL7BA2B2d4tuOgMptOFjCrXqE+izTv23wvjXHZ/YmgLwO0QwGxvIw45rPJmVragaMP29rUyWr4R6FLjRe4zR0arKiPPNmCHLIfd/crI7r6dMP4sGRHAPzjU/UtNm+HgQ/WBbNn1WW8vwqco18xvYC/cyzuBGUTybBLM6DDo4xbMGzF/Fy7uTfMekcTJLRZaXehd7DLNxMWs/kWj1/TIxf/5VIO1TOXuh+/7mnEnIrjG51xFfWLrIGo/i9n9ATCSR9TdYl8YAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle 24$" - ], - "text/plain": [ - "24" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(LC)" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & i\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & -1\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & 1\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & - i\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2} i}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\- \\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\\\- \\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\\\frac{1}{2} - \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & 1\\\\1 & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & 1\\\\i & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & i\\\\1 & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\\\frac{1}{2} + \\frac{i}{2} & - \\frac{1}{2} + \\frac{i}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\\\\\frac{1}{2} + \\frac{i}{2} & \\frac{i \\left(-1 + i\\right)}{2}\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} - \\frac{i}{2}\\\\- \\frac{1}{2} + \\frac{i}{2} & - \\frac{1}{2} - \\frac{i}{2}\\end{matrix}\\right]\\right]$" - ], - "text/plain": [ - "⎡⎡√2 √2 ⎤ ⎡√2 √2⋅ⅈ ⎤ ⎡ √2 √2 ⎤ ⎡√2 -√2 ⎤\n", - "⎢⎢── ── ⎥ ⎢── ──── ⎥ ⎢ ── ── ⎥ ⎢── ────⎥\n", - "⎢⎢2 2 ⎥ ⎡1 0⎤ ⎡1 0 ⎤ ⎡1 0⎤ ⎢2 2 ⎥ ⎢ 2 2 ⎥ ⎢2 2 ⎥\n", - "⎢⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥\n", - "⎢⎢√2 -√2 ⎥ ⎣0 ⅈ⎦ ⎣0 -1⎦ ⎣0 1⎦ ⎢√2 -√2⋅ⅈ ⎥ ⎢√2⋅ⅈ -√2⋅ⅈ ⎥ ⎢√2 √2 ⎥\n", - "⎢⎢── ────⎥ ⎢── ──────⎥ ⎢──── ──────⎥ ⎢── ── ⎥\n", - "⎣⎣2 2 ⎦ ⎣2 2 ⎦ ⎣ 2 2 ⎦ ⎣2 2 ⎦\n", - "\n", - " ⎡ √2 √2⎤ ⎡√2 -√2⋅ⅈ ⎤ ⎡ √2 √2 ⎤ ⎡ √2 √2⋅ⅈ⎤ ⎡ √2 -√2 \n", - " ⎢ ── ──⎥ ⎢── ──────⎥ ⎢ ── ── ⎥ ⎢ ── ────⎥ ⎢ ── ────\n", - " ⎢ 2 2 ⎥ ⎡1 0 ⎤ ⎢2 2 ⎥ ⎢ 2 2 ⎥ ⎢ 2 2 ⎥ ⎢ 2 2 \n", - ", ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ \n", - " ⎢-√2 √2⎥ ⎣0 -ⅈ⎦ ⎢√2 √2⋅ⅈ ⎥ ⎢-√2⋅ⅈ √2⋅ⅈ⎥ ⎢√2⋅ⅈ √2 ⎥ ⎢√2⋅ⅈ √2⋅ⅈ\n", - " ⎢──── ──⎥ ⎢── ──── ⎥ ⎢────── ────⎥ ⎢──── ── ⎥ ⎢──── ────\n", - " ⎣ 2 2 ⎦ ⎣2 2 ⎦ ⎣ 2 2 ⎦ ⎣ 2 2 ⎦ ⎣ 2 2 \n", - "\n", - "⎤ ⎡ √2 √2⋅ⅈ⎤ ⎡ √2 -√2 ⎤ ⎡ √2 -√2⋅ⅈ ⎤ ⎡1 ⅈ 1 ⅈ⎤ \n", - "⎥ ⎢ ── ────⎥ ⎢ ── ────⎥ ⎢ ── ──────⎥ ⎢─ + ─ ─ - ─⎥ \n", - "⎥ ⎢ 2 2 ⎥ ⎢ 2 2 ⎥ ⎢ 2 2 ⎥ ⎢2 2 2 2⎥ ⎡0 1⎤ ⎡0 1⎤ \n", - "⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥,\n", - "⎥ ⎢-√2 √2⋅ⅈ⎥ ⎢-√2 -√2 ⎥ ⎢-√2 -√2⋅ⅈ ⎥ ⎢1 ⅈ 1 ⅈ⎥ ⎣1 0⎦ ⎣ⅈ 0⎦ \n", - "⎥ ⎢──── ────⎥ ⎢──── ────⎥ ⎢──── ──────⎥ ⎢─ - ─ ─ + ─⎥ \n", - "⎦ ⎣ 2 2 ⎦ ⎣ 2 2 ⎦ ⎣ 2 2 ⎦ ⎣2 2 2 2⎦ \n", - "\n", - " ⎡√2⋅ⅈ -√2⋅ⅈ ⎤ ⎡1 ⅈ 1 ⅈ ⎤ ⎡1 ⅈ 1 ⅈ ⎤ ⎡ 1 ⅈ 1 \n", - " ⎢──── ──────⎥ ⎢─ + ─ ─ - ─ ⎥ ⎢─ + ─ ─ + ─ ⎥ ⎢ ─ + ─ ─ -\n", - " ⎡0 ⅈ⎤ ⎢ 2 2 ⎥ ⎢2 2 2 2 ⎥ ⎢2 2 2 2 ⎥ ⎢ 2 2 2 \n", - " ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ ⎥, ⎢ \n", - " ⎣1 0⎦ ⎢ √2 √2 ⎥ ⎢1 ⅈ 1 ⅈ⎥ ⎢1 ⅈ ⅈ⋅(-1 + ⅈ)⎥ ⎢ 1 ⅈ 1 \n", - " ⎢ ── ── ⎥ ⎢─ + ─ - ─ + ─⎥ ⎢─ + ─ ──────────⎥ ⎢- ─ + ─ - ─ \n", - " ⎣ 2 2 ⎦ ⎣2 2 2 2⎦ ⎣2 2 2 ⎦ ⎣ 2 2 2 \n", - "\n", - " ⅈ ⎤⎤\n", - " ─ ⎥⎥\n", - " 2 ⎥⎥\n", - " ⎥⎥\n", - " ⅈ⎥⎥\n", - "- ─⎥⎥\n", - " 2⎦⎦" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[simplify(evalstr(c)) for c in LC]" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADFUlEQVRoBe1ai00jMRDNoisAQQe5DvhUcEkHx3UAdABKBSeuA6ACRDpIOkCkA+iAKB2E9xaP5DPjT3bXi4V2JGeTsT3znme86x2oRqPRPton2W63m0/KwhRVVanYCfMFbeu0W5Aald6AeeHgJo/FHj4oUxCorHb5oS77E3j/ww20NW4hVTb6HdH9SBmP3L0x495w/Yl2g1V6TZnb5RjguKJ/+A5mUpQUDD3D0F8YmhOg2ZzPuDL0fRMjmRoHsfgkSArALzBxXwjRCL5voKfhW7QpdX0JfDNLohLbU2ewsFKsPEE3MVFTur9WFSM1Aby1AlGeYewvTrzplxiFg9yMDA5uA6beC1LwX8xnKFICWKJi25LoeZ/o9uCW32eGyCPszFJshUilzD9MGdR0DKI0xlzuXwr3d9LdNkRKolFbdD4kinxu5ZQ1oiS3cKbgQ4ozLykYk7TTUkx0SSuXAkQbIxgQsd+m/04b5+q8pMzAJa5MAVckUuzvQ7iX5kIy5jBGipvzRDFyDN0q1YkyP1ll7n5HmFCnHn7Lkc1rI0gKoBnutRV+OSb9gf7ca7XbjnpRgWUOHMwavioFxfucsmYxKjNjkOpTtF9wop002N+pwM8Svtl4mN2YhQ76iJKCEd4wroNWMncCw05nzGD6ZcaazfxAKtvSdmx4iFTHC5rN3BCpbEvbseEhUh0vaDZz3zJS0WOSLCfOXjwp89R+bI5O0pX1Cr9yKk8upAZJwSBfBu/R+BbM0/IYrTeB/0aF1GD6MSJoZ2isjCa9SnfFGITUQirsSyHV6ypIyjurn47GhdSSSU2wdlrxh69CFParUiQps5dVwJZS6iSW6uNrkaQATQBLVGzgEj3exFQplZQK1lF6C6mlkpJoODzqnxJFbyG1SFLWw11LMdF5C6lFkjLhaVxILZlU40JqsaSQgo0LqcGzH9MAzwyuGPNYys/8I/YKv5/gOPoHMIxrI40KqVFSAM7jypeIuWHsXEgtNv3arOJAqs3q9Tl3iFSfq93Gl9z9xu5x39x52tjOPtfFDIdyhPp+/8T4DgLK/Cu7v9cMAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}0 & i\\\\1 & 0\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡0 ⅈ⎤\n", - "⎢ ⎥\n", - "⎣1 0⎦" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[simplify(evalstr(c)) for c in LC][19]" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "product_table = []\n", - "row = []\n", - "\n", - "for i,p in enumerate(product(LC, LC)):\n", - " if(i % 24 == 0):\n", - " product_table.append(row)\n", - " row = []\n", - " row.append(p[0] + p[1])\n", - " \n", - "product_table = product_table[1:]" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [], - "source": [ - "def simplify_str(s):\n", - " # Start with removing obvious identities.\n", - " s = s.replace(\"HH\", \"\").replace(\"SSSS\", \"\").replace(\"HH\", \"\")\n", - " # We precomputed some other stuff. Use that now:\n", - " s = s.replace(\"SSSHSSS\", \"HSH\")\n", - " s = s.replace(\"SHSSHS\", \"HSSH\")\n", - " s = s.replace(\"HSSHSHS\", \"HSH\")\n", - " \n", - " # Check for identities again:\n", - " s = s.replace(\"HH\", \"\").replace(\"SSSS\", \"\").replace(\"HH\", \"\")\n", - " s = s.replace(\"HH\", \"\").replace(\"SSSS\", \"\").replace(\"HH\", \"\")\n", - " return s" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "product_table = [[simplify_str(s) for s in row] for row in product_table]" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[['',\n", - " 'HS',\n", - " 'HSS',\n", - " 'H',\n", - " 'S',\n", - " 'HSH',\n", - " 'SS',\n", - " 'HSSH',\n", - " 'HSSS',\n", - " 'SSS',\n", - " 'HSSSH',\n", - " 'HSHS',\n", - " 'HSHSS',\n", - " 'HSSHS',\n", - " 'HSSHSS',\n", - " 'HSSHSSS',\n", - " 'SH',\n", - " 'SSH',\n", - " 'HSHSSH',\n", - " 'SSHS',\n", - " 'SSHSH',\n", - " 'HSHSH',\n", - " 'HSHSHS',\n", - " 'HSSHSH'],\n", - " ['SH',\n", - " 'SS',\n", - " 'SSS',\n", - " 'S',\n", - " 'SHS',\n", - " 'SSH',\n", - " 'SHSS',\n", - " 'SSSH',\n", - " '',\n", - " 'SHSSS',\n", - " 'H',\n", - " 'SSHS',\n", - " 'SSHSS',\n", - " 'SSSHS',\n", - " 'SSSHSS',\n", - " 'HSH',\n", - " 'SHSH',\n", - " 'SHSSH',\n", - " 'SSHSSH',\n", - " 'HSSH',\n", - " 'HSS',\n", - " 'SSHSH',\n", - " 'SSHSHS',\n", - " 'SSSHSH'],\n", - " ['SSH',\n", - " 'SSS',\n", - " '',\n", - " 'SS',\n", - " 'SSHS',\n", - " 'SSSH',\n", - " 'SSHSS',\n", - " 'H',\n", - " 'S',\n", - " 'SSHSSS',\n", - " 'SH',\n", - " 'SSSHS',\n", - " 'SSSHSS',\n", - " 'HS',\n", - " 'HSS',\n", - " 'HSSS',\n", - " 'SSHSH',\n", - " 'SSHSSH',\n", - " 'SSSHSSH',\n", - " 'SHSSH',\n", - " 'SHSS',\n", - " 'SSSHSH',\n", - " 'SSSHSHS',\n", - " 'HSH'],\n", - " ['H',\n", - " 'S',\n", - " 'SS',\n", - " '',\n", - " 'HS',\n", - " 'SH',\n", - " 'HSS',\n", - " 'SSH',\n", - " 'SSS',\n", - " 'HSSS',\n", - " 'SSSH',\n", - " 'SHS',\n", - " 'SHSS',\n", - " 'SSHS',\n", - " 'SSHSS',\n", - " 'SSHSSS',\n", - " 'HSH',\n", - " 'HSSH',\n", - " 'SHSSH',\n", - " 'HSSHS',\n", - " 'HSSHSH',\n", - " 'SHSH',\n", - " 'SHSHS',\n", - " 'SSHSH'],\n", - " ['HSH',\n", - " 'HSS',\n", - " 'HSSS',\n", - " 'HS',\n", - " 'HSHS',\n", - " 'HSSH',\n", - " 'HSHSS',\n", - " 'HSSSH',\n", - " 'H',\n", - " 'HSHSSS',\n", - " '',\n", - " 'HSSHS',\n", - " 'HSSHSS',\n", - " 'HSSSHS',\n", - " 'HSSSHSS',\n", - " 'SH',\n", - " 'HSHSH',\n", - " 'HSHSSH',\n", - " 'HSSHSSH',\n", - " 'SSH',\n", - " 'SS',\n", - " 'HSSHSH',\n", - " 'HSH',\n", - " 'HSSSHSH'],\n", - " ['S',\n", - " 'SHS',\n", - " 'SHSS',\n", - " 'SH',\n", - " 'SS',\n", - " 'SHSH',\n", - " 'SSS',\n", - " 'SHSSH',\n", - " 'SHSSS',\n", - " '',\n", - " 'SHSSSH',\n", - " 'SHSHS',\n", - " 'SHSHSS',\n", - " 'HSSH',\n", - " 'HSSHS',\n", - " 'HSSHSS',\n", - " 'SSH',\n", - " 'SSSH',\n", - " 'SHSHSSH',\n", - " 'SSSHS',\n", - " 'SSSHSH',\n", - " 'SHSHSH',\n", - " 'SHSHSHS',\n", - " 'HSS'],\n", - " ['HSSH',\n", - " 'HSSS',\n", - " 'H',\n", - " 'HSS',\n", - " 'HSSHS',\n", - " 'HSSSH',\n", - " 'HSSHSS',\n", - " '',\n", - " 'HS',\n", - " 'HSSHSSS',\n", - " 'HSH',\n", - " 'HSSSHS',\n", - " 'HSSSHSS',\n", - " 'S',\n", - " 'SS',\n", - " 'SSS',\n", - " 'HSSHSH',\n", - " 'HSSHSSH',\n", - " 'HSSSHSSH',\n", - " 'HSHSSH',\n", - " 'HSHSS',\n", - " 'HSSSHSH',\n", - " 'HSSSHSHS',\n", - " 'SH'],\n", - " ['SS',\n", - " 'SSHS',\n", - " 'SSHSS',\n", - " 'SSH',\n", - " 'SSS',\n", - " 'SSHSH',\n", - " '',\n", - " 'SSHSSH',\n", - " 'SSHSSS',\n", - " 'S',\n", - " 'SSHSSSH',\n", - " 'SSHSHS',\n", - " 'SSHSHSS',\n", - " 'SHSSH',\n", - " 'SHSSHS',\n", - " 'SHSSHSS',\n", - " 'SSSH',\n", - " 'H',\n", - " 'SSHSHSSH',\n", - " 'HS',\n", - " 'HSH',\n", - " 'SSHSHSH',\n", - " 'SSHSHSHS',\n", - " 'SHSS'],\n", - " ['SSSH',\n", - " '',\n", - " 'S',\n", - " 'SSS',\n", - " 'SSSHS',\n", - " 'H',\n", - " 'SSSHSS',\n", - " 'SH',\n", - " 'SS',\n", - " 'HSH',\n", - " 'SSH',\n", - " 'HS',\n", - " 'HSS',\n", - " 'SHS',\n", - " 'SHSS',\n", - " 'SHSSS',\n", - " 'SSSHSH',\n", - " 'SSSHSSH',\n", - " 'HSSH',\n", - " 'SSHSSH',\n", - " 'SSHSS',\n", - " 'HSH',\n", - " 'HSHS',\n", - " 'SHSH'],\n", - " ['HSSSH',\n", - " 'H',\n", - " 'HS',\n", - " 'HSSS',\n", - " 'HSSSHS',\n", - " '',\n", - " 'HSSSHSS',\n", - " 'HSH',\n", - " 'HSS',\n", - " 'SH',\n", - " 'HSSH',\n", - " 'S',\n", - " 'SS',\n", - " 'HSHS',\n", - " 'HSHSS',\n", - " 'HSHSSS',\n", - " 'HSSSHSH',\n", - " 'HSSSHSSH',\n", - " 'SSH',\n", - " 'HSSHSSH',\n", - " 'HSSHSS',\n", - " 'SH',\n", - " 'SHS',\n", - " 'HSHSH'],\n", - " ['SSS',\n", - " 'SSSHS',\n", - " 'SSSHSS',\n", - " 'SSSH',\n", - " '',\n", - " 'SSSHSH',\n", - " 'S',\n", - " 'SSSHSSH',\n", - " 'HSH',\n", - " 'SS',\n", - " 'HS',\n", - " 'SSSHSHS',\n", - " 'SSSHSHSS',\n", - " 'SSHSSH',\n", - " 'SSHSSHS',\n", - " 'SSHSSHSS',\n", - " 'H',\n", - " 'SH',\n", - " 'SSSHSHSSH',\n", - " 'SHS',\n", - " 'SHSH',\n", - " 'SSSHSHSH',\n", - " 'SSSHSHSHS',\n", - " 'SSHSS'],\n", - " ['SHSH',\n", - " 'SHSS',\n", - " 'SHSSS',\n", - " 'SHS',\n", - " 'SHSHS',\n", - " 'SHSSH',\n", - " 'SHSHSS',\n", - " 'SHSSSH',\n", - " 'SH',\n", - " 'SHSHSSS',\n", - " 'S',\n", - " 'HSSH',\n", - " 'HSSHS',\n", - " 'SHSSSHS',\n", - " 'SHSSSHSS',\n", - " 'SSH',\n", - " 'SHSHSH',\n", - " 'SHSHSSH',\n", - " 'HSSHSH',\n", - " 'SSSH',\n", - " 'SSS',\n", - " 'HSS',\n", - " 'HSSS',\n", - " 'SHSSSHSH'],\n", - " ['SHSSH',\n", - " 'SHSSS',\n", - " 'SH',\n", - " 'SHSS',\n", - " 'HSSH',\n", - " 'SHSSSH',\n", - " 'HSSHS',\n", - " 'S',\n", - " 'SHS',\n", - " 'HSSHSS',\n", - " 'SHSH',\n", - " 'SHSSSHS',\n", - " 'SHSSSHSS',\n", - " 'SS',\n", - " 'SSS',\n", - " '',\n", - " 'HSS',\n", - " 'HSSHSH',\n", - " 'SHSSSHSSH',\n", - " 'HSH',\n", - " 'HS',\n", - " 'SHSSSHSH',\n", - " 'SHSSSHSHS',\n", - " 'SSH'],\n", - " ['SSHSH',\n", - " 'SSHSS',\n", - " 'SSHSSS',\n", - " 'SSHS',\n", - " 'SSHSHS',\n", - " 'SSHSSH',\n", - " 'SSHSHSS',\n", - " 'SSHSSSH',\n", - " 'SSH',\n", - " 'SSHSHSSS',\n", - " 'SS',\n", - " 'SHSSH',\n", - " 'SHSSHS',\n", - " 'SSHSSSHS',\n", - " 'SSHSSSHSS',\n", - " 'SSSH',\n", - " 'SSHSHSH',\n", - " 'SSHSHSSH',\n", - " 'SHSSHSH',\n", - " 'H',\n", - " '',\n", - " 'SHSS',\n", - " 'SHSSS',\n", - " 'SSHSSSHSH'],\n", - " ['SSHSSH',\n", - " 'SSHSSS',\n", - " 'SSH',\n", - " 'SSHSS',\n", - " 'SHSSH',\n", - " 'SSHSSSH',\n", - " 'SHSSHS',\n", - " 'SS',\n", - " 'SSHS',\n", - " 'SHSSHSS',\n", - " 'SSHSH',\n", - " 'SSHSSSHS',\n", - " 'SSHSSSHSS',\n", - " 'SSS',\n", - " '',\n", - " 'S',\n", - " 'SHSS',\n", - " 'SHSSHSH',\n", - " 'SSHSSSHSSH',\n", - " 'SHSH',\n", - " 'SHS',\n", - " 'SSHSSSHSH',\n", - " 'SSHSSSHSHS',\n", - " 'SSSH'],\n", - " ['SSHSSSH',\n", - " 'SSH',\n", - " 'SSHS',\n", - " 'SSHSSS',\n", - " 'SSHSSSHS',\n", - " 'SS',\n", - " 'SSHSSSHSS',\n", - " 'SSHSH',\n", - " 'SSHSS',\n", - " 'SSSH',\n", - " 'SSHSSH',\n", - " 'SSS',\n", - " '',\n", - " 'SSHSHS',\n", - " 'SSHSHSS',\n", - " 'SSHSHSSS',\n", - " 'SSHSSSHSH',\n", - " 'SSHSSSHSSH',\n", - " 'H',\n", - " 'SSHSSHSSH',\n", - " 'SSHSSHSS',\n", - " 'SSSH',\n", - " 'SSSHS',\n", - " 'SSHSHSH'],\n", - " ['HS',\n", - " 'HSHS',\n", - " 'HSHSS',\n", - " 'HSH',\n", - " 'HSS',\n", - " 'HSHSH',\n", - " 'HSSS',\n", - " 'HSHSSH',\n", - " 'HSHSSS',\n", - " 'H',\n", - " 'HSHSSSH',\n", - " 'HSHSHS',\n", - " 'HSHSHSS',\n", - " 'SSH',\n", - " 'SSHS',\n", - " 'SSHSS',\n", - " 'HSSH',\n", - " 'HSSSH',\n", - " 'HSHSHSSH',\n", - " 'HSSSHS',\n", - " 'HSSSHSH',\n", - " 'HSHSHSH',\n", - " 'HSHSHSHS',\n", - " 'SS'],\n", - " ['HSS',\n", - " 'HSSHS',\n", - " 'HSSHSS',\n", - " 'HSSH',\n", - " 'HSSS',\n", - " 'HSSHSH',\n", - " 'H',\n", - " 'HSSHSSH',\n", - " 'HSSHSSS',\n", - " 'HS',\n", - " 'HSSHSSSH',\n", - " 'HSH',\n", - " 'HSHS',\n", - " 'HSHSSH',\n", - " 'HSHSSHS',\n", - " 'HSHSSHSS',\n", - " 'HSSSH',\n", - " '',\n", - " 'HSHSH',\n", - " 'S',\n", - " 'SH',\n", - " 'HS',\n", - " 'HSS',\n", - " 'HSHSS'],\n", - " ['SHSS',\n", - " 'HSSH',\n", - " 'HSSHS',\n", - " 'SHSSH',\n", - " 'SHSSS',\n", - " 'HSS',\n", - " 'SH',\n", - " 'HSSHSH',\n", - " 'HSSHSS',\n", - " 'SHS',\n", - " 'HSSHSSH',\n", - " 'HSSS',\n", - " 'H',\n", - " 'HSH',\n", - " 'HSHS',\n", - " 'HSHSS',\n", - " 'SHSSSH',\n", - " 'S',\n", - " '',\n", - " 'SS',\n", - " 'SSH',\n", - " 'HSSSH',\n", - " 'HSSSHS',\n", - " 'HS'],\n", - " ['HSSHSH',\n", - " 'HSSHSS',\n", - " 'HSSHSSS',\n", - " 'HSSHS',\n", - " 'HSH',\n", - " 'HSSHSSH',\n", - " 'HSHS',\n", - " 'HSSHSSSH',\n", - " 'HSSH',\n", - " 'HSHSS',\n", - " 'HSS',\n", - " 'HSHSSH',\n", - " 'HSHSSHS',\n", - " 'HSSHSSSHS',\n", - " 'HSSHSSSHSS',\n", - " 'HSSSH',\n", - " 'HS',\n", - " 'HSHSH',\n", - " 'HSHSSHSH',\n", - " '',\n", - " 'H',\n", - " 'HSHSS',\n", - " 'HSHSSS',\n", - " 'HSSHSSSHSH'],\n", - " ['HSSHS',\n", - " 'HSH',\n", - " 'HSHS',\n", - " 'HSSHSH',\n", - " 'HSSHSS',\n", - " 'HS',\n", - " 'HSSHSSS',\n", - " 'HSHSH',\n", - " 'HSHSS',\n", - " 'HSSH',\n", - " 'HSHSSH',\n", - " 'HSS',\n", - " 'HSSS',\n", - " '',\n", - " 'S',\n", - " 'SS',\n", - " 'HSSHSSH',\n", - " 'HSSHSSSH',\n", - " 'HSSSH',\n", - " 'HSSHSSSHS',\n", - " 'HSSHSSSHSH',\n", - " 'HSSH',\n", - " 'HSSHS',\n", - " 'H'],\n", - " ['SHS',\n", - " 'SHSHS',\n", - " 'SHSHSS',\n", - " 'SHSH',\n", - " 'SHSS',\n", - " 'SHSHSH',\n", - " 'SHSSS',\n", - " 'SHSHSSH',\n", - " 'SHSHSSS',\n", - " 'SH',\n", - " 'SHSHSSSH',\n", - " 'SHSHSHS',\n", - " 'SHSHSHSS',\n", - " 'SSSH',\n", - " 'SSSHS',\n", - " 'SSSHSS',\n", - " 'SHSSH',\n", - " 'SHSSSH',\n", - " 'SHSHSHSSH',\n", - " 'SHSSSHS',\n", - " 'SHSSSHSH',\n", - " 'SHSHSHSH',\n", - " 'SHSHSHSHS',\n", - " 'SSS'],\n", - " ['SHSHSH',\n", - " 'SHSHSS',\n", - " 'SHSHSSS',\n", - " 'SHSHS',\n", - " 'SHSHSHS',\n", - " 'SHSHSSH',\n", - " 'SHSHSHSS',\n", - " 'SHSHSSSH',\n", - " 'SHSH',\n", - " 'SHSHSHSSS',\n", - " 'SHS',\n", - " 'SSSH',\n", - " 'SSSHS',\n", - " 'SHSHSSSHS',\n", - " 'SHSHSSSHSS',\n", - " 'SHSSH',\n", - " 'SHSHSHSH',\n", - " 'SHSHSHSSH',\n", - " 'SSSHSH',\n", - " 'SHSSSH',\n", - " 'SHSSS',\n", - " 'SSS',\n", - " '',\n", - " 'SHSHSSSHSH']]" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "product_table" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'H': 0,\n", - " 'S': 1,\n", - " 'SS': 2,\n", - " 'HH': 3,\n", - " 'HS': 4,\n", - " 'SH': 5,\n", - " 'HSS': 6,\n", - " 'SSH': 7,\n", - " 'SSS': 8,\n", - " 'HSSS': 9,\n", - " 'SSSH': 10,\n", - " 'SHS': 11,\n", - " 'SHSS': 12,\n", - " 'SSHS': 13,\n", - " 'SSHSS': 14,\n", - " 'SSHSSS': 15,\n", - " 'HSH': 16,\n", - " 'HSSH': 17,\n", - " 'SHSSH': 18,\n", - " 'HSSHS': 19,\n", - " 'HSSHSH': 20,\n", - " 'SHSH': 21,\n", - " 'SHSHS': 22,\n", - " 'SSHSH': 23,\n", - " '': 3}" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "LC_indices = {c:i for i,c in enumerate(LC)}\n", - "LC_indices[\"\"] = 3\n", - "\n", - "LC_indices" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], - "source": [ - "product_table = [[LC_indices[p] if p in LC_indices else p for p in row] for row in product_table]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we have to compute the missing elements manually. But at first flatten the list and remove duplicates." - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "['HSHS',\n", - " 'SSSHS',\n", - " 'HSHSS',\n", - " 'HSSSH',\n", - " 'SHSSS',\n", - " 'HSHSH',\n", - " 'SHSHSH',\n", - " 'HSHSSS',\n", - " 'HSHSSH',\n", - " 'HSHSHS',\n", - " 'SSSHSH',\n", - " 'SSHSSH',\n", - " 'HSSSHS',\n", - " 'SHSHSS',\n", - " 'HSSHSS',\n", - " 'SHSSSH',\n", - " 'SHSSHS',\n", - " 'SSSHSS',\n", - " 'SSHSHS',\n", - " 'HSSSHSH',\n", - " 'SSSHSSH',\n", - " 'HSHSSSH',\n", - " 'SHSHSSH',\n", - " 'HSHSSHS',\n", - " 'HSHSHSH',\n", - " 'SSSHSHS',\n", - " 'HSHSHSS',\n", - " 'SHSSHSS',\n", - " 'SHSHSSS',\n", - " 'HSSHSSS',\n", - " 'HSSSHSS',\n", - " 'SSHSHSS',\n", - " 'SHSSHSH',\n", - " 'SSHSHSH',\n", - " 'SSHSSHS',\n", - " 'HSSHSSH',\n", - " 'SHSSSHS',\n", - " 'SHSHSHS',\n", - " 'SSHSSSH',\n", - " 'SHSSSHSS',\n", - " 'HSHSSHSS',\n", - " 'SHSHSHSS',\n", - " 'SSHSHSSS',\n", - " 'HSSSHSSH',\n", - " 'HSHSHSHS',\n", - " 'HSHSHSSH',\n", - " 'HSSSHSHS',\n", - " 'SSHSHSSH',\n", - " 'SHSSSHSH',\n", - " 'SSSHSHSH',\n", - " 'SSHSHSHS',\n", - " 'HSSHSSSH',\n", - " 'SHSHSSSH',\n", - " 'SSHSSHSS',\n", - " 'SSSHSHSS',\n", - " 'HSHSSHSH',\n", - " 'SHSHSHSH',\n", - " 'SSHSSSHS',\n", - " 'SSSHSHSHS',\n", - " 'SSHSSHSSH',\n", - " 'SSHSSSHSH',\n", - " 'SHSHSHSSS',\n", - " 'SSSHSHSSH',\n", - " 'SHSHSHSHS',\n", - " 'HSSHSSSHS',\n", - " 'SSHSSSHSS',\n", - " 'SHSSSHSHS',\n", - " 'SHSSSHSSH',\n", - " 'SHSHSHSSH',\n", - " 'SHSHSSSHS',\n", - " 'SHSHSSSHSS',\n", - " 'SHSHSSSHSH',\n", - " 'SSHSSSHSSH',\n", - " 'HSSHSSSHSS',\n", - " 'HSSHSSSHSH',\n", - " 'SSHSSSHSHS']" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "unresolved_products = [[p for p in row if not isinstance(p, int)] for row in product_table]\n", - "unresolved_products = reduce(iconcat, unresolved_products)\n", - "unresolved_products = list(sorted(set(unresolved_products), key=lambda x: len(x)))\n", - "unresolved_products" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that we can now add new identities, which will allow us to reduce the re" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJkAAAAzCAYAAACE26oyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFeElEQVR4Ae1bgVHcMBD8z1AAUMKnA5h08HQAkwoCHcCkAoZ0AC1QAtBBQgehhOQ7+Ow+EqPI7/fZ0r3PtjSjsSzL8mq1Psmybj6bzQ4RK2G9Xq8qmcYz5vM523IM7G/GoZqFl8Khu7fStk/I+YX4N4p3cUlWgHiJyPJWw3cAO7cKbgIcPoL7WEuPB65DzvD2P9d1Dsg5wbWlu77V8tXdu898tOFmn89r86wpcAj+z0JO0OZLnF94kYXXKmnc/IrMV9xk1kpUQBvLmDKHIpEZ668KHIifVpbW9gs686JSoGQ0MqDJIedkYwg00w+I5yDL7HBunGg1DgcvMohqgc67RaQ1e4MlG9xXcd/i0+awV5HRRCNyctg5QFReWFeo5L5zRQO9cQgc9ioy9CuHtuThDUSzDlqyB6Q5N5tSMM9h3yLLJQYK7NUNlV9zVTqxetQ4FIkM1mGByAVaLnYyfY94bagTuMb35jCZHDKBbbIcHkiEwnkPypld6HQWzPTSxZQ5FFkyiRBLmcJAHQONlgxmfl13s8/HWzr36W1H1MEhjGN+HI6Zgev8MowD51g7rVMObPFDNc5z4Bwyh40iaxKQpFNQxzYRUVz8TbXA9R+SeuIyObDFdWqc58A5ZA7LcKmhqlLnfww0WjKWhsXhWgy/LBkW74fZN7xdK5fu7WAZW0iKZZza2EQiA1l3obkGKM6xuK/sc0hkT2nL2EJKLONUxSYdLrlZMZy4c82M6z4WVtctYwtFZhmnKjapyDhx/xkyZihtGVtIk2WcqthEwyWGSm6jCQNB8cc0NzOmBM7pkuZ1ithS2lW5VxGneQ5FIgsZc0Mklx5Ow/wuaRBfu+W7S305sXV5vvSenDiHwKF0uNzwB3L4Zcn52Ckal2SBpB0iLWcZW9gGyzi1sIktmQcAcW2cBXDOSf8K5727n1nGtk1gU+NQZMlcJ3LZ4pbicgLjvOxPSGIfacvYQj4s49TGxn+OvxGv8HbVzo8Agr50hyFpTOOenf8s4/Ia55axhe21jLMNNpSlDkQO1Ci7cYkTWTKI6QgVM9J68cf13ILAgIVCPwrw8B/ojRVsxOdDiNPjjXGyA9kxiHt1oJZg8+3AkX9+WrlGiuZkaDTnX0v3oIpFc/m9H0CW2T1vTeSMmWORyNB5xbm3SSWJ18fMsUhkifyp3w4rQCtLa1uce5XYTuFYNCdTwp2zWjXH1JwgB15XZ44HLzK8YQt03i0irZn3wRx4f9qCn8rx4EWGuYwXFr98uZZXQsAAhznEXh2oBy8y8gkS+cVLSzZF515SsCuQm+QVgRSORyEykEiBFefeXVJLv9aZY5HIoOLJOqam942shjFzfCChgPMelDO70Al8K+Db6T4naWefZcbMsciS9Ul+efbwGWi0ZDDjOZx7OfF8QWwzAb3A271z520ObKldCAzJbcvRDtTBL2vOm+JwzAxc59d3HPbiQN0oMnR08k4LN5wl76SNGcqBLa6z7XmOtuVoB+rYJiITDtRluGyrqlK+NQONlow1uiGBWzwYFu+H4tzreMhyGDPHIpGBRVXnz8ResoytTdMstyMZG3fGLjGmcwPg1ojrnPx/lEGa1ox5J3X37Cvf4TCJrQ0HWu1AvdxgeN0GS1y2Kzbcx99ZT9I5GSeVxbkXJCiG0XIsGi6hbC3n3uQ+s4ytTeMU28GFasbOIRWbSGQhOkxQuTkwi3NvWG+OtGVsbdqXsx0QSK2DUBtMvmwXbNLhcvMMPIBzseLc6xlXOI6RY7El843Hm1GcexXExSrHyrG3ZNxlQXesjxjy6BrP3xbFuTckJmN6DByH+mEa9DDOvHMvh8EwPMBiffymwA3FuTdkRyE9Bo7RhidQs4zoef4HSJuW4sfu9v0AAAAASUVORK5CYII=\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{2} + \\frac{i}{2} & \\frac{1}{2} + \\frac{i}{2}\\\\\\frac{1}{2} - \\frac{i}{2} & - \\frac{1}{2} + \\frac{i}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 ⅈ 1 ⅈ ⎤\n", - "⎢─ + ─ ─ + ─ ⎥\n", - "⎢2 2 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢1 ⅈ 1 ⅈ⎥\n", - "⎢─ - ─ - ─ + ─⎥\n", - "⎣2 2 2 2⎦" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evalstr(\"HSHS\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/computations/stuff_with_sqrtiZ.ipynb b/computations/stuff_with_sqrtiZ.ipynb deleted file mode 100644 index 171f561..0000000 --- a/computations/stuff_with_sqrtiZ.ipynb +++ /dev/null @@ -1,599 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import sympy\n", - "sympy.init_printing()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "a, b, c, d = sympy.symbols(\"a b c d\")\n", - "i = sympy.I" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "X = sympy.Matrix([[0, 1], [1, 0]])\n", - "Z = sympy.Matrix([[1, 0], [0, -1]])\n", - "\n", - "M = sympy.Matrix([[a, b], [c, d]])" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACsklEQVRoBe1ai03DQAxtEANUsEHZoIUJKBtQNgBGQEyAygbABAg2KBtU7QawAYgNynvtWQrX+yR3TbBQTnKTOHf2e2cnsawWvV6vD9kaq9Xqe0upTFEUhRM7Yb5DVpY8gFRPuwDzzMJNHrM9/HCcgUBRkuuNWvcv8P7CDbRr3EJKN/qa6ParzEfuTs28TxyPIFPs0keVtbuYA/9D2HmBjOA3+qxHScHgAsbuYOyVAM3DucCRoW+MmPHzBJdfkGPIAFJpBNMPhq9gpS+EaNHsFAk+8LqpQT+QCYTPyXMdP0FSMDSBLB0G59CNzW46bv+tKkZqDHgMvz0kr3lf3fCSqhiFA3WMAMhLCvcEsESljF+i5/2ilye3fR4iVQXLYZVJbc8JkZJouDBJFPndUje8pMyrm4BdKSa6xr5TOTvlJWWMvuE4cDiQSPG+uhEjxdKEX3N7jKBYlqJp3//T6yApgH4Eui+83s8FpXnVX+D6UnTajtHaD4AZlVuQkTQ8wfUpCLsqjZ3yg09mCp9fyRbWnPQ7h/97n7MoKZNiNz4DTerhm2Va7RFMv9rWlCzoSCkJRBRGF6noFimZ0EVKSSCiMLpIRbdIyYR/GalomSSbj5priPPKDUVZl3uE39qN1CApGGQxmdRQzCXD9fCf1EgNph+LWRaVkNoNxVxSIJTcSA2SygWWuT65kaqZ1Bib4mr+fJvN4n3nUEnKPMtOwCWl9ElKqs2pSlKAJoAlKmXgEj2+xJxDKyknWEvpbaRqJSXRsHisLyWK3kaqSlL8lBg2rhQTnbeRqpKUIZTcSNVMKrmRqpYUUjC5kRqs/ZgG+GYkNRRNCuUekhqpUVKs/XKRpa43L4zajVS16Ze6EVzXkcrZvTbXdpFqc7dzfMnbb2CX+6VSJcd+o2ttzHAmJdT/+xPjD2U+4S47RBrKAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}0 & 1\\\\1 & 0\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡0 1⎤\n", - "⎢ ⎥\n", - "⎣1 0⎦" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAAAzCAYAAAAqwX72AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADFElEQVRoBe2bjW0UMRCFbxEFnKCDo4MEKuDogNABSQkRFaDQQaACFDo4qCBKOoAOiNLB5b3gkYaN/87WZM8bj+Ss1+v1zHw3Xq93lGGxWCxRHsh2u7190DjDhmEYvP7T1d8o21E5B5jFUyjwezPynSw2z/CH8g4QBlVO/jXP/y98/s93eHzvu4CZP4EdPXye2x9z8QB9L1AOQXlvnj+w68z58BfHVyhnsO+Pays+RMG4B9M3jH6D8hplVazJ4EbYd4VhPwPEDw7v7L3CkdOjCk50KjEyUI5QOO++U/m+CJw/hi1L2HYPhXbRXhx4fs7zGomCqRn4Ee49go5rj55LtK1d9Hgu5zW1DGYNFznFxyLPP14vlibBZEbDi2IquLFJMLBbnJbo0Awkipa6cdd6q2By/HyZ0ynUp1UwEhU+vySa+F5TLE2CccsynfZNF2mze48pxv04N/6EmpVHlUQMrxdLkxHjvOX2hG/jYzlEw7WKqvH1rPNmwcDxr/DwBkv3e/HULeMfcP5R2kqP0b0SB4Uy/jKct/LrcC/CN85LGPcFxymF0fEJ9siUeoPzt7CL9lVJEgyU8NV7LwW23cKwUwvjmp1KFjD0mB2MpqHqHYyCoasdjKah6h2MgqGrHYymoeodjIKhqx2MpqHqHYyCoasdjKah6sktAftiL2KS1FJ2mFZh/wEU7JQsTILBoGZJLUsasJsb3+JkYXQqYXDTpJYlGG4wuQFGKUoWRsHAcNOkliWY2rFTYNZQ4PvwzO0+hddnKUEwbo6mnJbvq6l+zV0PgoEn4rREh3ZOoogPuFlKDEyOw1VJrRwFU/WJLdcSFT7bJJqqklq+gaXNTeVfON8lKrkKVX/vpQ1BMFzuYBz7+AyTtqqkFgcPCfXjGj92TyKpqWSa1JrE40ylKTCmSa1MGyfpFgWDcDZNak3icabS4DNG3W+W1FI6TKp4RhYnC5Ng3EPQJKllQkMNCtuLk4XRqaR0PLlqBxP4yTuYDiZAINDcIyYARlal1fgzg1uNArfNp3nsNzyT7U7/Ry7AGP8j2+YO/hNP/mmwrOMAAAAASUVORK5CYII=\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}1 & 0\\\\0 & -1\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡1 0 ⎤\n", - "⎢ ⎥\n", - "⎣0 -1⎦" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Z" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAADYAAAAzCAYAAADciPtuAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADi0lEQVRoBe2ajVHcMBCFzxkKIEkHlw4gVADp4EgHCR1ACZmkA0gFEDo4Oki4DkIHCdfB5X1G8siyLOsOm7Ey3pm1fk7a3addSfZCMZvN9sUN2mw260bnCDuKogjaj6m/xRuPLwVslgPL7qVnO1iWr/SAPghE4fDZU/f4n7K5ZrssLm23wMaPYEsLRw+MPSReih/FbJskGj0whdqacBOaB/FdEioNGj0wB8iB6hwUSZQFMIXgiUHz33msDEXCMsldGrSXMlArNte4CzGC/4hvxQsp+qbyJQiPrWTHuVH2TuVS+rGjlThpTjQoeCHzm/hRPLdjVLeX4r7tG6qULt4suHTvqaOHUkylssnqV99ncXVBq94krRACfogvNJFTyRL1B/XhwaHJ7q9jq8+WUrxoU951eHzVRMDdeAJQFg0Db/xzmuyvlQNmZhYcmW/bBHcB+6iJdwGh7Lnko7dNeWL/e4375Y2lD/r5VDSfrcDMquCtlTcNsOzH5KPXm79tk/uL/eXSqWm02tAKzJHirwpCS7ACvxDjvaGp2t9mwVncMzeSfANagZlJAKgMl1BOHNo2NI40rlLqC++pzV6ubFCdw+xGeq9i8luBmUnHKo8E6FzMQQIgNvMb+lRei4emT1JwaGy4VJ1vxc7Pqr2YVcZrNp7doaE+9/fe6saGTiC+wi6P+eOzaU/AsnGVMXTy2OSxkazAFIojcUSyGZPHkpdqJAOz9JjeGw/E92KSqLw/Nij6rtgYPZIOvT/y1cGLcfkHiJBZWXoMIAJlcyHBj81sgQlbNNeYMzA8FvQWHt1qj8n9fGySMIXIEF2beC87hnpI71yy3YQtgMiFfInpjCZMZThzEcw4sr9lYlV1TiOyscFEa1/90oFnkhO2GtudMNUgS6TabmUs+QdLJFQGTcHJU7GEbS3XaI2yZWcoSjiewWM1twvkaytkwHLnhG3K4YFnaknTAYH4ohu6jRdZ6Gi0RIEZIaGkqW9A7+2IbsB2JmyjwBRua2Nx8G+/Us7GHpp2SthGgRmLSUwe+tYLFPH/1+/vq20WdeeEbSFD8Abp4tbLzoDAZnuHUb9yPEq7dzLh+F2C8Vp5b6okilhU+tj7gK9IczjuTztPRWZoMpfji5NZuFByNtRXsy8lFGsTcmlMwHLxlLVz8phdiVxKeyrOzdFa2T30UV4pembFt1vieFMqiXuMbxOXs/9HzH9G2QyI2L2+5AAAAABJRU5ErkJggg==\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}a & b\\\\c & d\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡a b⎤\n", - "⎢ ⎥\n", - "⎣c d⎦" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "M" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "term_X = M*M + i*X\n", - "term_Z = M*M - i*Z" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}a^{2} + b c & a b + b d + i\\\\a c + c d + i & b c + d^{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ 2 ⎤\n", - "⎢ a + b⋅c a⋅b + b⋅d + ⅈ⎥\n", - "⎢ ⎥\n", - "⎢ 2 ⎥\n", - "⎣a⋅c + c⋅d + ⅈ b⋅c + d ⎦" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "term_X" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}a^{2} + b c - i & a b + b d\\\\a c + c d & b c + d^{2} + i\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ 2 ⎤\n", - "⎢a + b⋅c - ⅈ a⋅b + b⋅d ⎥\n", - "⎢ ⎥\n", - "⎢ 2 ⎥\n", - "⎣ a⋅c + c⋅d b⋅c + d + ⅈ⎦" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "term_Z" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[ \\left\\{ a : - \\frac{\\sqrt{2}}{2}, \\ b : \\frac{\\sqrt{2} i}{2}, \\ c : \\frac{\\sqrt{2} i}{2}, \\ d : - \\frac{\\sqrt{2}}{2}\\right\\}, \\ \\left\\{ a : \\frac{\\sqrt{2}}{2}, \\ b : - \\frac{\\sqrt{2} i}{2}, \\ c : - \\frac{\\sqrt{2} i}{2}, \\ d : \\frac{\\sqrt{2}}{2}\\right\\}, \\ \\left\\{ a : - \\frac{\\sqrt{2} i}{2}, \\ b : \\frac{\\sqrt{2}}{2}, \\ c : \\frac{\\sqrt{2}}{2}, \\ d : - \\frac{\\sqrt{2} i}{2}\\right\\}, \\ \\left\\{ a : \\frac{\\sqrt{2} i}{2}, \\ b : - \\frac{\\sqrt{2}}{2}, \\ c : - \\frac{\\sqrt{2}}{2}, \\ d : \\frac{\\sqrt{2} i}{2}\\right\\}\\right]$" - ], - "text/plain": [ - "⎡⎧ -√2 √2⋅ⅈ √2⋅ⅈ -√2 ⎫ ⎧ √2 -√2⋅ⅈ -√2⋅ⅈ √2⎫ ⎧\n", - "⎢⎨a: ────, b: ────, c: ────, d: ────⎬, ⎨a: ──, b: ──────, c: ──────, d: ──⎬, ⎨\n", - "⎣⎩ 2 2 2 2 ⎭ ⎩ 2 2 2 2 ⎭ ⎩\n", - "\n", - " -√2⋅ⅈ √2 √2 -√2⋅ⅈ ⎫ ⎧ √2⋅ⅈ -√2 -√2 √2⋅ⅈ⎫⎤\n", - "a: ──────, b: ──, c: ──, d: ──────⎬, ⎨a: ────, b: ────, c: ────, d: ────⎬⎥\n", - " 2 2 2 2 ⎭ ⎩ 2 2 2 2 ⎭⎦" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sympy.solve(term_X)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[ \\left\\{ a : - \\sqrt{i}, \\ b : 0, \\ c : 0, \\ d : - \\sqrt{- i}\\right\\}, \\ \\left\\{ a : - \\sqrt{i}, \\ b : 0, \\ c : 0, \\ d : \\sqrt{- i}\\right\\}, \\ \\left\\{ a : \\sqrt{i}, \\ b : 0, \\ c : 0, \\ d : - \\sqrt{- i}\\right\\}, \\ \\left\\{ a : \\sqrt{i}, \\ b : 0, \\ c : 0, \\ d : \\sqrt{- i}\\right\\}\\right]$" - ], - "text/plain": [ - "⎡⎧ ____⎫ ⎧ ____⎫ ⎧ \n", - "⎢⎨a: -√ⅈ, b: 0, c: 0, d: -╲╱ -ⅈ ⎬, ⎨a: -√ⅈ, b: 0, c: 0, d: ╲╱ -ⅈ ⎬, ⎨a: √ⅈ, b:\n", - "⎣⎩ ⎭ ⎩ ⎭ ⎩ \n", - "\n", - " ____⎫ ⎧ ____⎫⎤\n", - " 0, c: 0, d: -╲╱ -ⅈ ⎬, ⎨a: √ⅈ, b: 0, c: 0, d: ╲╱ -ⅈ ⎬⎥\n", - " ⎭ ⎩ ⎭⎦" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sympy.solve(term_Z)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}- \\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2} i}{2}\\\\\\frac{\\sqrt{2} i}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡-√2 √2⋅ⅈ⎤\n", - "⎢──── ────⎥\n", - "⎢ 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2⋅ⅈ -√2 ⎥\n", - "⎢──── ────⎥\n", - "⎣ 2 2 ⎦" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sqrt_miX = sympy.Matrix([[-sympy.sqrt(2)/2, i*sympy.sqrt(2)/2], [i*sympy.sqrt(2)/2, -sympy.sqrt(2)/2]])\n", - "sqrt_miX" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIIAAAAzCAYAAABbldAtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFn0lEQVR4Ae1ci1EbMRC1MymASTpwOgBSQUwHkFQQ6IAMFTCkA+iAgQ5CKkigA+ggxB047120Hvm8ts/2rVayTzPCd5JO2s/b1edu6fd6vT3kmTQej0czhV1B8RLo9/uqvt+As0fkv7V85c0xCN5HHi/K3jQWOv5dTdfU/R2BwHQED9CP8tn/Yte/BONBRFNMX3XtSl2hg0OeU7oGG5WuBQhZsUVvQIJA9FNWhG0xMVkCAfK+QHafnrZY7zOsvZ0pcS6ANxiAhAG8wUOdFNSdo+wD6nKYuurkNb4HHwLyP+QH+Qo8vTTuwKBhdkAAj99C1tglAO61ilLKAAIuzi+h+IoP3HMV/4hfzt1uYMgKCEEoh/MsHuW0nmIT+DsF8XsCAjKC6xHKCYpr5COWeaTc1gh0mZcegkg05gnG0RbAv1A+DIaQiJTpYbIBQhDCMLaWaVK34m4ILl4VTuTwjvUuKaepQd0pBIDQpXJaeAZQvrtIasNBG1r7uw2HWfvxJB4BQjhGXob2Yyj5RuHkIiifJ2IES6lJlCzWH/MhXkI9/o0bWl2bewQAgFs+KpAr4gONkdCGi6WphHJuJTl/MnF+dVtVVxTY/3lvP4Q+wkIgQBFE6E/kVZB6AguuFkRBkbRyMniO+32pw32czlCu7QheUS7bRU4P3FqWmsTqNfrFW/BcwSUtBAKUQDemWnETavF8ZcEAAHcC4hlo2ZOEOip4xhuwQRi/hzbH4QFt6ghVef+QF/BBIjWjkjI3j5dkjRAUSiVyrUB3Hyda+TIFc2q5F2DEDxd2zdPSOv9kQTzCzGlqKv6SACEwI8eqE/ceLH2hgtGG1rKPfMt+cC/98La0xAXvoUI0ve6TJ9CTAQFM0u0R8adBuZQHLX3ZAVIlODx/j+doTc98sMQEHuj5XsGHTHUENoH+GfmrJ08L1wgGhNGah8gEA4Hxe5kVoP4BbZm5xhgFYeKy2ETrvwA/MkV8xP0n8FUtsL24SgqEoFQyTE9AIEwtHOcJAc+5ncHPo2ndcvAywrOT6XHdftp+LtnUEBHOqYDu8AVCcVslR/R0l5BAciBA+TwXIACys4pdRkTSqUEEDTBoh0dS3f06SCC5R3DgsRuygQQ6IDQQ0i406YCwC1puwGMHhAZC2oUmLovFXRDsOjzikIlH6V+QeXhmlrBYr95+xQN0HiGWhv81T15vqSjLrLHZAUGTikNZ8AZu0V0dEByUPmdIHru7vVk1XyMA6cJcNlE9cxThVhxeQKnRXW0Qhf655lgYIWYKBBCQZVRPG8JtuQ8et1seuZ+hf/nkTyXdDAgAQbZRPaoknAohJ76Amxvd1QZZTY70LdcIfMWsvWN3j+ppQ7gt9sGpc9nHOS0Op3dlCYQhhtS+3OX7eCbW73QK3iCL6C6TqSEwuEzJ8sHmsnbbXG+2Uwg6aBwhZuURRMli/bEyxUtwbtzaBEVsEt3VhlxWihAz8QgNuWDQy1YmgIDbNfkcT40LCW2uLQSAvgfod6UIMSsgiNVrfIq3cIvq0YiSMgiRnsozuqsiZUM6Vo4QMwECtitZR/WI0rVf0o5y1Yq19vUyPF99hwlFcicgnmHqI13UzY3ukv42oSM8u1KEmNUagfxkG9Ujwrb8DcrYJLqrDfI4PS0MIJJBLIGQbVSPMJ/gV47XJ6eG8AYMbmmknE3oC1MLX2vfsh/cCy1qt2ZAgEVkG9WjSsKgEDLgNLFOdFcb1KwUIWayRoi4yDKqJ6IvxSUtcYjcOLqrDaIAwpUixEyBEObJiVtsg8HS+ggK4VG7bCenFo6W/GDsxhFiZlODJYMF9p19dFcHhASogmVmH91lOjUkkHExQwAMWUd3CRAGYbsxESwI194TTOq7izIlUNczuKje+fCzZv7jiUGNrRsAgV+1dGnLJAAg/ABL3MXE6eEf3zdR3upFKMEAAAAASUVORK5CYII=\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}- \\sqrt{i} & 0\\\\0 & - \\sqrt{- i}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡-√ⅈ 0 ⎤\n", - "⎢ ⎥\n", - "⎢ ____⎥\n", - "⎣ 0 -╲╱ -ⅈ ⎦" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sqrt_iZ = sympy.Matrix([[-sympy.sqrt(i), 0], [0, -sympy.sqrt(-i)]])\n", - "sqrt_iZ" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAzCAYAAADW1FU8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADhUlEQVRoBe2ai3HTQBCGLYYCMtCB6YBHBTgdkHQAdADjCpjQQeiAiTtIqCCTdBA6wLgD8//m1nNSzjrtPRTJupu5WF7p9nY/7Z5O3lSz2ewE/VHbbrebR8KJCqqqcjJ6Bh536H8b/WKinA65fdXgQ15XhMd2ikirrP75v7j8JQFwqfGBaMdH4BVKAQSeB4zZD8FaIOn9B8JX6Be4S7/3F4z4AL59oU/w52AWBsODcq6V36B8RUZmUb3DJ0P8GAAS2s43+udqQfAA6BOUnQg4KsbxBnJOdol+StmYG/xhJrW20DXvDFrvHZpvIVuYKHScPi5RKLwFMKwdKGRvyPNH39Rp2zGqXoyRnPGNSxJT9gGp+73Nj5DIEzASZbZ+iUbnjty+cKDHSwOMm+Klz8YQeD6dPP+yy0VDugZRN4c9XLPZuKZ7dwzqtIVSiS5O0mwSldz39d5M2v3CxJrIP0O08eG3xqdsTZi6X30OqOFhAm5JqNdloMi8d81nWMh52oZxbyLGcr/6wYz/4dMTmrY3UMwwbzaJPJ4fa+NatzI3otWHUHhcUN86NPOu33eZ2DH2yUUm7V/DkJ80Bt/l9dNpWxA8wGFIr60Ql9ezc8g/Omcah3AXEPBvBd+YWQ9tZqvXPEsZo2xpJqH4Hfp7TMzFd5QNtt/AH3b+KLAxQXLQl2B4UMzF2ftEOjjzQE/Ar87v5UFpO1C/ezerwItAXuAVeBEEIoaWyCvwIghEDC2RV+BFEIgYWiKvwIsgEDE0+PVMO6d5X2wtImt1aq+HDfIrSZIifW/w4Ki3iKyFobke4JIX6XuDhxdubxFZA0NzLcBlKdJP5YGRpUg/FXgLRKqrcMWf1dh4Xt2ypi3ShQWhzkVktfUdBhgbfFdK7cV3Xe187shTFZFrlqX7ImAkymzNEo28yeqWDR7u+BzWqIrIauvTDQgq0remrQn53orI6VjUNEl01YTmi0RlUJG+FZ6pU/RWRHZ5FyujDwgCqnGlpsiCivTZ0tZyunMR2RqT+jBLkT4rPJP2nYvIqYlZ+rIU6bPCg/GqIrLlbNJDpG6WIn3rmhfrAYxWFZFj5/OMT16kzwqPzgBg5yKyx/mo03xwQEHSIn3utI1yeOiDC7yIO1TgFXgRBCKGlsiLgCdP27nZ0O5VmafT/vuUD5pswEJe63b//biFwO6XgMdtRulggHbd4EPh9T/4YPuB61VlTAAAAABJRU5ErkJggg==\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}0 & - i\\\\- i & 0\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡0 -ⅈ⎤\n", - "⎢ ⎥\n", - "⎣-ⅈ 0 ⎦" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sqrt_miX**2" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEIAAAAzCAYAAAAjKt6MAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADZElEQVRoBe1bi5HTMBC1GQq4gQ5CB3wqINcBRwdABzCpgDk6ODpgSAc5KmDuOjg6IJMOwntm90ZyZEtrK87EI80osWVpd9/TriJrJ3VVVReoB2W/3+8OGmfQUNd1EC+hPaDuW/UGRFRzrMC5aWEl9s0TfLBcAnTt1E//m+f3CYweViBssCoR80NsRPTU2L9CjH3GmBdg9uReA1uuxf6/tAn1Gnb9kTbTl5kISCcBa5OWI3QGCXcQ+xXAG1tkEbzDN13fTIaZCCgh8yctAPsRBlwoCTQG1zu0k5Qb1Eu2Wcq5rhFXAHkfAPobbUvxjsDj7qZzJWIJSNsALN378LmpJIWGMEx3ZFg8wA2/mbRk7Jw428+sKlM9YiXgf0LByqokc38FqbPvilcv6dw9up3d6ygRmIEFBjD2WBib5hW5GTntx3OruigRELh1VmeGxw+rksz9ddZDYtVbuK8wlSgR/FmiRHjGO5H83aQhc2e1B2JD7q9tZq+NEuHg4NqwdgxxHk1+eQuNDNl2UY/gc1NJIkJW6peQ3IQF7nVra1KWsTMX7dcBea/Qdj9kspKIUKVQsJbFk6/uJyuwg+G5dcKVocuweI/6YYhhSfsIKL6FIla+cO3EkCH6co7h7K9gk4bIG9y/hW2hHWdUbxIRlAIF5v17VPuIDrCHi/iXESK8oamh4Q2a400hQma1EFGI8AO8eETxiOIRPgPFI3w+yhpRPML3iKQtNvbz+rY5OpHiq5/mTt6RepNSUSIgJGsiZRroB1qiSaleIkBC9kTKgYkTNOAFLZqUii2W2RMpE+AepCJGxBJSQ4elfAVm4fNZlM7QQFjoQWgfUD0j7Otzkmdif3JSqs8jFKTOvgtIvSSFLHfclNempFQfESlGmxMpKULH9oE3LCDDlJTqDA0I0lkP2aXeYk6khISF2sS1f+GZxeuu5MyynZSKHul1EsEzQRhDG0OGaJs5kRICHWqTM0ke0JqLjDUlpWKhkT2RYkY1bkByUipGRPZEyjhc6aMltJKTUr1EwMWyJ1LSoYzu2WTCgCEpKdW5RjhmZE2kOHKPegkCTEmpKBGy8ERX3aOiGigcticnpXpDY6D+sxxWiJBpK0QUIvwILh4hfOivxkI2II80ya/F4/1cLto4gUtfF8ofV0DG5h8Y3m3ea2xiTwAAAABJRU5ErkJggg==\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}i & 0\\\\0 & - i\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ⅈ 0 ⎤\n", - "⎢ ⎥\n", - "⎣0 -ⅈ⎦" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sqrt_iZ**2" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}- \\frac{i \\sqrt{- i}}{2} - \\frac{\\sqrt{i} i}{2} & - \\frac{\\sqrt{i}}{2} + \\frac{\\sqrt{- i}}{2}\\\\- \\frac{\\sqrt{i}}{2} + \\frac{\\sqrt{- i}}{2} & \\frac{\\sqrt{i} i}{2} + \\frac{i \\sqrt{- i}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ ____ ____ ⎤\n", - "⎢ ⅈ⋅╲╱ -ⅈ √ⅈ⋅ⅈ √ⅈ ╲╱ -ⅈ ⎥\n", - "⎢- ──────── - ──── - ── + ────── ⎥\n", - "⎢ 2 2 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢ ____ ____⎥\n", - "⎢ √ⅈ ╲╱ -ⅈ √ⅈ⋅ⅈ ⅈ⋅╲╱ -ⅈ ⎥\n", - "⎢ - ── + ────── ──── + ────────⎥\n", - "⎣ 2 2 2 2 ⎦" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "H_ = sqrt_miX * sqrt_iZ**3 * sqrt_miX\n", - "H_" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{i \\left(- \\sqrt{i} + \\left(- i\\right)^{\\frac{5}{2}}\\right)}{2} & - \\frac{\\sqrt{i}}{2} + \\frac{\\sqrt{- i}}{2}\\\\- \\frac{\\sqrt{i}}{2} + \\frac{\\sqrt{- i}}{2} & \\frac{i \\left(\\sqrt{- i} + \\sqrt{i}\\right)}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ ⎛ 5/2⎞ ____ ⎤\n", - "⎢ⅈ⋅⎝-√ⅈ + (-ⅈ) ⎠ √ⅈ ╲╱ -ⅈ ⎥\n", - "⎢───────────────── - ── + ────── ⎥\n", - "⎢ 2 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢ ____ ⎛ ____ ⎞⎥\n", - "⎢ √ⅈ ╲╱ -ⅈ ⅈ⋅⎝╲╱ -ⅈ + √ⅈ⎠⎥\n", - "⎢ - ── + ────── ───────────────⎥\n", - "⎣ 2 2 2 ⎦" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "H_.simplify()\n", - "H_" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡√2 √2 ⎤\n", - "⎢── ── ⎥\n", - "⎢2 2 ⎥\n", - "⎢ ⎥\n", - "⎢√2 -√2 ⎥\n", - "⎢── ────⎥\n", - "⎣2 2 ⎦" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "H = sympy.Matrix([[1, 1], [1, -1]]) / sympy.sqrt(2)\n", - "H" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "phi = sympy.symbols(\"phi\")" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAVCAYAAAB7R6/OAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAARUlEQVQoFWNgYGAoA+K7UGyEhc/QCRR0+f//PwMyBoqBxZmADLxgVAEkeEbDgchwYIEmp5mMjIwgZigQuwBxOhALAfFuAP68FOR8/BSoAAAAAElFTkSuQmCC\n", - "text/latex": [ - "$\\displaystyle \\left[ \\right]$" - ], - "text/plain": [ - "[]" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sympy.solve(sympy.exp(i*phi)*H_ - H)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{i \\left(\\left(- i\\right)^{\\frac{9}{2}} + \\sqrt{i}\\right)}{2} & \\frac{\\left(- i\\right)^{\\frac{5}{2}}}{2} + \\frac{\\sqrt{i}}{2}\\\\\\frac{\\left(- i\\right)^{\\frac{5}{2}}}{2} + \\frac{\\sqrt{i}}{2} & \\frac{i \\left(- \\sqrt{i} + \\left(- i\\right)^{\\frac{5}{2}}\\right)}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ ⎛ 9/2 ⎞ 5/2 ⎤\n", - "⎢ⅈ⋅⎝(-ⅈ) + √ⅈ⎠ (-ⅈ) √ⅈ ⎥\n", - "⎢──────────────── ─────── + ── ⎥\n", - "⎢ 2 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢ 5/2 ⎛ 5/2⎞⎥\n", - "⎢ (-ⅈ) √ⅈ ⅈ⋅⎝-√ⅈ + (-ⅈ) ⎠⎥\n", - "⎢ ─────── + ── ─────────────────⎥\n", - "⎣ 2 2 2 ⎦" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "H__ = H_ * sympy.exp(i * sympy.pi )\n", - "H__.simplify()\n", - "H__" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Some other calculatuions:" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAOCAYAAADjXQYbAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAo0lEQVQYGX2QARGCQBBF9xgDkAErGMEIWEEb0AEaaAVtYATHCFhBGpzv3+ydDCPuzGd3///HfbAYo81hZh04i6sYlnWCmEQGOdbq18ni/StuZAsh1LQj2IKRqwa6paS03u/eM781CxWnGogHUB3AK03+qLOTXdG7spfBrHXxa56JT8Rr3tVzIKXVK9tEesD8nTsEGW8ecNRefh/knV2YMF0kfgByKG0w9dMLeQAAAABJRU5ErkJggg==\n", - "text/latex": [ - "$\\displaystyle i$" - ], - "text/plain": [ - "ⅈ" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sympy.exp(i * sympy.pi/2)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}- \\frac{\\sqrt{i}}{2} + \\frac{\\sqrt{- i}}{2} & \\frac{\\sqrt{i} i}{2} + \\frac{i \\sqrt{- i}}{2}\\\\\\frac{\\sqrt{i} i}{2} + \\frac{i \\sqrt{- i}}{2} & - \\frac{\\sqrt{- i}}{2} + \\frac{\\sqrt{i}}{2}\\end{matrix}\\right]$" - ], - "text/plain": [ - "⎡ ____ ____⎤\n", - "⎢ √ⅈ ╲╱ -ⅈ √ⅈ⋅ⅈ ⅈ⋅╲╱ -ⅈ ⎥\n", - "⎢ - ── + ────── ──── + ────────⎥\n", - "⎢ 2 2 2 2 ⎥\n", - "⎢ ⎥\n", - "⎢ ____ ____ ⎥\n", - "⎢√ⅈ⋅ⅈ ⅈ⋅╲╱ -ⅈ ╲╱ -ⅈ √ⅈ ⎥\n", - "⎢──── + ──────── - ────── + ── ⎥\n", - "⎣ 2 2 2 2 ⎦" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sqrt_miX * sqrt_iZ * sqrt_miX" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}