Skip to content

Commit

Permalink
Merge 9f2e7b1 into 4b62dd8
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinsung committed Sep 5, 2018
2 parents 4b62dd8 + 9f2e7b1 commit 16fc9fc
Show file tree
Hide file tree
Showing 7 changed files with 389 additions and 520 deletions.
224 changes: 105 additions & 119 deletions examples/binary_code_transforms_demo.ipynb
@@ -1,21 +1,5 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# This code block is for automatic testing purposes, please ignore.\n",
"try:\n",
" import openfermion\n",
"except:\n",
" import os\n",
" os.chdir('../src/')"
]
},
{
"cell_type": "markdown",
"metadata": {},
Expand Down Expand Up @@ -48,12 +32,13 @@
"name": "stdout",
"output_type": "stream",
"text": [
"('These three expressions are equivalent: \\n', [W0 W1] + [W1] + [1])\n",
"These three expressions are equivalent: \n",
" [W0 W1] + [W1] + [1]\n",
"[W0 W1] + [W0] + [1]\n",
"[W0 W1] + [W1] + [1]\n",
"The native data type structure can be seen here:\n",
"[(0, 1), (1,), ('one',)]\n",
"('We can always evaluate the expression for instance by the vector (w0, w1, w2) = (1, 0, 0):', 1)\n"
"We can always evaluate the expression for instance by the vector (w0, w1, w2) = (1, 0, 0): 1\n"
]
}
],
Expand Down Expand Up @@ -86,18 +71,19 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[1, 0, 0], [0, 1, 0]], '[[W0],[W1],[W0] + [W1] + [1]]']\n",
"('number of qubits: ', 2, ' number of Fermion modes: ', 3)\n",
"('encoding matrix: \\n', array([[1, 0, 0],\n",
" [0, 1, 0]]))\n",
"('decoder: ', [[W0], [W1], [W0] + [W1] + [1]])\n"
"number of qubits: 2 number of Fermion modes: 3\n",
"encoding matrix: \n",
" [[1 0 0]\n",
" [0 1 0]]\n",
"decoder: [[W0], [W1], [W0] + [W1] + [1]]\n"
]
}
],
Expand Down Expand Up @@ -144,41 +130,41 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fermionic Hamiltonian\n",
"0.00549750443158 [3^ 2^ 2 1] +\n",
"-0.0117319857638 [1^ 0^ 3 2] +\n",
"-0.0461456528031 [2^ 1^ 1 0] +\n",
"-0.339184381747 [3^ 2^ 3 2] +\n",
"-0.795272686478 [1^ 1] +\n",
"-0.228253768937 [3^ 0^ 3 0] +\n",
"-0.365492570268 [2^ 2] +\n",
"0.0117319857638 [2^ 1^ 3 0] +\n",
"-0.497790805326 [1^ 0^ 1 0] +\n",
"-0.216521783173 [2^ 0^ 2 0] +\n",
"0.046145634732 [2^ 0] +\n",
"0.0117319857638 [3^ 0^ 2 1] +\n",
"-0.795272686478 [0^ 0] +\n",
"0.00549750443158 [2^ 1^ 3 2] +\n",
"-0.216521783173 [3^ 1^ 3 1] +\n",
"0.046145634732 [1^ 3] +\n",
"0.0461456528031 [3^ 0^ 1 0] +\n",
"-0.365492570268 [3^ 3] +\n",
"-0.228253768937 [2^ 1^ 2 1] +\n",
"-0.0117319857638 [3^ 2^ 1 0] +\n",
"0.0461456528031 [1^ 0^ 3 0] +\n",
"-0.00549750443158 [3^ 2^ 3 0] +\n",
"0.046145634732 [0^ 2] +\n",
"0.046145634732 [3^ 1] +\n",
"-6.76981321809 [] +\n",
"-0.00549750443158 [3^ 0^ 3 2] +\n",
"-0.0461456528031 [1^ 0^ 2 1]\n",
"-6.7698132180879735 [] +\n",
"-0.7952726864779313 [0^ 0] +\n",
"0.04614563473199314 [0^ 2] +\n",
"-0.4977908053255035 [1^ 0^ 1 0] +\n",
"-0.046145652803099894 [1^ 0^ 2 1] +\n",
"0.046145652803099894 [1^ 0^ 3 0] +\n",
"-0.011731985763800887 [1^ 0^ 3 2] +\n",
"-0.7952726864779313 [1^ 1] +\n",
"0.04614563473199314 [1^ 3] +\n",
"0.04614563473199324 [2^ 0] +\n",
"-0.21652178317319534 [2^ 0^ 2 0] +\n",
"-0.04614565280309991 [2^ 1^ 1 0] +\n",
"-0.22825376893699628 [2^ 1^ 2 1] +\n",
"0.011731985763800913 [2^ 1^ 3 0] +\n",
"0.005497504431583474 [2^ 1^ 3 2] +\n",
"-0.36549257026798354 [2^ 2] +\n",
"0.04614565280309991 [3^ 0^ 1 0] +\n",
"0.011731985763800913 [3^ 0^ 2 1] +\n",
"-0.22825376893699628 [3^ 0^ 3 0] +\n",
"-0.005497504431583474 [3^ 0^ 3 2] +\n",
"0.04614563473199324 [3^ 1] +\n",
"-0.21652178317319534 [3^ 1^ 3 1] +\n",
"-0.011731985763800917 [3^ 2^ 1 0] +\n",
"0.005497504431583467 [3^ 2^ 2 1] +\n",
"-0.005497504431583467 [3^ 2^ 3 0] +\n",
"-0.33918438174683924 [3^ 2^ 3 2] +\n",
"-0.36549257026798354 [3^ 3]\n",
"The eigenspectrum\n",
"[-7.86277316 -7.78339621 -7.78339621 -7.71405669 -7.71405669 -7.71405669\n",
" -7.70047584 -7.56998474 -7.56998474 -7.51199971 -7.51199971 -7.36481744\n",
Expand All @@ -187,33 +173,33 @@
"-----\n",
"\n",
"Jordan-Wigner transformed Hamiltonian\n",
"0.0129107802731 [X1 Z2 X3] +\n",
"0.0115364132008 [Z0 X1 Z2 X3] +\n",
"-0.0132436983303 [Z2] +\n",
"0.0115364132008 [X0 X2] +\n",
"0.0115364132008 [Z0 Y1 Z2 Y3] +\n",
"0.124447701331 [Z0 Z1] +\n",
"-0.0013743761079 [Y1 Y3] +\n",
"-0.0013743761079 [X0 Z1 X2 Z3] +\n",
"-0.00293299644095 [X0 X1 Y2 Y3] +\n",
"0.16199475388 [Z0] +\n",
"0.0541304457933 [Z1 Z3] +\n",
"0.16199475388 [Z1] +\n",
"0.0129107802731 [X0 Z1 X2] +\n",
"-0.0013743761079 [Y0 Z1 Y2 Z3] +\n",
"0.0129107802731 [Y0 Z1 Y2] +\n",
"0.0541304457933 [Z0 Z2] +\n",
"0.0847960954367 [Z2 Z3] +\n",
"0.00293299644095 [Y0 X1 X2 Y3] +\n",
"-0.0132436983303 [Z3] +\n",
"0.0570634422342 [Z1 Z2] +\n",
"0.0129107802731 [Y1 Z2 Y3] +\n",
"0.0115364132008 [Y0 Y2] +\n",
"0.0570634422342 [Z0 Z3] +\n",
"-0.00293299644095 [Y0 Y1 X2 X3] +\n",
"-7.49894690201 [] +\n",
"-0.0013743761079 [X1 X3] +\n",
"0.00293299644095 [X0 Y1 Y2 X3]\n",
"-7.498946902010707 [] +\n",
"-0.002932996440950227 [X0 X1 Y2 Y3] +\n",
"0.002932996440950227 [X0 Y1 Y2 X3] +\n",
"0.012910780273117489 [X0 Z1 X2] +\n",
"-0.0013743761078958677 [X0 Z1 X2 Z3] +\n",
"0.011536413200774975 [X0 X2] +\n",
"0.002932996440950227 [Y0 X1 X2 Y3] +\n",
"-0.002932996440950227 [Y0 Y1 X2 X3] +\n",
"0.012910780273117489 [Y0 Z1 Y2] +\n",
"-0.0013743761078958677 [Y0 Z1 Y2 Z3] +\n",
"0.011536413200774975 [Y0 Y2] +\n",
"0.1619947538800418 [Z0] +\n",
"0.011536413200774975 [Z0 X1 Z2 X3] +\n",
"0.011536413200774975 [Z0 Y1 Z2 Y3] +\n",
"0.12444770133137588 [Z0 Z1] +\n",
"0.054130445793298836 [Z0 Z2] +\n",
"0.05706344223424907 [Z0 Z3] +\n",
"0.012910780273117489 [X1 Z2 X3] +\n",
"-0.0013743761078958677 [X1 X3] +\n",
"0.012910780273117489 [Y1 Z2 Y3] +\n",
"-0.0013743761078958677 [Y1 Y3] +\n",
"0.1619947538800418 [Z1] +\n",
"0.05706344223424907 [Z1 Z2] +\n",
"0.054130445793298836 [Z1 Z3] +\n",
"-0.013243698330265952 [Z2] +\n",
"0.08479609543670981 [Z2 Z3] +\n",
"-0.013243698330265966 [Z3]\n",
"the eigenspectrum of the transformed hamiltonian\n",
"[-7.86277316 -7.78339621 -7.78339621 -7.71405669 -7.71405669 -7.71405669\n",
" -7.70047584 -7.56998474 -7.56998474 -7.51199971 -7.51199971 -7.36481744\n",
Expand All @@ -222,55 +208,55 @@
"-----\n",
"\n",
"Even-weight checksum code\n",
"-0.0129107802731 [Z0 X1] +\n",
"0.0129107802731 [Y0 Z1 Y2] +\n",
"0.108260891587 [Z0 Z2] +\n",
"-0.0132436983303 [Z2] +\n",
"0.114126884468 [Z1 Z2] +\n",
"0.0129107893087 [X0 X2] +\n",
"-0.0132436983303 [Z0 Z1 Z2] +\n",
"-0.0058659928819 [Y0 Y1 X2] +\n",
"0.209243796768 [Z0 Z1] +\n",
"-0.0129107893087 [X1] +\n",
"-7.49894690201 [] +\n",
"0.16199475388 [Z1] +\n",
"0.0129107802731 [X0 Z1 X2] +\n",
"0.16199475388 [Z0] +\n",
"0.0129107802731 [X1 Z2] +\n",
"0.0129107893087 [Y0 Y2] +\n",
"0.0129107893087 [Z0 X1 Z2] +\n",
"0.0058659928819 [X0 Y1 Y2]\n",
"-7.498946902010707 [] +\n",
"0.005865992881900454 [X0 Y1 Y2] +\n",
"0.012910780273117489 [X0 Z1 X2] +\n",
"0.012910789308670843 [X0 X2] +\n",
"-0.005865992881900454 [Y0 Y1 X2] +\n",
"0.012910780273117489 [Y0 Z1 Y2] +\n",
"0.012910789308670843 [Y0 Y2] +\n",
"0.1619947538800418 [Z0] +\n",
"-0.012910780273117489 [Z0 X1] +\n",
"0.012910789308670843 [Z0 X1 Z2] +\n",
"0.2092437967680857 [Z0 Z1] +\n",
"-0.013243698330265966 [Z0 Z1 Z2] +\n",
"0.10826089158659767 [Z0 Z2] +\n",
"-0.012910789308670843 [X1] +\n",
"0.012910780273117489 [X1 Z2] +\n",
"0.1619947538800418 [Z1] +\n",
"0.11412688446849814 [Z1 Z2] +\n",
"-0.013243698330265952 [Z2]\n",
"the eigenspectrum of the transformed hamiltonian\n",
"[-7.86277316 -7.71405669 -7.71405669 -7.71405669 -7.70047584 -7.36481744\n",
" -7.15152548 -6.76981322]\n",
"\n",
"-----\n",
"\n",
"Double odd-weight checksum codes\n",
"0.17523845221 [Z0] +\n",
"-0.0117319857638 [Y0 Y1] +\n",
"0.0258215786173 [X0] +\n",
"0.0951169122996 [Z0 Z1] +\n",
"-0.0258215786173 [X1] +\n",
"-7.6072077936 [] +\n",
"0.17523845221 [Z1] +\n",
"-0.0258215605462 [Z0 X1] +\n",
"0.0258215605462 [X0 Z1]\n",
"-7.607207793597305 [] +\n",
"0.025821578617341686 [X0] +\n",
"0.025821560546234978 [X0 Z1] +\n",
"-0.011731985763800908 [Y0 Y1] +\n",
"0.1752384522103078 [Z0] +\n",
"-0.025821560546234978 [Z0 X1] +\n",
"0.09511691229958755 [Z0 Z1] +\n",
"-0.025821578617341686 [X1] +\n",
"0.1752384522103078 [Z1]\n",
"the eigenspectrum of the transformed hamiltonian\n",
"[-7.86277316 -7.71405669 -7.70047584 -7.15152548]\n",
"\n",
"-----\n",
"\n",
"Instead of interleaving, we can apply up-then-down ordering using the reorder function:\n",
"0.17523845221 [Z0] +\n",
"0.0258215786173 [X0 Z1] +\n",
"0.0258215605462 [X0] +\n",
"0.0951169122996 [Z0 Z1] +\n",
"0.0258215605462 [X1] +\n",
"-7.6072077936 [] +\n",
"0.17523845221 [Z1] +\n",
"0.0258215786173 [Z0 X1] +\n",
"0.0117319857638 [X0 X1]\n",
"-7.607207793597305 [] +\n",
"0.025821560546234978 [X0] +\n",
"0.011731985763800908 [X0 X1] +\n",
"0.025821578617341686 [X0 Z1] +\n",
"0.1752384522103078 [Z0] +\n",
"0.025821578617341686 [Z0 X1] +\n",
"0.09511691229958755 [Z0 Z1] +\n",
"0.025821560546234978 [X1] +\n",
"0.1752384522103078 [Z1]\n",
"the eigenspectrum of the transformed hamiltonian\n",
"[-7.86277316 -7.71405669 -7.70047584 -7.15152548]\n"
]
Expand Down Expand Up @@ -330,21 +316,21 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"display_name": "Python 3",
"language": "python",
"name": "python2"
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.14"
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
Expand Down

0 comments on commit 16fc9fc

Please sign in to comment.