{ "metadata": { "name": "", "signature": "sha256:8d03e812c3b9c199a40cc90ae2588eebc64bb41b014c6c2a77d32487caba15f5" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
\n", "I may end up also using it for documenting sglib functions.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n",
"You can create a state using either the "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"string_tensor(2, ['0','1'], separator=',', D=False)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 15,
"text": [
"['0,0', '0,1', '1,0', '1,1']"
]
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fs = sg_format_state(basis=['0', '1'], separator='').format\n",
"fs = sg_format_state(basis=['+z', '-z'], separator='').format\n",
"fs = sg_format_state(basis=['Heads', 'Tails'], separator='').format\n",
"psi = 1/sqrt(2)*col(1,0)+1/sqrt(2)*col(0,1)\n",
"Print('$\\psi=%s$'%fs(psi))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"$\\psi=\\frac{1}{\\sqrt{2}}|Heads\\rangle+\\frac{1}{\\sqrt{2}}|Tails\\rangle$"
],
"metadata": {},
"output_type": "display_data",
"text": [
"col()
or the\n",
"ket()
function. In both cases, the object that gets\n",
"created is a column vector."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"col(1,0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\left[\\begin{matrix}1\\\\0\\end{matrix}\\right]$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAyBAMAAACqpzYoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhDNIruZq3bd\nZkRVk0nZAAAAoUlEQVQoFWOQ//+JAQT0/39kEHZxBbNDXAwZRMAsEOEIYbMFwNns/XA2a+d6OJuB\nYf/AsGfJn7oAdyfY3VA3DxA7UnsKPKySGWIKoG7jFWBgSoCyORYwMH+FsvkXMPB9hrLjJzDw/Yay\n6xUYWICRA/YLMjteAaGGfwIDM0wvTwMDL8xMbgEGTphdDIcZAh2g5jAE7V4CdxuQQTEbOc0gpSUA\nIOM9jSjGIy4AAAAASUVORK5CYII=\n",
"prompt_number": 36,
"text": [
"\u23a11\u23a4\n",
"\u23a2 \u23a5\n",
"\u23a30\u23a6"
]
}
],
"prompt_number": 36
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ket('+z')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\left[\\begin{matrix}1\\\\0\\end{matrix}\\right]$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAyBAMAAACqpzYoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhDNIruZq3bd\nZkRVk0nZAAAAoUlEQVQoFWOQ//+JAQT0/39kEHZxBbNDXAwZRMAsEOEIYbMFwNns/XA2a+d6OJuB\nYf/AsGfJn7oAdyfY3VA3DxA7UnsKPKySGWIKoG7jFWBgSoCyORYwMH+FsvkXMPB9hrLjJzDw/Yay\n6xUYWICRA/YLMjteAaGGfwIDM0wvTwMDL8xMbgEGTphdDIcZAh2g5jAE7V4CdxuQQTEbOc0gpSUA\nIOM9jSjGIy4AAAAASUVORK5CYII=\n",
"prompt_number": 37,
"text": [
"\u23a11\u23a4\n",
"\u23a2 \u23a5\n",
"\u23a30\u23a6"
]
}
],
"prompt_number": 37
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When you use the col()
the parameters you give it are simply\n",
"the individual components of the column vector, separated by commas. The\n",
"vector can have any dimension. Here's one of dimension 4:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"col(1,0,0,0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\left[\\begin{matrix}1\\\\0\\\\0\\\\0\\end{matrix}\\right]$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAABoAAABkCAMAAACvvNBNAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRM0iu+/dZol8bIlZUvoAAAENSURBVEgN7VbLEoMgDESIaH2Bbf7/W0uIAnGw\n46GHzlQOglkSwrJhUA3GplVqji1KNWggtDYhytO/RoKabM0jf4RGu4MHaJqxDtnZ6BMohIIbSswb\nvaDTngk+0LuzTv0NnbNhzQpml7Ikagy6t25iXwH5hYzrWIHmWEftplLhhREakMuphCwaCjUgxIgl\nNOFKtoY7cZQfIMvTy4AddjG44rXaLY1nWbBupim+ljzELZvalpUjopaNxDL5YF7DdVGnl7PZvtLr\nVyEL6coqU5zCsV29D7Pf5S3/j0T7B9MjJfrqC3pviZYFm9VEo8uKEm7f8PobiaYylxIVHN4SjRI9\nfVVaekMCDFmF8VUJoN4wwSOLJ/RcqwAAAABJRU5ErkJggg==\n",
"prompt_number": 40,
"text": [
"\u23a11\u23a4\n",
"\u23a2 \u23a5\n",
"\u23a20\u23a5\n",
"\u23a2 \u23a5\n",
"\u23a20\u23a5\n",
"\u23a2 \u23a5\n",
"\u23a30\u23a6"
]
}
],
"prompt_number": 40
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The ket()
only takes a single parameter, and it needs to by\n",
"enclosed in quotes. It will recognize the basic electron states, and a\n",
"zero or one for the classical bit state."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ket('-y')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\left[\\begin{matrix}\\frac{\\sqrt{2}}{2}\\\\- \\frac{\\sqrt{2} i}{2}\\end{matrix}\\right]$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAD8AAAA/BAMAAAClcQ3sAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARM1UEHaJu2Yimasy\n3e/JfTDcAAAB2klEQVRIDY2Vv0vDQBTHX5JWW5vWgtBFIQGhk2AhOIpBB0cDji6Zu9ihLi46OgYU\nXOt/4CS4ufhn+D+0kMUpvmeay/14F31DL7zvp3eXe993gaAoQrDEXVFMIIiioUWHnegEAV0tMJZV\ncmACTlqJNDLAZjy9jQXDAEcbWS9sAsJ+5n83AJ37wbC7agBc1LzcAnQnAJeo9RMLMMqhNUNtKnT9\nNcewNQToLKxAED+jNoI9QWjn4KbvAP5+NLcBzuoVT1cqhb4HOMzEf8sHbQn41HRjBl1XgW1yQhnL\nitSXqPJiNAHZDIgZgGIGDlDMwAGKGThAMQMP9BPMizA2qZgBMROQzcACshk4QDEDByhm4ADMAbSp\nYmW9zE0SMKKfMnhgDlSy9gIZFvCS35L5ZD8WcKEuGQs8QF0yFghxai93rnAwl3jEl5yg0E82LmIG\ncK5jOMc89u/TMY3GEm4KL5inkt2wgJN3ZyhgyVr5Bz4YM8C4h69PJfPClAWCXUpjKVpv/EG59Q2H\nJLOEn1BehLkHIZUPa+D0i+IAYN276wGZ/86gzSs1MDuD3MAsULvBsofaDRZAbmB2Cfk2twD1bc4D\nUgPzgNTALCA3MAvIDcwC8sET8NfH/azx4x5lP14sjgVU+v8SAAAAAElFTkSuQmCC\n",
"prompt_number": 48,
"text": [
"\u23a1 ___ \u23a4\n",
"\u23a2 \u2572\u2571 2 \u23a5\n",
"\u23a2 \u2500\u2500\u2500\u2500\u2500 \u23a5\n",
"\u23a2 2 \u23a5\n",
"\u23a2 \u23a5\n",
"\u23a2 ___ \u23a5\n",
"\u23a2-\u2572\u2571 2 \u22c5\u2148 \u23a5\n",
"\u23a2\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u23a5\n",
"\u23a3 2 \u23a6"
]
}
],
"prompt_number": 48
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ket('0'), ket('1')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"$$\\begin{pmatrix}\\left[\\begin{matrix}1\\\\0\\end{matrix}\\right], & \\left[\\begin{matrix}0\\\\1\\end{matrix}\\right]\\end{pmatrix}$$"
],
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAHUAAAAyBAMAAACQd4lbAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAC60lEQVRIDaWWPYgTURDHJwl5m803WJ+mt7gIh5WYVBaiJNWBIGRRDyyEiyiiVQKK\nrYFTEGxSiZV3pZ2vEZtAAoqd3BaKraIifhH/M29fdlMk7K4DmcybyW9n3nuzL48IkmkQ7c6/wII9\nn3tiLCs1n9fZY8I3w+ARmDuT1+JwJq+8MLKw1MVJnwcmnPVtINOGdc2OqOwtzNBQ2toSfm5H2/xE\nYatsrWSdE290EC7IBFDGJX4Is6UHa9lq13kSsM4OM0SFJmuwzt3OWvYp0VFb1jYzRD0GTM2Ha9l7\n8lszJbfOEO2JlvmuZ78RbXaD5cj/ZqooOkZe5yvYmV1KyegOY+YtoXmmdcvu8/SmjVTsYAbspKBx\nakbesOaqD+5KXJYw355dK6pgmcq/YrOPiTDLoO1Kf0l4pmPs0Tui07Y3iK6iq7zYed2ugwy23e8T\nqWHIbu0+HIdB4w+00ujZjbfQlj12QIOmiUrNYtqg8QdaaTu04f0Gr7pIYnY641VPx6LgQ52SrbWp\ndZCWHaZnlU9yVCB14rVSI+qYkpOzrvdfbKufcq3cEaG1RNLMN7q/NzZO4Tmm6Qa+eWaglWbjEz62\nJ7HOaEsRzvuR7qAKE3R/GH+glYbxgn2WrQ2p18AYArboUcZfBI+L2yqliW5vRVn0ZORdKLQpj2jw\n4LHF5FtpfFWiLN6FyDuIDs1+t6wzxo9DURr2EouXCFMWQc14TBankMlbNG6rlYa1xGKDCp9NGOxL\nHNw4R+1iGH+glYaxxHaCMfyJWZx1ZcyQhWuuR2o23oVWGmY0L5+xkbO91qT8Yq0QiYrSGEVZPtup\nhQ8EefGvVgz3yLitVhpWlC2M4NhsQAlb8Sjnx12r2gyQ22SU89IjuqXjsvIfymVCmL3+/hz0yj3K\nnfl5dhH+wBBdFs2skZVsNJw1t4Ven50J2YKZaVW+ErJyn8ON7E/yvOY+B+5CcjYomSjXBpys5mec\nTuQ8dMo7MOUaSe/esjX/AHWQEqGcK7+dAAAAAElFTkSuQmCC\n",
"prompt_number": 50,
"text": [
"\u239b\u23a11\u23a4, \u23a10\u23a4\u239e\n",
"\u239c\u23a2 \u23a5 \u23a2 \u23a5\u239f\n",
"\u239d\u23a30\u23a6 \u23a31\u23a6\u23a0"
]
}
],
"prompt_number": 50
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import sglib\n",
"reload(sglib)\n",
"from sglib import *\n",
"\n",
"psi = 1/sqrt(2)*ket('+z') + 1/sqrt(2)*ket('-z')\n",
"fm = latex\n",
"fm = sg_latex\n",
"fm = sg_format_state(['+z','-z'], ',').format\n",
"Print(r'$\\psi = %s$' % fm(psi))\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"$\\psi = \\frac{1}{\\sqrt{2}}|+z\\rangle+\\frac{1}{\\sqrt{2}}|-z\\rangle$"
],
"metadata": {},
"output_type": "display_data",
"text": [
"
\n",
"\n",
"^ string_tensor()
\n",
"
\n",
"\n",
"^ sg_format_state()
\n",
"