From 5cd076835db120f6e08c3ff4bbb257dba1b3df97 Mon Sep 17 00:00:00 2001 From: kevinsung Date: Sat, 28 Oct 2023 19:57:24 +0000 Subject: [PATCH] deploy: 444a4c3e9345fdda1182f12854852c744cfe6b84 --- .doctrees/api/ffsim.doctree | Bin 482591 -> 482591 bytes .doctrees/environment.pickle | Bin 1530624 -> 1530678 bytes .../nbsphinx/tutorials/01-introduction.ipynb | 24 ++-- .../tutorials/02-orbital-rotation.ipynb | 32 ++--- .../tutorials/03-double-factorized.ipynb | 80 +++++------ .doctrees/nbsphinx/tutorials/04-lucj.ipynb | 54 ++++---- .../tutorials/05-entanglement-forging.ipynb | 28 ++-- .../tutorials/06-fermion-operator.ipynb | 126 +++++++++--------- .doctrees/tutorials/04-lucj.doctree | Bin 38275 -> 38269 bytes .../tutorials/05-entanglement-forging.doctree | Bin 15260 -> 15260 bytes .../tutorials/06-fermion-operator.doctree | Bin 41385 -> 41445 bytes api/ffsim.html | 22 +-- searchindex.js | 2 +- tutorials/01-introduction.ipynb | 24 ++-- tutorials/02-orbital-rotation.ipynb | 32 ++--- tutorials/03-double-factorized.ipynb | 80 +++++------ tutorials/04-lucj.html | 22 +-- tutorials/04-lucj.ipynb | 54 ++++---- tutorials/05-entanglement-forging.html | 4 +- tutorials/05-entanglement-forging.ipynb | 28 ++-- tutorials/06-fermion-operator.html | 54 ++++---- tutorials/06-fermion-operator.ipynb | 126 +++++++++--------- 22 files changed, 396 insertions(+), 396 deletions(-) diff --git a/.doctrees/api/ffsim.doctree b/.doctrees/api/ffsim.doctree index 5484f1edda5c8ffb5328a9f775bd8448983ce6c0..af93486eaf3547093abe4bb6235b74f3f778acd9 100644 GIT binary patch delta 300 zcmbQgOLqP)*@i8QC&Z_(mu3{2UN6C@!>BXeL4i?jx~c@DCWh$t)e?*>%+viO82K3u zrzc1-%1?KZVbq?^DFalDF1o!(hH)43^bHD(2Gb|0FiK9hlVM~-vEzXPqcR@(<#QDo znWy(iFiK3XQe{+{o-YG5#6=b8xGEV&zUdBXK;uMI8C9nLRRwZysW57QSPIkUs4~Wr duC4u-8Y2)h0WmWWvj8zG5VLLnrN*vm1^}8zQ$hd$ delta 288 zcmbQgOLqP)*@i8QC&Z_(muBQ=HqbMjzF(SAetLogqt0|y2}VsU;@ekCFtRXD_mf~0 znto53QG5D91x6W0!|9wdK;`J7+k0dfcQH@bkzo`?G2M8&n*yW3^al!z%D5z#&sAh( zo^Gee$Tz)1l~H8+brnY5={2fAZip(Q#`HWjMl%q>H$6a&QD*vF6-KM+b5t4QNz&2& aON|kTnShuXh*^M`6^Plk|59UDH3I;bJW(zH diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 25a84db677d50e9f7968c8b52492c6f0fec7f445..70209c30285f77aafde7b64ae67051b3f8f379f2 100644 GIT binary patch delta 21291 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 delta 20637 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%0AYn2guDz=V33lsC0MxQ7FB-$PF|$JOLa$w zMhXrUs@;;naKW4O5=A??n*jCCtRsBMBoauTxs@Ot7>aPgN~%QY!s`*jX}1#e&4VQ> zL2sV8_5VY-f*7HfTM5c~%x$_4#@F3PXa83OhZn}dMX9#!Q%}LGW5hS#H(!`d+_ijF&ps4J zbENWTVK_bQ`jMtLAX3mFL6CAc3X?d>^CT!-&`ZxZ3D@0x^BIryYqxyEL18{ex-4bYz{6f3UwE#*W2e*?eXX&nkMvy2AB)vQ@OytOkXOJ>nNct21m+}CPxIl*%c*u*E>}55b8pvY~ zFE0rTIP&aQuvA?U3d!(?vgPtCg2+*xCkL(yC*T{?#n*(jZsfHaa5jvSB5n#>IWnP2 zNLpYQQ|O&%2+6ttyXu+S!U1AYi|(o1r>9**EO&*;AO4%rnj@PJL!C<>(rJdx4v&Nqck|+7VW+#f?x_&r zK?*j27r0tABE`>P;Fceddv)u%5XVuTm!e+^OIdTr1+hN|moT{HBw|P4BIYYButu=E zMNy^G24C_y3tl6go(iqVmP)rb(pn`RAk93)aB^&bRYSIDgmi*^h5OrZ5~31AiB%(> z&!&F@m)RNrpe$2|*SAa?-rX{dcyY^A;jIk_y|QI;cwYmKUe+=-cvAz8UeiD}k)&wF zX52V3K`ZturnkL$&UGS3|Hclz%yX{)6SwhC+~z-VTmQt}`V)8OPu#sfarb4;is2u~ ztTa$3UZIaOwl|1d;Ym62!YI~ z@O>(+01$d(1wtzTgx*zw&~t6R~zJ% z1HJh0Vg_*Cd9f*w_joZG$PYZK1PSP~qaZd0aISz}z7oVl;GPO%Lm)|_*aXN}Ms|wm z<&lW4(>&4jL{HTG*psE?DRu*cwqDq=d5oO)LNDIlsF~x9nq}T%SJ1rVja3S&Ddqw< zt)`d?WM56OCy)RiF$G9hAF(@-?LL_9Wgjd-179%`z&Cx-e338q=x1NC9e~lbFy8Q5 zVhb}JQ0Iksc=1gj7yZOq#J{=9W~g-f=5RIW+mK(Ga-1J_e~_OT2ObvtVXCM6(7Wi5 z70U6)0#EhFB7W*G#(?Hs#?=WxgMI-Rd1Zi@4zddYn19Vc^wK2|^Pd(7v$vRR3lzhE zoCy@`a>WaS=qm{iLM)qcV;Nb>z^{VDI-qhZ2t9|_#*7BlX4%%p+>bJ%4#qT-g0aj) zgGKsRVI){=4&+?0*aApU2pV(_L1*(rF#7HgF#=ZCl@J)@5>h7=B9xHaP*5o$D?_0R zC8RnOdRapJ!eEq2NS81%9M)lR81&giJ_{4mfIJNYO&3Y2gJditAJqW^7r9#p=9Y_u z)`iSmq^rTny2%xcG8o zaa>l$;$k=-3mq*c-f@^yhdA61R>YzC%{Z|&$l~I0xfRAkw~L7sk6!M?qg{9c&ddP` zxLVgHK)H&^ZARh}nO!0}`yvsY8Iw@6eG(=yGYOMF1%$1oga}wm2@zy#0-Qt>l0*~f znJmJWy(BLg?bauw-SuRga1By$LFA|4d|jV{nO#i5eakZyyD}(M>(8x;(BV`5ChF@h$`PTlvjC3L&z+oA?cL?tGpmx)RM;Om|44Ytjmma zToIo!?s+-%&&TNe7mNv!(wY@Pe+zX9y0F6 z>5v5@T1ei`g85WPE@gpi9I2fR@y3x}*|1E^QPB8vA>9o3|iuk8t>qx!G_L z{j|M3jO^@fO87)h8{J3 zQh@6WxS#+o1Jx*YUQ`gh5p6Cjz-0k}D+(}6MBthNwDd&ah5}f;5V)lP+q@CDqX4aI zB5;oZ#jpXKXUKg;rPv2m9wzNTi}duYaHttpE`T z2*fJD%R~g?6<~ET0*MM>OF67 z0XAkM&|CqUp-gZ_3?kn~anx+}o5$q4jRfQ%^!^j3grQxWK^ z0Q;sR&|d*sl_8L;05P)>7z9@?_fO&+nTtrCqLT480z(vFLInat72s$k0>c$xBtc+= z0@QjBfl&$|EJa|90xU0HjmS6!nZFK!LIwC@0|FBipv7hciYVYd$q^`#0o=VO%be4? z6~$8&;QYr3Ort=Ljn9IDDnsbZ_5B?Q6Y2A zc1*lL0S+9a`o&J7AkH7r!#fI)^AiH^DnL;c0!tKNWi_jn19ZyTZp``sGPWqz&ZsucpriF3SfVLz(xhQ`ZokNQvlyT_&r8on+#w%K9V_S zDiiN4R*=kxfY3~UOq9|Fh@;{Hal9hTuxhZi3oc}= zH41KGPWT~)h2mm;Bb1qoWZ7ZZ_nDTXL~eC~jh^(jHQzIHy;;`4EPL=A#k$$y!c$hkn6Cw1MW=Yt%h(Gv(`X3gjs7Z9IX)hT9M~<`j_a(=6M?6(>dwvSDr__ zn9s9tqA}g>a4fObLO73DD-n(v*4hAv2Wy>&Qv-ZnIp^8Q%KF?6&OAUeZhGqBCk&)^ z4?NBNfOhTdRRq7IB%K`Q)icC|r@q!u_AX-t2TquOIeW-pLb@DX^cjvmpYuOOP1?ya(!;>@w`AOvXJz*_1loLAH3b z%e^eitXJih>W18U47)Y6yaU@bcs-ry{g(fmxasbNJ(O*~^\n" ] } @@ -246,10 +246,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:37.427302Z", - "iopub.status.busy": "2023-10-28T19:16:37.426890Z", - "iopub.status.idle": "2023-10-28T19:16:40.431885Z", - "shell.execute_reply": "2023-10-28T19:16:40.431363Z" + "iopub.execute_input": "2023-10-28T19:57:09.514206Z", + "iopub.status.busy": "2023-10-28T19:57:09.513991Z", + "iopub.status.idle": "2023-10-28T19:57:12.848253Z", + "shell.execute_reply": "2023-10-28T19:57:12.847650Z" } }, "outputs": [ @@ -261,10 +261,10 @@ " message: STOP: TOTAL NO. of f AND g EVALUATIONS EXCEEDS LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.45803733775867\n", - " x: [-3.763e-01 8.442e-02 ... 5.733e-01 3.056e-01]\n", - " nit: 13\n", - " jac: [ 4.310e-03 -5.713e-04 ... 1.236e-04 -1.080e-04]\n", + " fun: -77.45981953688877\n", + " x: [-3.348e-01 7.867e-02 ... -5.151e-01 2.150e-01]\n", + " nit: 14\n", + " jac: [ 9.408e-04 8.114e-04 ... -3.837e-04 -1.720e-04]\n", " nfev: 1034\n", " njev: 22\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" diff --git a/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb b/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb index 0be38ab46..789aecd4e 100644 --- a/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb +++ b/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb @@ -14,10 +14,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:42.296357Z", - "iopub.status.busy": "2023-10-28T19:16:42.295952Z", - "iopub.status.idle": "2023-10-28T19:16:42.899302Z", - "shell.execute_reply": "2023-10-28T19:16:42.898697Z" + "iopub.execute_input": "2023-10-28T19:57:14.828936Z", + "iopub.status.busy": "2023-10-28T19:57:14.828179Z", + "iopub.status.idle": "2023-10-28T19:57:15.483816Z", + "shell.execute_reply": "2023-10-28T19:57:15.483170Z" } }, "outputs": [ @@ -90,10 +90,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:42.902525Z", - "iopub.status.busy": "2023-10-28T19:16:42.902033Z", - "iopub.status.idle": "2023-10-28T19:16:42.923660Z", - "shell.execute_reply": "2023-10-28T19:16:42.923032Z" + "iopub.execute_input": "2023-10-28T19:57:15.488508Z", + "iopub.status.busy": "2023-10-28T19:57:15.487877Z", + "iopub.status.idle": "2023-10-28T19:57:15.514609Z", + "shell.execute_reply": "2023-10-28T19:57:15.514049Z" } }, "outputs": [ @@ -101,7 +101,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialialization: -75.68366174447618\n" + "Energy at initialialization: -75.68366174447617\n" ] } ], @@ -135,10 +135,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:42.926433Z", - "iopub.status.busy": "2023-10-28T19:16:42.926041Z", - "iopub.status.idle": "2023-10-28T19:16:44.731215Z", - "shell.execute_reply": "2023-10-28T19:16:44.730453Z" + "iopub.execute_input": "2023-10-28T19:57:15.519063Z", + "iopub.status.busy": "2023-10-28T19:57:15.517797Z", + "iopub.status.idle": "2023-10-28T19:57:17.565183Z", + "shell.execute_reply": "2023-10-28T19:57:17.564175Z" } }, "outputs": [ @@ -150,7 +150,7 @@ " message: Maximum number of function evaluations has been exceeded.\n", " success: False\n", " status: 2\n", - " fun: -75.69434198356153\n", + " fun: -75.69434198341699\n", " x: [ 1.352e+00 8.664e-02 -2.940e-03 1.104e+00 -1.913e-01]\n", " nfev: 100\n", " maxcv: 0.0\n" diff --git a/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb b/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb index c8773430e..9d930e5a6 100644 --- a/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb +++ b/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.258801Z", - "iopub.status.busy": "2023-10-28T19:16:46.258407Z", - "iopub.status.idle": "2023-10-28T19:16:46.576264Z", - "shell.execute_reply": "2023-10-28T19:16:46.575707Z" + "iopub.execute_input": "2023-10-28T19:57:19.232336Z", + "iopub.status.busy": "2023-10-28T19:57:19.231733Z", + "iopub.status.idle": "2023-10-28T19:57:19.578162Z", + "shell.execute_reply": "2023-10-28T19:57:19.577583Z" } }, "outputs": [ @@ -76,10 +76,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.580327Z", - "iopub.status.busy": "2023-10-28T19:16:46.579258Z", - "iopub.status.idle": "2023-10-28T19:16:46.585357Z", - "shell.execute_reply": "2023-10-28T19:16:46.584848Z" + "iopub.execute_input": "2023-10-28T19:57:19.582566Z", + "iopub.status.busy": "2023-10-28T19:57:19.581342Z", + "iopub.status.idle": "2023-10-28T19:57:19.589175Z", + "shell.execute_reply": "2023-10-28T19:57:19.587715Z" } }, "outputs": [ @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.589151Z", - "iopub.status.busy": "2023-10-28T19:16:46.588225Z", - "iopub.status.idle": "2023-10-28T19:16:46.594967Z", - "shell.execute_reply": "2023-10-28T19:16:46.594486Z" + "iopub.execute_input": "2023-10-28T19:57:19.594293Z", + "iopub.status.busy": "2023-10-28T19:57:19.593169Z", + "iopub.status.idle": "2023-10-28T19:57:19.600951Z", + "shell.execute_reply": "2023-10-28T19:57:19.600404Z" } }, "outputs": [ @@ -121,17 +121,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", - " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", - " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", + " (cre_b(2)): 0-0.25j,\n", + " (cre_a(0), des_a(3)): 1,\n", " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", + " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", - " (cre_a(0), des_a(3)): 1,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", - " (cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0)): -0.5,\n", - " (des_a(3), des_b(3)): 0.0625\n", + " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", + " (des_a(3), des_b(3)): 0.0625,\n", + " (cre_a(3), des_a(0)): -0.5\n", "})" ] }, @@ -169,10 +169,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.598743Z", - "iopub.status.busy": "2023-10-28T19:16:46.597834Z", - "iopub.status.idle": "2023-10-28T19:16:46.603779Z", - "shell.execute_reply": "2023-10-28T19:16:46.603254Z" + "iopub.execute_input": "2023-10-28T19:57:19.605319Z", + "iopub.status.busy": "2023-10-28T19:57:19.604259Z", + "iopub.status.idle": "2023-10-28T19:57:19.610844Z", + "shell.execute_reply": "2023-10-28T19:57:19.610295Z" } }, "outputs": [ @@ -180,17 +180,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", - " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", - " (cre_a(3), des_a(0), cre_b(2)): -1,\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", + " (cre_b(2)): -5,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", " (cre_a(0), des_a(3), cre_b(2)): 2,\n", + " (cre_a(3), des_a(0), cre_b(2)): -1,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", - " (cre_b(2)): -5,\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (des_a(3), des_b(3)): 0-1.25j\n", + " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", + " (des_a(3), des_b(3)): 0-1.25j,\n", + " (cre_a(3), des_a(0)): 0+3j\n", "})" ] }, @@ -219,10 +219,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.607583Z", - "iopub.status.busy": "2023-10-28T19:16:46.606671Z", - "iopub.status.idle": "2023-10-28T19:16:46.612323Z", - "shell.execute_reply": "2023-10-28T19:16:46.611842Z" + "iopub.execute_input": "2023-10-28T19:57:19.615183Z", + "iopub.status.busy": "2023-10-28T19:57:19.614121Z", + "iopub.status.idle": "2023-10-28T19:57:19.620462Z", + "shell.execute_reply": "2023-10-28T19:57:19.619906Z" } }, "outputs": [ @@ -230,15 +230,15 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(2), cre_a(0), des_a(3)): 2,\n", - " (cre_b(2), cre_a(3), des_a(0)): -1,\n", - " (cre_b(2)): -5,\n", " (des_b(3), des_a(3)): 0+1.25j,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", + " (cre_a(3), des_a(0)): 0+3j,\n", + " (cre_b(2)): -5,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", + " (cre_b(2), cre_a(0), des_a(3)): 2,\n", + " (cre_b(2), cre_a(3), des_a(0)): -1,\n", + " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j\n", "})" ] @@ -264,10 +264,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.617734Z", - "iopub.status.busy": "2023-10-28T19:16:46.616793Z", - "iopub.status.idle": "2023-10-28T19:16:46.622083Z", - "shell.execute_reply": "2023-10-28T19:16:46.621607Z" + "iopub.execute_input": "2023-10-28T19:57:19.626133Z", + "iopub.status.busy": "2023-10-28T19:57:19.624760Z", + "iopub.status.idle": "2023-10-28T19:57:19.630509Z", + "shell.execute_reply": "2023-10-28T19:57:19.629942Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.625116Z", - "iopub.status.busy": "2023-10-28T19:16:46.624737Z", - "iopub.status.idle": "2023-10-28T19:16:46.631157Z", - "shell.execute_reply": "2023-10-28T19:16:46.630690Z" + "iopub.execute_input": "2023-10-28T19:57:19.633520Z", + "iopub.status.busy": "2023-10-28T19:57:19.633053Z", + "iopub.status.idle": "2023-10-28T19:57:19.640063Z", + "shell.execute_reply": "2023-10-28T19:57:19.639527Z" } }, "outputs": [ @@ -340,21 +340,21 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.634656Z", - "iopub.status.busy": "2023-10-28T19:16:46.633709Z", - "iopub.status.idle": "2023-10-28T19:16:46.641478Z", - "shell.execute_reply": "2023-10-28T19:16:46.641007Z" + "iopub.execute_input": "2023-10-28T19:57:19.643130Z", + "iopub.status.busy": "2023-10-28T19:57:19.642713Z", + "iopub.status.idle": "2023-10-28T19:57:19.651068Z", + "shell.execute_reply": "2023-10-28T19:57:19.650576Z" } }, "outputs": [ { "data": { "text/plain": [ - "array([0. +0.j , 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " 0.08907224+0.10710701j, 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " 0. +0.j ])" + "array([ 0. +0.j , 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " -0.10305872-0.08742954j, 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0. +0.j ])" ] }, "execution_count": 8, @@ -379,10 +379,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.645524Z", - "iopub.status.busy": "2023-10-28T19:16:46.644271Z", - "iopub.status.idle": "2023-10-28T19:16:46.658301Z", - "shell.execute_reply": "2023-10-28T19:16:46.657816Z" + "iopub.execute_input": "2023-10-28T19:57:19.655097Z", + "iopub.status.busy": "2023-10-28T19:57:19.654074Z", + "iopub.status.idle": "2023-10-28T19:57:19.670028Z", + "shell.execute_reply": "2023-10-28T19:57:19.669485Z" } }, "outputs": [ diff --git a/.doctrees/tutorials/04-lucj.doctree b/.doctrees/tutorials/04-lucj.doctree index 6872dfb11ccb19b63c7a06b02d47e529fec50c73..adc59abc0ba6ee84be555896b32452dfab50ac16 100644 GIT binary patch delta 2148 zcmZo(&GdH_6H5c@)S`_n3vJlTZ3>D~?YJgiu$N{uo1EYv!)$D6I=S9KPu!BrMjs?M zC4)V7N`_qzPL+(7lV{i#Gp?C@HdJTwJ3DDsGX(|Ln91+$C1GX(RS34oF!c~pA~w0e zKAtfP(=l9@FjruaWVGD8-a$pk#l+IY!ra8zz`)SZgi8SmDy$Tubq)1QO-)mE4Ga|& z4D~FHjlfJjJv{|oGd%-SGq{YI#pF|A@_s;3OLLH@v4XCVo}~qZ307~RXKZ8vmQgU$ zGcq>;F=HW?<)x*TSt%GASeiolSzx~DWU)|>$!CIR4p#SV77NX0^dvFxs$+6e@=JzV_7Fs9A|n_#+k^`Y0cTFO2@eFOV$R8lk&mbr<006?liU=^rI3+YTs)aC(qyt; z^pwHx%FSzI_9)d`S{PcI8k<>ISeTomW^ZFXV-rxO1ZHn@Jqt5)Ak#sc6sj5bjK zmM7*$lj~ZwCU0qUnw;D)b1=GX^OnXmMp7My$f48;IZ1?pn88;%`G6qXWZjmXgV&Xt b>sk{@4n(@7yy@*HNDVf6xNEa`XATbl>=pX- delta 2172 zcmeynim7=u6H5c@)QXKP3vJjdYzm4}?YJh}J4iDcPmXqwVKK3^;F`SFN_O%DI{^tZ z3oaXdkcuf8?6Ffa?0WF4XEL*xJk7S4aqZ-UCY{Nz?W9?a6%<@!CdWBQqL>R(x6n?O zNOfY9-?nm2F0~J1%*NqPZZiv*192$RFmvfSG!FdI}0AdPb&Z5E&yqO9S)Cg2D2B3Z{A%rba+fV+CDv zJyT0_FcYlaSkDN`)iu$xurL70#6m2~OG_=YQZO_&G=cK7z$>MFDb6Y9*V)(LlL2goSjX1#eu%xm6!}H9e`zku^~7kE9e6C8iMqiK#bxy)H5;$6%Qr~ zz%sr~RsL3Deb2fiyR3X`6h^$DRAd^HGh!$=@Cu(iJ*331?ojCbgvp29t WdNT-P*kJPX_CtfwU7N)_(|7;}!TsO> diff --git a/.doctrees/tutorials/05-entanglement-forging.doctree b/.doctrees/tutorials/05-entanglement-forging.doctree index 55f2b99cbe93f36324cbc57e5d47e88076dab84b..25de2040e0e52c68016f7200e0ae38fa6f60613b 100644 GIT binary patch delta 131 zcmbPJKBs)cEO|!r$+P8MfaC-Db3k&vLIs!+KWG*JEh!r?7pR!Hmz0Z1gDNAsX3$73m2Rx_lIJQ3~@R8@gg<*g}WU?PcH` zWbh{FhB;zHF=WPtxE7J7di)I5qF-v*@p4P_0k_wKHJ@1a9`6FLVdH6R$qep^G{Src z4@Dccc?T5Ugdc((A7mPCa^B*a@RA$AI;k&@X<-uTa7m!>?aUvoN3m!~ZXPR)6VEyo zHH~)$@=IJP=Rl}Z_?o%a<&?gmx;pfKo3vtcm_pv)h~gj(mcZbN zIN^vHun}cp2w5>7H6q*B1gF0NYrQQ5A{*ZKx(GNn_+u=nxDMlzpsL?!|1KbH$O|s? z$ri9mBVNeO1QH{rWGjrFB|r>#K0u*b;Lu9I&yVTh5S#HxHvfZVGi)ZX*fG>;M~|Y} z;e-qCa-zQf40{AwWmeUBtVi0^^eYr&w`(9xw2;4p7U`4)JtGc`1TJHCt^$5JAU zyGaJq$qqQiPr(z`K^g7ahxXMTbGGB!Wb#=C10nM~rU>m2As z28kSt^nxB&7FZ;6OsQtbqw{$KUS1UZr1Xjc=MVDS#g6}dOoWXH+@Q;8FD=ei^;RM> o>d~nl{qvHejNT05cd9XzJ#RRxA>&s){iB=J<#8_LbKfn$0Re%qT>t<8 delta 1957 zcmcJP-%C?r7{^u4*v{0mbB4_=r<)VeO`GS;ZD+qUsGOQRL%paVwsgyB5jfUOLCY>z zokaYabrIQB&|R`SLleBJ5dQ(AtGX$0H&G@?uWMr0?g;M-FYk}f^S;mX;r+T%^=6}r zdZ2pxa+&(sg--*g!3gK!2r|f}7^K4-c3gV!Bdz%D=g>I7KngVBbHIZhGUfvuW>Xrl zu1?T_1`H4Cs589N10iU`mLMt%-0uE>J&zenk`aSG9#JoY-Jv?nd79yrI27D=d~tI) zE7f4yqsKL$pUms~(dBY?@J@jjN#li^o&WD4dkqNXI7Mk%Bp+s~LX{X!I_ICMkA1Hz bvJsZYYDGv{THY%+PuoxE@+tWrv%C7g>M@}C diff --git a/api/ffsim.html b/api/ffsim.html index 0eb19de6f..44c53aeac 100644 --- a/api/ffsim.html +++ b/api/ffsim.html @@ -318,9 +318,9 @@
FermionOperator({
-    (cre_a(0), des_a(3)): 0.5,
     (cre_a(3), des_a(0)): -0.25,
-    (cre_b(1), des_b(5), cre_a(4)): 1+1j
+    (cre_b(1), des_b(5), cre_a(4)): 1+1j,
+    (cre_a(0), des_a(3)): 0.5
 })
 
@@ -334,9 +334,9 @@
FermionOperator({
+    (cre_a(0), des_a(3)): 1,
     (cre_a(3), des_a(0)): -0.5,
-    (cre_b(1), des_b(5), cre_a(4)): 2+2j,
-    (cre_a(0), des_a(3)): 1
+    (cre_b(1), des_b(5), cre_a(4)): 2+2j
 })
 
@@ -356,11 +356,11 @@
FermionOperator({
-    (cre_a(0), des_a(3)): 0.5,
+    (des_a(3), des_b(3)): -0.25,
+    (cre_b(2)): 0+1j,
     (cre_a(3), des_a(0)): -0.25,
     (cre_b(1), des_b(5), cre_a(4)): 1+1j,
-    (des_a(3), des_b(3)): -0.25,
-    (cre_b(2)): 0+1j
+    (cre_a(0), des_a(3)): 0.5
 })
 
@@ -375,11 +375,11 @@
FermionOperator({
     (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,
-    (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,
-    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,
-    (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,
+    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,
     (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,
-    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j
+    (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,
+    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,
+    (cre_a(3), des_a(0), cre_b(2)): 0-0.25j
 })
 
diff --git a/searchindex.js b/searchindex.js index 846ab17eb..a2004625f 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/ffsim", "api/ffsim.contract", "api/ffsim.linalg", "api/ffsim.random", "api/ffsim.testing", "index", "tutorials/01-introduction", "tutorials/02-orbital-rotation", "tutorials/03-double-factorized", "tutorials/04-lucj", "tutorials/05-entanglement-forging", "tutorials/06-fermion-operator"], "filenames": ["api/ffsim.rst", "api/ffsim.contract.rst", "api/ffsim.linalg.rst", "api/ffsim.random.rst", "api/ffsim.testing.rst", "index.rst", "tutorials/01-introduction.ipynb", "tutorials/02-orbital-rotation.ipynb", "tutorials/03-double-factorized.ipynb", "tutorials/04-lucj.ipynb", "tutorials/05-entanglement-forging.ipynb", "tutorials/06-fermion-operator.ipynb"], "titles": ["ffsim", "ffsim.contract", "ffsim.linalg", "ffsim.random", "ffsim.testing", "Welcome to ffsim\u2019s documentation!", "Introduction to ffsim", "Orbital rotations and quadratic Hamiltonians", "Diagonal Coulomb operators and double-factorized Trotter simulation", "The local unitary cluster Jastrow (LUCJ) ansatz", "Entanglement forging", "The FermionOperator class"], "terms": {"i": [0, 1, 2, 3, 5, 6, 7, 8, 9, 11], "softwar": [0, 5, 6], "librari": [0, 5, 6], "fast": 0, "simul": [0, 5, 6, 7, 9, 10], "fermion": [0, 5, 6, 7, 9, 11], "quantum": [0, 5, 6, 8, 9], "circuit": [0, 5, 6], "class": [0, 3, 5, 6, 9], "doublefactorizedhamiltonian": [0, 5, 8], "one_body_tensor": [0, 7, 8], "diag_coulomb_mat": [0, 8], "orbital_rot": [0, 1, 6, 7, 8], "constant": [0, 8, 9], "0": [0, 7, 8, 9, 10, 11], "z_represent": [0, 1], "fals": [0, 1, 2, 9, 10, 11], "sourc": [0, 1, 2, 3, 4], "base": [0, 2, 9, 10], "object": [0, 2, 9, 11], "A": [0, 1, 2, 3, 4, 7, 8, 9, 11], "hamiltonian": [0, 5, 9, 10], "doubl": [0, 2, 5, 9], "factor": [0, 2, 5, 9], "form": [0, 1, 2, 7, 8, 9, 11], "low": [0, 2, 6], "rank": [0, 2, 3], "decomposit": [0, 2], "The": [0, 1, 2, 3, 4, 5, 6, 7, 8], "molecular": [0, 9, 10], "h": [0, 8, 9, 10], "sum_": [0, 1, 2, 7, 8, 9], "pq": [0, 2, 8], "sigma": [0, 1, 7, 8, 9], "kappa_": 0, "dagger_": [0, 7, 8], "p": [0, 2, 8, 9], "a_": [0, 7, 8, 11], "q": [0, 8], "frac12": [0, 8, 9], "sum_t": 0, "ij": [0, 1, 2, 7, 8, 9], "tau": [0, 1, 8, 9], "z": [0, 1, 2, 5, 6, 11], "t": [0, 2, 7, 8], "_": [0, 2, 7, 8, 9], "n": [0, 2, 6, 7, 8, 9], "j": [0, 1, 7, 8, 9, 11], "text": [0, 8], "where": [0, 1, 2, 7, 8, 9], "u": [0, 1, 2], "pi": [0, 10], "qi": 0, "here": [0, 2, 6, 7, 8, 9], "each": [0, 2, 6, 8, 9, 11], "unitari": [0, 1, 2, 3, 5, 7, 8], "matrix": [0, 1, 2, 3, 6, 7, 8, 9, 11], "real": [0, 1, 2, 3, 7, 8, 9, 10], "symmetr": [0, 1, 2, 3, 8, 9], "represent": [0, 1, 2, 6, 11], "an": [0, 1, 2, 3, 6, 7, 8, 9, 11], "altern": [0, 8], "sometim": 0, "yield": [0, 2, 8, 9], "simpler": 0, "under": 0, "jordan": 0, "wigner": 0, "transform": [0, 1, 6, 7], "number": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "oper": [0, 1, 2, 5, 7, 9, 10, 11], "take": [0, 6, 9], "frac": 0, "1": [0, 2, 3, 6, 7, 8, 9, 10, 11], "2": [0, 1, 2, 3, 6, 7, 8, 9, 10, 11], "pauli": 0, "rotat": [0, 1, 2, 5, 6, 8, 9], "basi": [0, 7, 8, 9, 10], "obtain": [0, 7, 8, 9], "rewrit": 0, "two": [0, 2, 3, 8, 9, 10], "bodi": [0, 1, 2, 3, 8, 9, 10], "part": [0, 2], "term": [0, 1, 2, 8, 9, 11], "updat": [0, 8], "one": [0, 1, 2, 6, 8, 9, 10], "appropri": 0, "kappa": 0, "frac18": 0, "asterisk": 0, "denot": [0, 1, 7], "summat": 0, "over": 0, "indic": [0, 2, 9, 11], "neq": [0, 1], "tensor": [0, 1, 2, 3, 8, 9, 10], "type": [0, 1, 2, 3, 4], "np": [0, 3, 4, 7, 8, 9, 10], "ndarrai": [0, 1, 2, 3, 8], "diagon": [0, 1, 2, 5, 7, 9], "coulomb": [0, 1, 2, 5, 9], "matric": [0, 1, 2, 7, 8, 9], "orbit": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11], "float": [0, 2, 3, 8], "whether": [0, 1, 2, 11], "rather": [0, 6], "than": [0, 5, 6, 9], "bool": [0, 1, 2], "static": 0, "from_molecular_hamiltonian": [0, 8], "tol": [0, 2], "1e": [0, 2], "08": [0, 2], "max_vec": [0, 2], "none": [0, 1, 2, 3, 4], "optim": [0, 2, 9, 10], "method": [0, 2, 9, 10], "l": [0, 2, 8, 9], "bfg": [0, 2, 9], "b": [0, 2, 7, 9], "option": [0, 1, 2, 3, 9, 10], "diag_coulomb_mask": [0, 2], "choleski": [0, 2], "true": [0, 2, 6, 11], "act": [0, 11], "h_": [0, 2, 8], "pqr": [0, 2, 8], "r": [0, 2, 8], "": [0, 2, 6, 8, 9, 10, 11], "decompos": [0, 2, 8], "ar": [0, 1, 2, 3, 6, 7, 8, 9, 11], "output": [0, 8, 9], "guarante": 0, "so": [0, 2, 7, 8, 9, 11], "depend": [0, 2, 6], "allow": [0, 2, 9], "error": [0, 2], "threshold": [0, 2], "larger": [0, 2, 11], "lead": 0, "smaller": [0, 2, 8, 11], "furthermor": [0, 2], "max_rank": 0, "paramet": [0, 1, 2, 3, 4, 9, 10], "specifi": [0, 2, 9], "upper": [0, 2, 9], "bound": [0, 2], "default": [0, 2, 3], "behavior": [0, 2, 3], "thi": [0, 2, 5, 6, 7, 8, 9, 10], "routin": [0, 2, 6, 11], "perform": [0, 2, 7, 8], "straightforward": [0, 2], "exact": [0, 2, 6, 8], "nest": [0, 2], "eigenvalu": [0, 2, 7], "addition": [0, 2], "can": [0, 2, 5, 6, 7, 8, 9, 11], "choos": [0, 2, 6, 9], "coeffici": [0, 1, 2, 7, 9, 11], "store": [0, 2, 8, 9], "achiev": [0, 2, 8], "compress": [0, 2], "enabl": [0, 2], "set": [0, 2, 6, 7, 8, 9], "attempt": [0, 2], "minim": [0, 2, 9, 10], "least": [0, 2], "squar": [0, 2, 9], "function": [0, 1, 2, 6, 7, 8, 9, 10, 11], "quantifi": [0, 2], "It": [0, 2, 6, 8, 11], "us": [0, 1, 2, 3, 5, 6, 7, 8, 9, 11], "scipi": [0, 2, 6, 7, 8, 9, 10, 11], "pass": [0, 2, 7, 11], "both": [0, 2], "its": [0, 2, 7, 8, 11], "gradient": [0, 2], "return": [0, 1, 2, 3, 4, 8, 9, 10, 11], "constrain": [0, 2], "have": [0, 2, 6, 7, 9, 11], "onli": [0, 2, 6, 7, 9], "certain": [0, 2], "element": [0, 2], "nonzero": [0, 2, 9], "which": [0, 2, 3, 6, 7, 8, 9, 11], "time": [0, 2, 6, 8], "boolean": [0, 2], "valu": [0, 1, 2, 3, 8, 9], "triangular": [0, 2], "becaus": [0, 2, 6, 8, 9, 11], "note": [0, 9, 11], "current": 0, "support": [0, 11], "two_body_tensor": [0, 2, 8], "toler": [0, 2, 9], "defin": [0, 2, 9, 10], "maximum": [0, 2, 3, 10], "absolut": [0, 2], "differ": [0, 1, 2, 9], "between": [0, 1, 2, 9], "origin": [0, 2, 8], "correspond": [0, 2, 7, 8], "reconstruct": [0, 2], "int": [0, 1, 2, 3, 4, 8, 10], "limit": [0, 2, 9], "keep": [0, 2], "argument": [0, 2, 7], "overrid": [0, 2], "str": [0, 2], "see": [0, 2], "document": [0, 2], "possibl": [0, 2], "callback": [0, 2], "usag": [0, 2, 11], "dict": [0, 2, 9, 10], "mask": [0, 2], "modifi": [0, 2], "If": [0, 1, 2, 3, 11], "full": [0, 2, 6], "instead": [0, 2], "much": [0, 2, 5, 6], "more": [0, 2, 6, 9], "expens": [0, 2], "ignor": [0, 2, 8], "refer": [0, 2, 3, 9], "arxiv": [0, 2, 3], "1808": [0, 2], "02625": [0, 2], "2104": [0, 2], "08957": [0, 2], "properti": [0, 7], "norb": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11], "spatial": [0, 1, 4, 6, 8, 9, 11], "to_number_represent": 0, "to_z_represent": 0, "fermionact": [0, 5], "action": [0, 1, 7, 11], "spin": [0, 1, 5, 6, 7, 9, 10, 11], "orb": [0, 11], "namedtupl": 0, "alia": 0, "field": 0, "fermionoper": [0, 5], "coeff": [0, 1], "repres": [0, 6, 9, 11], "linear": [0, 1, 2, 7, 11], "combin": [0, 1, 7, 11], "product": [0, 8, 11], "creation": [0, 7, 11], "annihil": [0, 11], "explan": 0, "how": [0, 6, 7, 8, 9, 10, 11], "exampl": [0, 6, 7, 9, 11], "import": [0, 6, 7, 8, 9, 10, 11], "op1": [0, 11], "cre_a": [0, 5, 11], "des_a": [0, 5, 11], "3": [0, 6, 7, 8, 9, 10, 11], "5": [0, 8, 9, 10, 11], "25": [0, 11], "cre_b": [0, 5, 11], "des_b": [0, 5, 11], "4": [0, 7, 8, 9, 10, 11], "1j": [0, 7, 8, 11], "2j": [0, 11], "op2": [0, 11], "25j": [0, 11], "0625": [0, 11], "125": [0, 11], "5j": [0, 11], "tupl": [0, 1, 2, 4, 8, 11], "complex": [0, 1, 2, 3], "conserves_particle_numb": [0, 11], "conserv": [0, 5, 6, 11], "particl": [0, 4, 5, 6, 7, 11], "otherwis": 0, "conserves_spin_z": [0, 11], "compon": [0, 5, 6, 11], "many_body_ord": 0, "mani": [0, 5], "order": [0, 6, 8, 9, 11], "length": [0, 6, 8, 9], "longest": 0, "contain": [0, 2, 9, 11], "normal_ord": [0, 11], "normal": [0, 11], "equival": 0, "ha": [0, 1, 2, 6, 7, 8, 9, 10], "been": [0, 10], "reorder": 0, "canon": 0, "In": [0, 7, 8, 9, 10, 11], "compris": [0, 11], "appear": [0, 11], "from": [0, 3, 6, 7, 9, 10, 11], "left": [0, 7, 11], "right": [0, 7, 11], "descend": [0, 11], "lexicograph": [0, 11], "That": [0, 7, 11], "all": [0, 9, 11], "befor": [0, 9, 11], "within": [0, 2, 11], "beta": [0, 1, 4, 6, 9, 11], "alpha": [0, 1, 4, 6, 9, 11], "hopgateansatzoper": [0, 5, 10], "interaction_pair": [0, 10], "theta": [0, 10], "hop": 0, "gate": [0, 9], "ansatz": [0, 5, 10], "moleculardata": [0, 5, 8, 9, 10], "nelec": [0, 1, 4, 6, 7, 8, 9, 10, 11], "core_energi": 0, "dipole_integr": 0, "orbital_symmetri": 0, "data": [0, 3, 8, 9, 10, 11], "electron": [0, 1, 3, 4, 6, 8], "core": [0, 2], "energi": [0, 7, 8, 9, 10], "dipol": 0, "integr": 0, "symmetri": [0, 5, 6, 7, 8, 9, 10], "from_hartree_fock": [0, 8, 9, 10], "hartree_fock": [0, 8, 9, 10], "active_spac": [0, 9, 10], "initi": [0, 3, 4, 8, 9, 10], "hartre": [0, 8, 9], "fock": [0, 8, 9], "calcul": [0, 6, 8, 9], "scf": [0, 8, 9, 10], "iter": 0, "list": [0, 1, 2, 4, 9, 10], "activ": [0, 9, 10], "space": [0, 9, 10], "molecularhamiltonian": [0, 5, 8], "call": [0, 6, 7, 8, 11], "supportsapplyunitari": [0, 5], "arg": 0, "kwarg": 0, "protocol": 0, "appli": [0, 1, 2, 6, 7, 8, 9], "vector": [0, 1, 2, 3, 6, 7, 9, 10, 11], "supportsapproximateequ": [0, 5], "compar": [0, 8], "approxim": [0, 2, 8], "supportsfermionoper": [0, 5], "convert": [0, 1, 6, 7, 8, 11], "supportslinearoper": [0, 5], "linearoper": [0, 1, 7, 8, 11], "supportstrac": [0, 5], "whose": [0, 2, 6], "trace": [0, 5, 8], "comput": [0, 2, 7, 9, 10], "ucjoper": [0, 5, 9], "diag_coulomb_mats_alpha_alpha": 0, "diag_coulomb_mats_alpha_beta": 0, "final_orbital_rot": 0, "cluster": [0, 5], "jastrow": [0, 5], "ucj": 0, "prod_": [0, 9], "k": [0, 2, 7, 8, 9, 11], "mathcal": [0, 1, 7, 8, 9], "w_k": [0, 9], "e": [0, 8, 9, 10, 11], "_k": [0, 8, 9], "dagger": [0, 1, 2, 7, 8, 9, 11], "mathbf": [0, 7, 8, 9], "n_": [0, 1, 6, 7, 8, 9], "commut": [0, 8, 9], "total": [0, 8, 9], "we": [0, 7, 8, 9, 10, 11], "enforc": [0, 9], "As": [0, 6, 7, 8, 9], "result": [0, 1, 2, 3, 7, 8, 9, 10], "describ": [0, 1, 6, 7, 8, 9, 11], "involv": [0, 9], "same": [0, 6, 9], "To": [0, 6, 7, 8, 9], "variat": [0, 9], "final": [0, 8, 9], "includ": [0, 2, 5, 6, 7, 8], "end": [0, 7, 9], "from_paramet": [0, 9], "param": 0, "n_rep": [0, 9, 10], "alpha_alpha_indic": [0, 9], "alpha_beta_indic": [0, 9], "with_final_orbital_rot": 0, "from_t_amplitud": [0, 9], "t2_amplitud": [0, 2], "t1_amplitud": 0, "t2": [0, 2, 3, 9], "t1": [0, 9], "amplitud": [0, 2, 3, 9], "repetit": [0, 9], "to_paramet": [0, 9], "to_t_amplitud": 0, "nocc": [0, 3], "possibli": 0, "apply_diag_coulomb_evolut": [0, 5, 8], "vec": [0, 1, 2, 6, 7, 8, 11], "mat": [0, 1, 2], "mat_alpha_beta": [0, 1], "occupations_a": [0, 1], "occupations_b": [0, 1], "strings_a": [0, 1], "strings_b": [0, 1], "orbital_rotation_index_a": 0, "orbital_rotation_index_b": 0, "copi": [0, 11], "evolut": [0, 8], "exp": [0, 7], "z_": [0, 1], "also": [0, 1, 7, 11], "given": [0, 1, 2, 7, 8], "place": [0, 1, 9, 11], "sum": [0, 1, 8, 10], "state": [0, 1, 3, 7, 8, 9, 10], "interact": [0, 1, 6], "occupi": [0, 1, 3, 4, 8], "string": [0, 1, 6, 11], "index": [0, 1, 6, 9, 11], "alwai": [0, 2, 7], "newli": 0, "alloc": 0, "untouch": 0, "mai": [0, 2, 9], "still": [0, 9], "overwritten": 0, "evolv": [0, 8], "apply_fsim_g": [0, 5], "phi": 0, "target_orb": 0, "fsim": 0, "consist": 0, "tunnel": 0, "follow": [0, 6, 7, 8, 9, 11], "neg": 0, "sign": 0, "convent": 0, "angl": [0, 10], "nn": 0, "dagger_i": [0, 1], "a_i": 0, "dagger_j": 0, "a_j": [0, 1], "when": [0, 8, 9, 11], "neighbor": 0, "qubit": [0, 9], "begin": [0, 7, 9], "pmatrix": 0, "co": [0, 10], "sin": [0, 10], "apply_givens_rot": [0, 5], "g": [0, 9], "apply_hop_g": [0, 5], "apply_num_interact": [0, 5], "apply_num_num_interact": [0, 5], "apply_num_op_prod_interact": [0, 5], "prod": 0, "sequenc": 0, "pair": [0, 4], "integ": 0, "give": [0, 7], "first": [0, 2, 7, 8, 9, 10], "second": [0, 2, 8, 10], "apply_num_op_sum_evolut": [0, 5, 7, 8], "lambda_i": [0, 1, 7], "rais": 0, "valueerror": 0, "must": [0, 2, 11], "dimension": [0, 2, 6], "apply_orbital_rot": [0, 5, 6, 7], "allow_row_permut": 0, "allow_col_permut": 0, "map": [0, 7, 11], "mapsto": [0, 7], "u_": 0, "ji": [0, 7], "log": 0, "permut": [0, 2], "row": [0, 6], "column": [0, 2, 6, 7], "wa": 0, "well": 0, "actual": [0, 7, 9], "effect": [0, 9], "apply_tunneling_interact": [0, 5], "apply_unitari": [0, 5, 9], "obj": 0, "ani": [0, 7, 9], "approx_eq": [0, 5], "other": [0, 9], "rtol": [0, 2], "05": [0, 2], "atol": [0, 2], "equal": 0, "isclos": 0, "interpret": 0, "rel": [0, 2], "numer": [0, 2, 11], "up": [0, 7], "cre": [0, 5], "creat": [0, 6, 7, 8, 9, 11], "de": [0, 5], "destroi": [0, 11], "dim": [0, 3, 5, 6, 11], "get": [0, 7, 8, 9, 10], "dimens": [0, 3, 6], "fci": [0, 1, 6, 9, 10], "dim_a": [0, 6], "dim_b": [0, 6], "expectation_one_body_pow": [0, 5], "one_rdm": 0, "power": 0, "expect": [0, 7], "w": [0, 7, 8], "slater": [0, 6, 7, 8], "determin": [0, 2, 6, 7, 8], "o": [0, 10], "m_": [0, 1, 2], "a_p": 0, "a_q": 0, "m": [0, 1, 2, 7], "let": [0, 8, 11], "lvert": [0, 9], "psi": [0, 9], "rangl": [0, 9], "Then": 0, "quantiti": 0, "langl": 0, "rvert": 0, "reduc": [0, 2], "densiti": 0, "expectation_one_body_product": [0, 5], "o_1": 0, "o_2": 0, "dot": 0, "o_k": 0, "fermion_oper": [0, 5], "hartree_fock_st": [0, 5, 8, 9], "statevector": [0, 6, 7], "indices_to_str": [0, 5], "bitstr": 0, "rang": [0, 6, 7, 8, 9], "011001": 0, "011010": 0, "011100": 0, "101001": 0, "101010": 0, "101100": 0, "110001": 0, "110010": 0, "110100": 0, "linear_oper": [0, 5, 8, 9, 10, 11], "multireference_st": [0, 5, 10], "ansatz_oper": 0, "reference_occup": [0, 10], "root": 0, "multirefer": 0, "occup": [0, 6, 7, 8], "desir": 0, "eigenvector": [0, 7], "lowest": [0, 7, 8], "one_hot": [0, 5], "shape": [0, 2, 3, 6, 9], "dtype": [0, 3, 9], "arrai": [0, 2, 6, 11], "zero": [0, 10], "except": 0, "hot": 0, "simulate_qdrift_double_factor": [0, 5], "n_step": [0, 8], "probabl": 0, "norm": 0, "n_sampl": 0, "seed": [0, 3, 4, 6, 7], "via": [0, 8], "qdrift": 0, "trotter": [0, 5], "step": [0, 7, 8], "sampl": [0, 3, 4], "els": [0, 3], "explicit": 0, "proport": [0, 7], "spectral": 0, "uniform": [0, 3], "requir": [0, 9], "whenev": 0, "complet": 0, "character": 0, "trajectori": 0, "pseudorandom": [0, 3, 4], "gener": [0, 1, 3, 4, 5, 6, 7, 8, 9], "should": [0, 3, 4, 7, 8], "valid": [0, 3, 4], "input": [0, 1, 3, 4, 9], "random": [0, 4, 5, 6, 7, 11], "default_rng": [0, 3, 4], "numpi": [0, 2, 6, 7, 8, 9, 10], "just": [0, 8, 9], "simulate_trotter_double_factor": [0, 5, 8], "suzuki": 0, "formula": 0, "slater_determin": [0, 5, 6, 7], "occupied_orbit": [0, 6, 7], "configur": [0, 6], "word": [0, 9], "slater_determinant_one_rdm": [0, 5], "similarli": [0, 8], "construct": [1, 8, 9, 10, 11], "contract_diag_coulomb": [1, 5], "contract_num_op_sum": [1, 5], "contract_one_bodi": [1, 5], "linkstr_index_a": 1, "linkstr_index_b": 1, "lookup": 1, "tabl": [1, 11], "pyscf": [1, 6, 8, 9, 10], "cistr": 1, "gen_linkstr_index": 1, "implement": [1, 6, 7, 9], "diag_coulomb_linop": [1, 5], "num_op_sum_linop": [1, 5], "one_body_linop": [1, 5, 7], "algebra": [2, 11], "util": [2, 3, 4], "apply_matrix_to_slic": [2, 5], "target": 2, "slice": 2, "out": [2, 8], "double_factor": [2, 5], "ell": 2, "pk": 2, "qk": 2, "respect": 2, "too": 2, "small": [2, 9], "exce": [2, 9], "collect": 2, "double_factorized_t2": [2, 5], "t_": 2, "ijab": 2, "ap": 2, "ip": 2, "bq": 2, "jq": 2, "expm_multiply_taylor": [2, 5], "12": [2, 11], "expm": 2, "taylor": 2, "seri": 2, "expans": 2, "givens_decomposit": [2, 5], "is_antihermitian": [2, 5], "anti": [2, 3], "hermitian": [2, 3, 7], "is_hermitian": [2, 5], "is_orthogon": [2, 5], "orthogon": [2, 3], "union": 2, "bool_": 2, "is_real_symmetr": [2, 5], "is_special_orthogon": [2, 5], "special": [2, 3, 5, 6], "is_unitari": [2, 5], "lup": [2, 5], "pivot": 2, "lu": 2, "rtype": 2, "lower": 2, "unit": 2, "modified_choleski": [2, 5], "v_i": 2, "posit": [2, 10], "definit": 2, "No": 2, "check": [2, 7, 8], "verifi": 2, "1711": 2, "02242": 2, "assembl": 2, "reduced_matrix": [2, 5], "subspac": [2, 11], "span": 2, "some": [2, 8, 11], "v_j": 2, "random_antihermitian": [3, 5], "width": 3, "height": 3, "dype": 3, "random_hermitian": [3, 5, 7], "random_orthogon": [3, 5], "distribut": 3, "haar": 3, "measur": 3, "instanc": [3, 7, 8], "math": [3, 10], "ph": 3, "0609050": 3, "random_real_symmetric_matrix": [3, 5], "random_special_orthogon": [3, 5], "random_statevector": [3, 5, 11], "random_t2_amplitud": [3, 5], "random_two_body_tensor_r": [3, 5], "random_unitari": [3, 5, 6, 7], "random_nelec": [4, 5], "n_alpha": [4, 6, 7, 10], "n_beta": [4, 6, 7, 10], "random_occupied_orbit": [4, 5], "occ_a": 4, "occ_b": 4, "categori": 5, "chemistri": 5, "By": [5, 6], "exploit": 5, "algorithm": 5, "faster": 5, "introduct": 5, "quadrat": [5, 8], "local": 5, "lucj": 5, "entangl": 5, "forg": 5, "contract": [5, 7], "linalg": [5, 7, 8, 11], "test": [5, 7, 8], "advantag": 6, "effici": [6, 11], "level": [6, 8], "doe": [6, 11], "primari": 6, "wai": [6, 7, 9], "directli": [6, 8], "code": [6, 8, 9, 11], "show": [6, 7, 8, 9, 10, 11], "6": [6, 7, 8, 10, 11], "1234": [6, 7], "rotated_vec": [6, 7], "plain": 6, "Its": 6, "fix": 6, "For": [6, 7, 9, 11], "system": [6, 7], "conveni": 6, "comb": 6, "assert": 6, "standard": 6, "often": [6, 9], "simpli": [6, 7], "reshap": 6, "reshaped_vec": 6, "choic": 6, "modul": 6, "tutori": [7, 8, 9, 10], "ffsim": [7, 8, 9, 10, 11], "fundament": 7, "mode": 7, "sum_j": 7, "new": [7, 11], "th": 7, "satisfi": [7, 11], "anticommut": 7, "relat": [7, 9], "thei": [7, 9, 11], "align": [7, 9], "_1": 7, "_2": 7, "section": 7, "ll": [7, 8, 9], "demonstr": [7, 8, 9], "task": 7, "consid": [7, 9], "rewritten": 7, "introduc": [7, 9], "eigendecomposit": 7, "sum_k": [7, 8], "lambda_k": 7, "ik": 7, "jk": 7, "our": [7, 8, 9], "ground": [7, 9], "pick": 7, "phase": 7, "spars": [7, 8, 11], "eig": [7, 11], "eigsh": 7, "la": 7, "fact": 7, "you": [7, 9], "illustr": 7, "purpos": 7, "explicitli": 7, "eigh": [7, 8], "evolved_vec": 7, "conj": 7, "undo": 7, "expected_phas": 7, "assert_allclos": 7, "mention": [7, 8], "abov": [7, 8, 11], "below": [7, 8, 9], "better": [7, 8], "evolved_vec_alt": 7, "daunt": 8, "scale": 8, "cell": [8, 9], "hydrogen": 8, "molecul": [8, 9, 10], "stretch": [8, 9], "bond": [8, 9, 10], "build": [8, 9, 10], "h2": 8, "mol": [8, 9, 10], "gto": [8, 9, 10], "mole": [8, 9, 10], "atom": [8, 9, 10], "8": [8, 9, 10, 11], "sto": [8, 9, 10], "6g": [8, 9, 10], "d2h": [8, 9], "rhf": [8, 9, 10], "kernel": [8, 9, 10], "mol_data": [8, 9, 10], "mol_hamiltonian": [8, 9, 10], "df_hamiltonian": 8, "converg": [8, 9, 10], "837796382593709": 8, "dataclass": [8, 9], "print": [8, 9, 10, 11], "inform": [8, 11], "One": 8, "27478830e": 8, "01": [8, 9, 10], "52909490e": 8, "17": 8, "57029092e": 8, "77238770e": 8, "23173938e": 8, "58782168e": 8, "33545754e": 8, "49859013e": 8, "48240570e": 8, "83067333e": 8, "01841799e": 8, "53132024e": 8, "21318608e": 8, "00": [8, 10], "27383424e": 8, "16": 8, "82879498e": 8, "07792507e": 8, "14653029e": 8, "27521846e": 8, "62": 8, "39236953e": 8, "32": 8, "52090881e": 8, "03": [8, 9, 10], "00000000e": 8, "7": [8, 9, 11], "07106781e": 8, "27830444e": 8, "15": 8, "rest": 8, "although": 8, "alreadi": 8, "built": 8, "manual": 8, "asymmetr": 8, "basic": 8, "h_k": 8, "divid": 8, "singl": 8, "exponenti": 8, "individu": [8, 11], "do": [8, 11], "approx": 8, "prod_k": 8, "higher": 8, "deriv": 8, "write": 8, "recal": 8, "addit": [8, 11], "think": 8, "compos": 8, "def": [8, 9, 10], "simulate_trotter_step_double_factor": 8, "one_body_energi": 8, "one_body_basis_chang": 8, "zip": [8, 10], "finish": 8, "handl": 8, "split": 8, "multipl": [8, 11], "wrote": 8, "step_tim": 8, "match": 8, "initial_st": 8, "\u03c8": [8, 9, 10], "hf_energi": 8, "vdot": [8, 9, 10], "f": [8, 9, 10], "8377963825937084": 8, "now": 8, "later": 8, "exact_st": 8, "expm_multipli": 8, "tracea": 8, "fidel": 8, "ab": 8, "9696296369955066": 8, "final_st": [8, 9], "9990275744083494": 8, "improv": 8, "increas": [8, 9], "10": 8, "9999906233109686": 8, "commonli": 8, "known": 8, "fourth": 8, "reproduc": 8, "9": [8, 9, 11], "fewer": 8, "9999999336740067": 8, "ethen": 9, "mcscf": [9, 10], "bond_dist": 9, "678": 9, "5626": 9, "c": 9, "9289": 9, "nelectron": 9, "ca": [9, 10], "casci": [9, 10], "nca": [9, 10], "neleca": [9, 10], "mo": [9, 10], "sort_mo": [9, 10], "energy_fci": [9, 10], "77": 9, "4456267643962": 9, "6290254326717": 9, "ci": [9, 10], "57322412553862": 9, "0000000": [9, 10], "phi_0": 9, "taken": 9, "express": 9, "previou": 9, "constructor": 9, "provid": 9, "truncat": 9, "ccsd": 9, "mp2": 9, "run": 9, "sinc": 9, "cc": 9, "frozen": 9, "nao_nr": 9, "reference_st": 9, "ansatz_st": [9, 10], "initiali": [9, 10], "49387212754473": 9, "e_corr": 9, "04824536314851498": 9, "46975600021668": 9, "facilit": 9, "convers": 9, "precis": 9, "somewhat": 9, "complic": 9, "short": 9, "entri": 9, "non": 9, "redund": 9, "associ": [9, 11], "evalu": [9, 10], "would": 9, "like": 9, "fun": [9, 10], "x": [9, 10], "x0": [9, 10], "maxfun": 9, "1000": 9, "len": [9, 10], "72": 9, "messag": [9, 10], "stop": 9, "NO": 9, "AND": 9, "success": [9, 10], "statu": [9, 10], "51587273457146": 9, "415e": 9, "958e": 9, "256e": 9, "907e": 9, "nit": 9, "jac": 9, "852e": 9, "597e": 9, "297e": 9, "880e": 9, "nfev": [9, 10], "1314": 9, "njev": 9, "18": 9, "hess_inv": 9, "lt": 9, "72x72": 9, "lbfgsinvhessproduct": 9, "float64": 9, "gt": 9, "either": 9, "connect": 9, "swap": 9, "network": 9, "make": 9, "challeng": 9, "noisi": 9, "pre": 9, "fault": 9, "processor": 9, "idea": 9, "impos": 9, "sparsiti": 9, "constraint": 9, "them": 9, "depth": 9, "topologi": 9, "triangl": 9, "need": 9, "lattic": 9, "parallel": 9, "line": 9, "rung": 9, "ladder": 9, "With": 9, "setup": 9, "while": 9, "share": 9, "ldot": 9, "without": 9, "Of": 9, "cours": 9, "less": 9, "notic": 9, "decreas": 9, "46": 9, "45803733775867": 9, "763e": 9, "442e": 9, "02": [9, 10], "733e": 9, "056e": 9, "13": 9, "310e": 9, "713e": 9, "04": 9, "236e": 9, "080e": 9, "1034": 9, "22": 9, "46x46": 9, "water": 10, "equilibrium": 10, "radius_1": 10, "958": 10, "radius_2": 10, "bond_angle_deg": 10, "104": 10, "478": 10, "h1_x": 10, "h2_x": 10, "180": 10, "h2_y": 10, "c2v": 10, "n_electron": 10, "mo_occ": 10, "75": 10, "6787887956297": 10, "7079508859773": 10, "14": 10, "3336207346502": 10, "reference_occupations_spati": 10, "68366174447618": 10, "cobyla": 10, "maxit": 10, "100": 10, "exceed": 10, "69434198356153": 10, "352e": 10, "664e": 10, "940e": 10, "104e": 10, "913e": 10, "maxcv": 10, "Such": 11, "programmat": 11, "dictionari": 11, "hash": 11, "three": 11, "piec": 11, "being": 11, "upon": 11, "intern": 11, "itself": 11, "recommend": 11, "helper": 11, "shown": 11, "repr": 11, "view": 11, "displai": 11, "39": 11, "0j": 11, "arithmet": 11, "multipli": 11, "scalar": 11, "go": 11, "op": 11, "op3": 11, "good": 11, "awar": 11, "especi": 11, "avoid": 11, "These": 11, "subtract": 11, "divis": 11, "12j": 11, "4j": 11, "6j": 11, "3j": 11, "preserv": 11, "far": 11, "criteria": 11, "op4": 11, "linop": 11, "onto": 11, "08907224": 11, "10710701j": 11, "most": 11, "lm": 11, "21984743e": 11, "18j": 11}, "objects": {"": [[0, 0, 0, "-", "ffsim"]], "ffsim": [[0, 1, 1, "", "DoubleFactorizedHamiltonian"], [0, 1, 1, "", "FermionAction"], [0, 1, 1, "", "FermionOperator"], [0, 1, 1, "", "HopGateAnsatzOperator"], [0, 1, 1, "", "MolecularData"], [0, 1, 1, "", "MolecularHamiltonian"], [0, 1, 1, "", "SupportsApplyUnitary"], [0, 1, 1, "", "SupportsApproximateEquality"], [0, 1, 1, "", "SupportsFermionOperator"], [0, 1, 1, "", "SupportsLinearOperator"], [0, 1, 1, "", "SupportsTrace"], [0, 1, 1, "", "UCJOperator"], [0, 5, 1, "", "apply_diag_coulomb_evolution"], [0, 5, 1, "", "apply_fsim_gate"], [0, 5, 1, "", "apply_givens_rotation"], [0, 5, 1, "", "apply_hop_gate"], [0, 5, 1, "", "apply_num_interaction"], [0, 5, 1, "", "apply_num_num_interaction"], [0, 5, 1, "", "apply_num_op_prod_interaction"], [0, 5, 1, "", "apply_num_op_sum_evolution"], [0, 5, 1, "", "apply_orbital_rotation"], [0, 5, 1, "", "apply_tunneling_interaction"], [0, 5, 1, "", "apply_unitary"], [0, 5, 1, "", "approx_eq"], [1, 0, 0, "-", "contract"], [0, 5, 1, "", "cre"], [0, 5, 1, "", "cre_a"], [0, 5, 1, "", "cre_b"], [0, 5, 1, "", "des"], [0, 5, 1, "", "des_a"], [0, 5, 1, "", "des_b"], [0, 5, 1, "", "dim"], [0, 5, 1, "", "dims"], [0, 5, 1, "", "expectation_one_body_power"], [0, 5, 1, "", "expectation_one_body_product"], [0, 5, 1, "", "fermion_operator"], [0, 5, 1, "", "hartree_fock_state"], [0, 5, 1, "", "indices_to_strings"], [2, 0, 0, "-", "linalg"], [0, 5, 1, "", "linear_operator"], [0, 5, 1, "", "multireference_state"], [0, 5, 1, "", "one_hot"], [3, 0, 0, "-", "random"], [0, 5, 1, "", "simulate_qdrift_double_factorized"], [0, 5, 1, "", "simulate_trotter_double_factorized"], [0, 5, 1, "", "slater_determinant"], [0, 5, 1, "", "slater_determinant_one_rdm"], [4, 0, 0, "-", "testing"], [0, 5, 1, "", "trace"]], "ffsim.DoubleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 2, 1, "", "diag_coulomb_mats"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_number_representation"], [0, 3, 1, "", "to_z_representation"], [0, 2, 1, "", "z_representation"]], "ffsim.FermionAction": [[0, 2, 1, "", "action"], [0, 2, 1, "", "orb"], [0, 2, 1, "", "spin"]], "ffsim.FermionOperator": [[0, 3, 1, "", "conserves_particle_number"], [0, 3, 1, "", "conserves_spin_z"], [0, 3, 1, "", "many_body_order"], [0, 3, 1, "", "normal_ordered"]], "ffsim.MolecularData": [[0, 2, 1, "", "core_energy"], [0, 2, 1, "", "dipole_integrals"], [0, 3, 1, "", "from_hartree_fock"], [0, 4, 1, "", "hamiltonian"], [0, 2, 1, "", "nelec"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_symmetries"], [0, 2, 1, "", "two_body_tensor"]], "ffsim.MolecularHamiltonian": [[0, 2, 1, "", "constant"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "two_body_tensor"]], "ffsim.UCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.contract": [[1, 5, 1, "", "contract_diag_coulomb"], [1, 5, 1, "", "contract_num_op_sum"], [1, 5, 1, "", "contract_one_body"], [1, 5, 1, "", "diag_coulomb_linop"], [1, 5, 1, "", "num_op_sum_linop"], [1, 5, 1, "", "one_body_linop"]], "ffsim.linalg": [[2, 5, 1, "", "apply_matrix_to_slices"], [2, 5, 1, "", "double_factorized"], [2, 5, 1, "", "double_factorized_t2"], [2, 5, 1, "", "expm_multiply_taylor"], [2, 5, 1, "", "givens_decomposition"], [2, 5, 1, "", "is_antihermitian"], [2, 5, 1, "", "is_hermitian"], [2, 5, 1, "", "is_orthogonal"], [2, 5, 1, "", "is_real_symmetric"], [2, 5, 1, "", "is_special_orthogonal"], [2, 5, 1, "", "is_unitary"], [2, 5, 1, "", "lup"], [2, 5, 1, "", "modified_cholesky"], [2, 5, 1, "", "reduced_matrix"]], "ffsim.random": [[3, 5, 1, "", "random_antihermitian"], [3, 5, 1, "", "random_hermitian"], [3, 5, 1, "", "random_orthogonal"], [3, 5, 1, "", "random_real_symmetric_matrix"], [3, 5, 1, "", "random_special_orthogonal"], [3, 5, 1, "", "random_statevector"], [3, 5, 1, "", "random_t2_amplitudes"], [3, 5, 1, "", "random_two_body_tensor_real"], [3, 5, 1, "", "random_unitary"]], "ffsim.testing": [[4, 5, 1, "", "random_nelec"], [4, 5, 1, "", "random_occupied_orbitals"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"]}, "titleterms": {"ffsim": [0, 1, 2, 3, 4, 5, 6], "contract": 1, "linalg": 2, "random": 3, "test": 4, "welcom": 5, "": 5, "document": 5, "tutori": 5, "api": 5, "refer": 5, "introduct": 6, "orbit": 7, "rotat": 7, "quadrat": 7, "hamiltonian": [7, 8], "time": 7, "evolut": 7, "diagon": 8, "coulomb": 8, "oper": 8, "doubl": 8, "factor": 8, "trotter": 8, "simul": 8, "represent": 8, "molecular": 8, "brief": 8, "background": 8, "suzuki": 8, "formula": 8, "implement": 8, "The": [9, 11], "local": 9, "unitari": 9, "cluster": 9, "jastrow": 9, "lucj": 9, "ansatz": 9, "ucj": 9, "entangl": 10, "forg": 10, "fermionoper": 11, "class": 11}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"ffsim": [[0, "module-ffsim"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "ffsim.linalg": [[2, "module-ffsim.linalg"]], "ffsim.random": [[3, "module-ffsim.random"]], "ffsim.testing": [[4, "module-ffsim.testing"]], "Welcome to ffsim\u2019s documentation!": [[5, "welcome-to-ffsim-s-documentation"]], "Tutorials": [[5, "tutorials"]], "API Reference": [[5, "api-reference"]], "Introduction to ffsim": [[6, "Introduction-to-ffsim"]], "Orbital rotations and quadratic Hamiltonians": [[7, "Orbital-rotations-and-quadratic-Hamiltonians"]], "Orbital rotations": [[7, "Orbital-rotations"]], "Time evolution by a quadratic Hamiltonian": [[7, "Time-evolution-by-a-quadratic-Hamiltonian"]], "Diagonal Coulomb operators and double-factorized Trotter simulation": [[8, "Diagonal-Coulomb-operators-and-double-factorized-Trotter-simulation"]], "Double-factorized representation of the molecular Hamiltonian": [[8, "Double-factorized-representation-of-the-molecular-Hamiltonian"]], "Trotter simulation of the double-factorized Hamiltonian": [[8, "Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "Brief background on Trotter-Suzuki formulas": [[8, "Brief-background-on-Trotter-Suzuki-formulas"]], "Implementing Trotter simulation of the double-factorized Hamiltonian": [[8, "Implementing-Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "The local unitary cluster Jastrow (LUCJ) ansatz": [[9, "The-local-unitary-cluster-Jastrow-(LUCJ)-ansatz"], [9, "id1"]], "The unitary cluster Jastrow (UCJ) ansatz": [[9, "The-unitary-cluster-Jastrow-(UCJ)-ansatz"]], "Entanglement forging": [[10, "Entanglement-forging"]], "The FermionOperator class": [[11, "The-FermionOperator-class"]]}, "indexentries": {"doublefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.DoubleFactorizedHamiltonian"]], "fermionaction (class in ffsim)": [[0, "ffsim.FermionAction"]], "fermionoperator (class in ffsim)": [[0, "ffsim.FermionOperator"]], "hopgateansatzoperator (class in ffsim)": [[0, "ffsim.HopGateAnsatzOperator"]], "moleculardata (class in ffsim)": [[0, "ffsim.MolecularData"]], "molecularhamiltonian (class in ffsim)": [[0, "ffsim.MolecularHamiltonian"]], "supportsapplyunitary (class in ffsim)": [[0, "ffsim.SupportsApplyUnitary"]], "supportsapproximateequality (class in ffsim)": [[0, "ffsim.SupportsApproximateEquality"]], "supportsfermionoperator (class in ffsim)": [[0, "ffsim.SupportsFermionOperator"]], "supportslinearoperator (class in ffsim)": [[0, "ffsim.SupportsLinearOperator"]], "supportstrace (class in ffsim)": [[0, "ffsim.SupportsTrace"]], "ucjoperator (class in ffsim)": [[0, "ffsim.UCJOperator"]], "action (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.action"]], "apply_diag_coulomb_evolution() (in module ffsim)": [[0, "ffsim.apply_diag_coulomb_evolution"]], "apply_fsim_gate() (in module ffsim)": [[0, "ffsim.apply_fsim_gate"]], "apply_givens_rotation() (in module ffsim)": [[0, "ffsim.apply_givens_rotation"]], "apply_hop_gate() (in module ffsim)": [[0, "ffsim.apply_hop_gate"]], "apply_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_interaction"]], "apply_num_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_num_interaction"]], "apply_num_op_prod_interaction() (in module ffsim)": [[0, "ffsim.apply_num_op_prod_interaction"]], "apply_num_op_sum_evolution() (in module ffsim)": [[0, "ffsim.apply_num_op_sum_evolution"]], "apply_orbital_rotation() (in module ffsim)": [[0, "ffsim.apply_orbital_rotation"]], "apply_tunneling_interaction() (in module ffsim)": [[0, "ffsim.apply_tunneling_interaction"]], "apply_unitary() (in module ffsim)": [[0, "ffsim.apply_unitary"]], "approx_eq() (in module ffsim)": [[0, "ffsim.approx_eq"]], "conserves_particle_number() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_particle_number"]], "conserves_spin_z() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_spin_z"]], "constant (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.constant"]], "constant (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.constant"]], "core_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.core_energy"]], "cre() (in module ffsim)": [[0, "ffsim.cre"]], "cre_a() (in module ffsim)": [[0, "ffsim.cre_a"]], "cre_b() (in module ffsim)": [[0, "ffsim.cre_b"]], "des() (in module ffsim)": [[0, "ffsim.des"]], "des_a() (in module ffsim)": [[0, "ffsim.des_a"]], "des_b() (in module ffsim)": [[0, "ffsim.des_b"]], "diag_coulomb_mats (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.diag_coulomb_mats"]], "diag_coulomb_mats_alpha_alpha (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_alpha"]], "diag_coulomb_mats_alpha_beta (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_beta"]], "dim() (in module ffsim)": [[0, "ffsim.dim"]], "dims() (in module ffsim)": [[0, "ffsim.dims"]], "dipole_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.dipole_integrals"]], "expectation_one_body_power() (in module ffsim)": [[0, "ffsim.expectation_one_body_power"]], "expectation_one_body_product() (in module ffsim)": [[0, "ffsim.expectation_one_body_product"]], "fermion_operator() (in module ffsim)": [[0, "ffsim.fermion_operator"]], "ffsim": [[0, "module-ffsim"]], "final_orbital_rotation (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.final_orbital_rotation"]], "from_hartree_fock() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_hartree_fock"]], "from_molecular_hamiltonian() (ffsim.doublefactorizedhamiltonian static method)": [[0, "ffsim.DoubleFactorizedHamiltonian.from_molecular_hamiltonian"]], "from_parameters() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_parameters"]], "from_t_amplitudes() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_t_amplitudes"]], "hamiltonian (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.hamiltonian"]], "hartree_fock_state() (in module ffsim)": [[0, "ffsim.hartree_fock_state"]], "indices_to_strings() (in module ffsim)": [[0, "ffsim.indices_to_strings"]], "linear_operator() (in module ffsim)": [[0, "ffsim.linear_operator"]], "many_body_order() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.many_body_order"]], "module": [[0, "module-ffsim"], [1, "module-ffsim.contract"], [2, "module-ffsim.linalg"], [3, "module-ffsim.random"], [4, "module-ffsim.testing"]], "multireference_state() (in module ffsim)": [[0, "ffsim.multireference_state"]], "n_reps (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.n_reps"]], "nelec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.nelec"]], "norb (ffsim.doublefactorizedhamiltonian property)": [[0, "ffsim.DoubleFactorizedHamiltonian.norb"]], "norb (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.norb"]], "norb (ffsim.molecularhamiltonian property)": [[0, "ffsim.MolecularHamiltonian.norb"]], "norb (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.norb"]], "normal_ordered() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.normal_ordered"]], "one_body_tensor (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.one_body_tensor"]], "one_body_tensor (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.one_body_tensor"]], "one_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.one_body_tensor"]], "one_hot() (in module ffsim)": [[0, "ffsim.one_hot"]], "orb (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.orb"]], "orbital_rotations (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.orbital_rotations"]], "orbital_rotations (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.orbital_rotations"]], "orbital_symmetries (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.orbital_symmetries"]], "simulate_qdrift_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_qdrift_double_factorized"]], "simulate_trotter_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_trotter_double_factorized"]], "slater_determinant() (in module ffsim)": [[0, "ffsim.slater_determinant"]], "slater_determinant_one_rdm() (in module ffsim)": [[0, "ffsim.slater_determinant_one_rdm"]], "spin (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.spin"]], "to_number_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_number_representation"]], "to_parameters() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_parameters"]], "to_t_amplitudes() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_t_amplitudes"]], "to_z_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_z_representation"]], "trace() (in module ffsim)": [[0, "ffsim.trace"]], "two_body_tensor (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.two_body_tensor"]], "two_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.two_body_tensor"]], "z_representation (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.z_representation"]], "contract_diag_coulomb() (in module ffsim.contract)": [[1, "ffsim.contract.contract_diag_coulomb"]], "contract_num_op_sum() (in module ffsim.contract)": [[1, "ffsim.contract.contract_num_op_sum"]], "contract_one_body() (in module ffsim.contract)": [[1, "ffsim.contract.contract_one_body"]], "diag_coulomb_linop() (in module ffsim.contract)": [[1, "ffsim.contract.diag_coulomb_linop"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "num_op_sum_linop() (in module ffsim.contract)": [[1, "ffsim.contract.num_op_sum_linop"]], "one_body_linop() (in module ffsim.contract)": [[1, "ffsim.contract.one_body_linop"]], "apply_matrix_to_slices() (in module ffsim.linalg)": [[2, "ffsim.linalg.apply_matrix_to_slices"]], "double_factorized() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized"]], "double_factorized_t2() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized_t2"]], "expm_multiply_taylor() (in module ffsim.linalg)": [[2, "ffsim.linalg.expm_multiply_taylor"]], "ffsim.linalg": [[2, "module-ffsim.linalg"]], "givens_decomposition() (in module ffsim.linalg)": [[2, "ffsim.linalg.givens_decomposition"]], "is_antihermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_antihermitian"]], "is_hermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_hermitian"]], "is_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_orthogonal"]], "is_real_symmetric() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_real_symmetric"]], "is_special_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_special_orthogonal"]], "is_unitary() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_unitary"]], "lup() (in module ffsim.linalg)": [[2, "ffsim.linalg.lup"]], "modified_cholesky() (in module ffsim.linalg)": [[2, "ffsim.linalg.modified_cholesky"]], "reduced_matrix() (in module ffsim.linalg)": [[2, "ffsim.linalg.reduced_matrix"]], "ffsim.random": [[3, "module-ffsim.random"]], "random_antihermitian() (in module ffsim.random)": [[3, "ffsim.random.random_antihermitian"]], "random_hermitian() (in module ffsim.random)": [[3, "ffsim.random.random_hermitian"]], "random_orthogonal() (in module ffsim.random)": [[3, "ffsim.random.random_orthogonal"]], "random_real_symmetric_matrix() (in module ffsim.random)": [[3, "ffsim.random.random_real_symmetric_matrix"]], "random_special_orthogonal() (in module ffsim.random)": [[3, "ffsim.random.random_special_orthogonal"]], "random_statevector() (in module ffsim.random)": [[3, "ffsim.random.random_statevector"]], "random_t2_amplitudes() (in module ffsim.random)": [[3, "ffsim.random.random_t2_amplitudes"]], "random_two_body_tensor_real() (in module ffsim.random)": [[3, "ffsim.random.random_two_body_tensor_real"]], "random_unitary() (in module ffsim.random)": [[3, "ffsim.random.random_unitary"]], "ffsim.testing": [[4, "module-ffsim.testing"]], "random_nelec() (in module ffsim.testing)": [[4, "ffsim.testing.random_nelec"]], "random_occupied_orbitals() (in module ffsim.testing)": [[4, "ffsim.testing.random_occupied_orbitals"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/ffsim", "api/ffsim.contract", "api/ffsim.linalg", "api/ffsim.random", "api/ffsim.testing", "index", "tutorials/01-introduction", "tutorials/02-orbital-rotation", "tutorials/03-double-factorized", "tutorials/04-lucj", "tutorials/05-entanglement-forging", "tutorials/06-fermion-operator"], "filenames": ["api/ffsim.rst", "api/ffsim.contract.rst", "api/ffsim.linalg.rst", "api/ffsim.random.rst", "api/ffsim.testing.rst", "index.rst", "tutorials/01-introduction.ipynb", "tutorials/02-orbital-rotation.ipynb", "tutorials/03-double-factorized.ipynb", "tutorials/04-lucj.ipynb", "tutorials/05-entanglement-forging.ipynb", "tutorials/06-fermion-operator.ipynb"], "titles": ["ffsim", "ffsim.contract", "ffsim.linalg", "ffsim.random", "ffsim.testing", "Welcome to ffsim\u2019s documentation!", "Introduction to ffsim", "Orbital rotations and quadratic Hamiltonians", "Diagonal Coulomb operators and double-factorized Trotter simulation", "The local unitary cluster Jastrow (LUCJ) ansatz", "Entanglement forging", "The FermionOperator class"], "terms": {"i": [0, 1, 2, 3, 5, 6, 7, 8, 9, 11], "softwar": [0, 5, 6], "librari": [0, 5, 6], "fast": 0, "simul": [0, 5, 6, 7, 9, 10], "fermion": [0, 5, 6, 7, 9, 11], "quantum": [0, 5, 6, 8, 9], "circuit": [0, 5, 6], "class": [0, 3, 5, 6, 9], "doublefactorizedhamiltonian": [0, 5, 8], "one_body_tensor": [0, 7, 8], "diag_coulomb_mat": [0, 8], "orbital_rot": [0, 1, 6, 7, 8], "constant": [0, 8, 9], "0": [0, 7, 8, 9, 10, 11], "z_represent": [0, 1], "fals": [0, 1, 2, 9, 10, 11], "sourc": [0, 1, 2, 3, 4], "base": [0, 2, 9, 10], "object": [0, 2, 9, 11], "A": [0, 1, 2, 3, 4, 7, 8, 9, 11], "hamiltonian": [0, 5, 9, 10], "doubl": [0, 2, 5, 9], "factor": [0, 2, 5, 9], "form": [0, 1, 2, 7, 8, 9, 11], "low": [0, 2, 6], "rank": [0, 2, 3], "decomposit": [0, 2], "The": [0, 1, 2, 3, 4, 5, 6, 7, 8], "molecular": [0, 9, 10], "h": [0, 8, 9, 10], "sum_": [0, 1, 2, 7, 8, 9], "pq": [0, 2, 8], "sigma": [0, 1, 7, 8, 9], "kappa_": 0, "dagger_": [0, 7, 8], "p": [0, 2, 8, 9], "a_": [0, 7, 8, 11], "q": [0, 8], "frac12": [0, 8, 9], "sum_t": 0, "ij": [0, 1, 2, 7, 8, 9], "tau": [0, 1, 8, 9], "z": [0, 1, 2, 5, 6, 11], "t": [0, 2, 7, 8], "_": [0, 2, 7, 8, 9], "n": [0, 2, 6, 7, 8, 9], "j": [0, 1, 7, 8, 9, 11], "text": [0, 8], "where": [0, 1, 2, 7, 8, 9], "u": [0, 1, 2], "pi": [0, 10], "qi": 0, "here": [0, 2, 6, 7, 8, 9], "each": [0, 2, 6, 8, 9, 11], "unitari": [0, 1, 2, 3, 5, 7, 8], "matrix": [0, 1, 2, 3, 6, 7, 8, 9, 11], "real": [0, 1, 2, 3, 7, 8, 9, 10], "symmetr": [0, 1, 2, 3, 8, 9], "represent": [0, 1, 2, 6, 11], "an": [0, 1, 2, 3, 6, 7, 8, 9, 11], "altern": [0, 8], "sometim": 0, "yield": [0, 2, 8, 9], "simpler": 0, "under": 0, "jordan": 0, "wigner": 0, "transform": [0, 1, 6, 7], "number": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "oper": [0, 1, 2, 5, 7, 9, 10, 11], "take": [0, 6, 9], "frac": 0, "1": [0, 2, 3, 6, 7, 8, 9, 10, 11], "2": [0, 1, 2, 3, 6, 7, 8, 9, 10, 11], "pauli": 0, "rotat": [0, 1, 2, 5, 6, 8, 9], "basi": [0, 7, 8, 9, 10], "obtain": [0, 7, 8, 9], "rewrit": 0, "two": [0, 2, 3, 8, 9, 10], "bodi": [0, 1, 2, 3, 8, 9, 10], "part": [0, 2], "term": [0, 1, 2, 8, 9, 11], "updat": [0, 8], "one": [0, 1, 2, 6, 8, 9, 10], "appropri": 0, "kappa": 0, "frac18": 0, "asterisk": 0, "denot": [0, 1, 7], "summat": 0, "over": 0, "indic": [0, 2, 9, 11], "neq": [0, 1], "tensor": [0, 1, 2, 3, 8, 9, 10], "type": [0, 1, 2, 3, 4], "np": [0, 3, 4, 7, 8, 9, 10], "ndarrai": [0, 1, 2, 3, 8], "diagon": [0, 1, 2, 5, 7, 9], "coulomb": [0, 1, 2, 5, 9], "matric": [0, 1, 2, 7, 8, 9], "orbit": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11], "float": [0, 2, 3, 8], "whether": [0, 1, 2, 11], "rather": [0, 6], "than": [0, 5, 6, 9], "bool": [0, 1, 2], "static": 0, "from_molecular_hamiltonian": [0, 8], "tol": [0, 2], "1e": [0, 2], "08": [0, 2], "max_vec": [0, 2], "none": [0, 1, 2, 3, 4], "optim": [0, 2, 9, 10], "method": [0, 2, 9, 10], "l": [0, 2, 8, 9], "bfg": [0, 2, 9], "b": [0, 2, 7, 9], "option": [0, 1, 2, 3, 9, 10], "diag_coulomb_mask": [0, 2], "choleski": [0, 2], "true": [0, 2, 6, 11], "act": [0, 11], "h_": [0, 2, 8], "pqr": [0, 2, 8], "r": [0, 2, 8], "": [0, 2, 6, 8, 9, 10, 11], "decompos": [0, 2, 8], "ar": [0, 1, 2, 3, 6, 7, 8, 9, 11], "output": [0, 8, 9], "guarante": 0, "so": [0, 2, 7, 8, 9, 11], "depend": [0, 2, 6], "allow": [0, 2, 9], "error": [0, 2], "threshold": [0, 2], "larger": [0, 2, 11], "lead": 0, "smaller": [0, 2, 8, 11], "furthermor": [0, 2], "max_rank": 0, "paramet": [0, 1, 2, 3, 4, 9, 10], "specifi": [0, 2, 9], "upper": [0, 2, 9], "bound": [0, 2], "default": [0, 2, 3], "behavior": [0, 2, 3], "thi": [0, 2, 5, 6, 7, 8, 9, 10], "routin": [0, 2, 6, 11], "perform": [0, 2, 7, 8], "straightforward": [0, 2], "exact": [0, 2, 6, 8], "nest": [0, 2], "eigenvalu": [0, 2, 7], "addition": [0, 2], "can": [0, 2, 5, 6, 7, 8, 9, 11], "choos": [0, 2, 6, 9], "coeffici": [0, 1, 2, 7, 9, 11], "store": [0, 2, 8, 9], "achiev": [0, 2, 8], "compress": [0, 2], "enabl": [0, 2], "set": [0, 2, 6, 7, 8, 9], "attempt": [0, 2], "minim": [0, 2, 9, 10], "least": [0, 2], "squar": [0, 2, 9], "function": [0, 1, 2, 6, 7, 8, 9, 10, 11], "quantifi": [0, 2], "It": [0, 2, 6, 8, 11], "us": [0, 1, 2, 3, 5, 6, 7, 8, 9, 11], "scipi": [0, 2, 6, 7, 8, 9, 10, 11], "pass": [0, 2, 7, 11], "both": [0, 2], "its": [0, 2, 7, 8, 11], "gradient": [0, 2], "return": [0, 1, 2, 3, 4, 8, 9, 10, 11], "constrain": [0, 2], "have": [0, 2, 6, 7, 9, 11], "onli": [0, 2, 6, 7, 9], "certain": [0, 2], "element": [0, 2], "nonzero": [0, 2, 9], "which": [0, 2, 3, 6, 7, 8, 9, 11], "time": [0, 2, 6, 8], "boolean": [0, 2], "valu": [0, 1, 2, 3, 8, 9], "triangular": [0, 2], "becaus": [0, 2, 6, 8, 9, 11], "note": [0, 9, 11], "current": 0, "support": [0, 11], "two_body_tensor": [0, 2, 8], "toler": [0, 2, 9], "defin": [0, 2, 9, 10], "maximum": [0, 2, 3, 10], "absolut": [0, 2], "differ": [0, 1, 2, 9], "between": [0, 1, 2, 9], "origin": [0, 2, 8], "correspond": [0, 2, 7, 8], "reconstruct": [0, 2], "int": [0, 1, 2, 3, 4, 8, 10], "limit": [0, 2, 9], "keep": [0, 2], "argument": [0, 2, 7], "overrid": [0, 2], "str": [0, 2], "see": [0, 2], "document": [0, 2], "possibl": [0, 2], "callback": [0, 2], "usag": [0, 2, 11], "dict": [0, 2, 9, 10], "mask": [0, 2], "modifi": [0, 2], "If": [0, 1, 2, 3, 11], "full": [0, 2, 6], "instead": [0, 2], "much": [0, 2, 5, 6], "more": [0, 2, 6, 9], "expens": [0, 2], "ignor": [0, 2, 8], "refer": [0, 2, 3, 9], "arxiv": [0, 2, 3], "1808": [0, 2], "02625": [0, 2], "2104": [0, 2], "08957": [0, 2], "properti": [0, 7], "norb": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11], "spatial": [0, 1, 4, 6, 8, 9, 11], "to_number_represent": 0, "to_z_represent": 0, "fermionact": [0, 5], "action": [0, 1, 7, 11], "spin": [0, 1, 5, 6, 7, 9, 10, 11], "orb": [0, 11], "namedtupl": 0, "alia": 0, "field": 0, "fermionoper": [0, 5], "coeff": [0, 1], "repres": [0, 6, 9, 11], "linear": [0, 1, 2, 7, 11], "combin": [0, 1, 7, 11], "product": [0, 8, 11], "creation": [0, 7, 11], "annihil": [0, 11], "explan": 0, "how": [0, 6, 7, 8, 9, 10, 11], "exampl": [0, 6, 7, 9, 11], "import": [0, 6, 7, 8, 9, 10, 11], "op1": [0, 11], "cre_a": [0, 5, 11], "des_a": [0, 5, 11], "3": [0, 6, 7, 8, 9, 10, 11], "5": [0, 8, 9, 10, 11], "25": [0, 11], "cre_b": [0, 5, 11], "des_b": [0, 5, 11], "4": [0, 7, 8, 9, 10, 11], "1j": [0, 7, 8, 11], "2j": [0, 11], "op2": [0, 11], "25j": [0, 11], "5j": [0, 11], "125": [0, 11], "0625": [0, 11], "tupl": [0, 1, 2, 4, 8, 11], "complex": [0, 1, 2, 3], "conserves_particle_numb": [0, 11], "conserv": [0, 5, 6, 11], "particl": [0, 4, 5, 6, 7, 11], "otherwis": 0, "conserves_spin_z": [0, 11], "compon": [0, 5, 6, 11], "many_body_ord": 0, "mani": [0, 5], "order": [0, 6, 8, 9, 11], "length": [0, 6, 8, 9], "longest": 0, "contain": [0, 2, 9, 11], "normal_ord": [0, 11], "normal": [0, 11], "equival": 0, "ha": [0, 1, 2, 6, 7, 8, 9, 10], "been": [0, 10], "reorder": 0, "canon": 0, "In": [0, 7, 8, 9, 10, 11], "compris": [0, 11], "appear": [0, 11], "from": [0, 3, 6, 7, 9, 10, 11], "left": [0, 7, 11], "right": [0, 7, 11], "descend": [0, 11], "lexicograph": [0, 11], "That": [0, 7, 11], "all": [0, 9, 11], "befor": [0, 9, 11], "within": [0, 2, 11], "beta": [0, 1, 4, 6, 9, 11], "alpha": [0, 1, 4, 6, 9, 11], "hopgateansatzoper": [0, 5, 10], "interaction_pair": [0, 10], "theta": [0, 10], "hop": 0, "gate": [0, 9], "ansatz": [0, 5, 10], "moleculardata": [0, 5, 8, 9, 10], "nelec": [0, 1, 4, 6, 7, 8, 9, 10, 11], "core_energi": 0, "dipole_integr": 0, "orbital_symmetri": 0, "data": [0, 3, 8, 9, 10, 11], "electron": [0, 1, 3, 4, 6, 8], "core": [0, 2], "energi": [0, 7, 8, 9, 10], "dipol": 0, "integr": 0, "symmetri": [0, 5, 6, 7, 8, 9, 10], "from_hartree_fock": [0, 8, 9, 10], "hartree_fock": [0, 8, 9, 10], "active_spac": [0, 9, 10], "initi": [0, 3, 4, 8, 9, 10], "hartre": [0, 8, 9], "fock": [0, 8, 9], "calcul": [0, 6, 8, 9], "scf": [0, 8, 9, 10], "iter": 0, "list": [0, 1, 2, 4, 9, 10], "activ": [0, 9, 10], "space": [0, 9, 10], "molecularhamiltonian": [0, 5, 8], "call": [0, 6, 7, 8, 11], "supportsapplyunitari": [0, 5], "arg": 0, "kwarg": 0, "protocol": 0, "appli": [0, 1, 2, 6, 7, 8, 9], "vector": [0, 1, 2, 3, 6, 7, 9, 10, 11], "supportsapproximateequ": [0, 5], "compar": [0, 8], "approxim": [0, 2, 8], "supportsfermionoper": [0, 5], "convert": [0, 1, 6, 7, 8, 11], "supportslinearoper": [0, 5], "linearoper": [0, 1, 7, 8, 11], "supportstrac": [0, 5], "whose": [0, 2, 6], "trace": [0, 5, 8], "comput": [0, 2, 7, 9, 10], "ucjoper": [0, 5, 9], "diag_coulomb_mats_alpha_alpha": 0, "diag_coulomb_mats_alpha_beta": 0, "final_orbital_rot": 0, "cluster": [0, 5], "jastrow": [0, 5], "ucj": 0, "prod_": [0, 9], "k": [0, 2, 7, 8, 9, 11], "mathcal": [0, 1, 7, 8, 9], "w_k": [0, 9], "e": [0, 8, 9, 10, 11], "_k": [0, 8, 9], "dagger": [0, 1, 2, 7, 8, 9, 11], "mathbf": [0, 7, 8, 9], "n_": [0, 1, 6, 7, 8, 9], "commut": [0, 8, 9], "total": [0, 8, 9], "we": [0, 7, 8, 9, 10, 11], "enforc": [0, 9], "As": [0, 6, 7, 8, 9], "result": [0, 1, 2, 3, 7, 8, 9, 10], "describ": [0, 1, 6, 7, 8, 9, 11], "involv": [0, 9], "same": [0, 6, 9], "To": [0, 6, 7, 8, 9], "variat": [0, 9], "final": [0, 8, 9], "includ": [0, 2, 5, 6, 7, 8], "end": [0, 7, 9], "from_paramet": [0, 9], "param": 0, "n_rep": [0, 9, 10], "alpha_alpha_indic": [0, 9], "alpha_beta_indic": [0, 9], "with_final_orbital_rot": 0, "from_t_amplitud": [0, 9], "t2_amplitud": [0, 2], "t1_amplitud": 0, "t2": [0, 2, 3, 9], "t1": [0, 9], "amplitud": [0, 2, 3, 9], "repetit": [0, 9], "to_paramet": [0, 9], "to_t_amplitud": 0, "nocc": [0, 3], "possibli": 0, "apply_diag_coulomb_evolut": [0, 5, 8], "vec": [0, 1, 2, 6, 7, 8, 11], "mat": [0, 1, 2], "mat_alpha_beta": [0, 1], "occupations_a": [0, 1], "occupations_b": [0, 1], "strings_a": [0, 1], "strings_b": [0, 1], "orbital_rotation_index_a": 0, "orbital_rotation_index_b": 0, "copi": [0, 11], "evolut": [0, 8], "exp": [0, 7], "z_": [0, 1], "also": [0, 1, 7, 11], "given": [0, 1, 2, 7, 8], "place": [0, 1, 9, 11], "sum": [0, 1, 8, 10], "state": [0, 1, 3, 7, 8, 9, 10], "interact": [0, 1, 6], "occupi": [0, 1, 3, 4, 8], "string": [0, 1, 6, 11], "index": [0, 1, 6, 9, 11], "alwai": [0, 2, 7], "newli": 0, "alloc": 0, "untouch": 0, "mai": [0, 2, 9], "still": [0, 9], "overwritten": 0, "evolv": [0, 8], "apply_fsim_g": [0, 5], "phi": 0, "target_orb": 0, "fsim": 0, "consist": 0, "tunnel": 0, "follow": [0, 6, 7, 8, 9, 11], "neg": 0, "sign": 0, "convent": 0, "angl": [0, 10], "nn": 0, "dagger_i": [0, 1], "a_i": 0, "dagger_j": 0, "a_j": [0, 1], "when": [0, 8, 9, 11], "neighbor": 0, "qubit": [0, 9], "begin": [0, 7, 9], "pmatrix": 0, "co": [0, 10], "sin": [0, 10], "apply_givens_rot": [0, 5], "g": [0, 9], "apply_hop_g": [0, 5], "apply_num_interact": [0, 5], "apply_num_num_interact": [0, 5], "apply_num_op_prod_interact": [0, 5], "prod": 0, "sequenc": 0, "pair": [0, 4], "integ": 0, "give": [0, 7], "first": [0, 2, 7, 8, 9, 10], "second": [0, 2, 8, 10], "apply_num_op_sum_evolut": [0, 5, 7, 8], "lambda_i": [0, 1, 7], "rais": 0, "valueerror": 0, "must": [0, 2, 11], "dimension": [0, 2, 6], "apply_orbital_rot": [0, 5, 6, 7], "allow_row_permut": 0, "allow_col_permut": 0, "map": [0, 7, 11], "mapsto": [0, 7], "u_": 0, "ji": [0, 7], "log": 0, "permut": [0, 2], "row": [0, 6], "column": [0, 2, 6, 7], "wa": 0, "well": 0, "actual": [0, 7, 9], "effect": [0, 9], "apply_tunneling_interact": [0, 5], "apply_unitari": [0, 5, 9], "obj": 0, "ani": [0, 7, 9], "approx_eq": [0, 5], "other": [0, 9], "rtol": [0, 2], "05": [0, 2], "atol": [0, 2], "equal": 0, "isclos": 0, "interpret": 0, "rel": [0, 2], "numer": [0, 2, 11], "up": [0, 7], "cre": [0, 5], "creat": [0, 6, 7, 8, 9, 11], "de": [0, 5], "destroi": [0, 11], "dim": [0, 3, 5, 6, 11], "get": [0, 7, 8, 9, 10], "dimens": [0, 3, 6], "fci": [0, 1, 6, 9, 10], "dim_a": [0, 6], "dim_b": [0, 6], "expectation_one_body_pow": [0, 5], "one_rdm": 0, "power": 0, "expect": [0, 7], "w": [0, 7, 8], "slater": [0, 6, 7, 8], "determin": [0, 2, 6, 7, 8], "o": [0, 10], "m_": [0, 1, 2], "a_p": 0, "a_q": 0, "m": [0, 1, 2, 7], "let": [0, 8, 11], "lvert": [0, 9], "psi": [0, 9], "rangl": [0, 9], "Then": 0, "quantiti": 0, "langl": 0, "rvert": 0, "reduc": [0, 2], "densiti": 0, "expectation_one_body_product": [0, 5], "o_1": 0, "o_2": 0, "dot": 0, "o_k": 0, "fermion_oper": [0, 5], "hartree_fock_st": [0, 5, 8, 9], "statevector": [0, 6, 7], "indices_to_str": [0, 5], "bitstr": 0, "rang": [0, 6, 7, 8, 9], "011001": 0, "011010": 0, "011100": 0, "101001": 0, "101010": 0, "101100": 0, "110001": 0, "110010": 0, "110100": 0, "linear_oper": [0, 5, 8, 9, 10, 11], "multireference_st": [0, 5, 10], "ansatz_oper": 0, "reference_occup": [0, 10], "root": 0, "multirefer": 0, "occup": [0, 6, 7, 8], "desir": 0, "eigenvector": [0, 7], "lowest": [0, 7, 8], "one_hot": [0, 5], "shape": [0, 2, 3, 6, 9], "dtype": [0, 3, 9], "arrai": [0, 2, 6, 11], "zero": [0, 10], "except": 0, "hot": 0, "simulate_qdrift_double_factor": [0, 5], "n_step": [0, 8], "probabl": 0, "norm": 0, "n_sampl": 0, "seed": [0, 3, 4, 6, 7], "via": [0, 8], "qdrift": 0, "trotter": [0, 5], "step": [0, 7, 8], "sampl": [0, 3, 4], "els": [0, 3], "explicit": 0, "proport": [0, 7], "spectral": 0, "uniform": [0, 3], "requir": [0, 9], "whenev": 0, "complet": 0, "character": 0, "trajectori": 0, "pseudorandom": [0, 3, 4], "gener": [0, 1, 3, 4, 5, 6, 7, 8, 9], "should": [0, 3, 4, 7, 8], "valid": [0, 3, 4], "input": [0, 1, 3, 4, 9], "random": [0, 4, 5, 6, 7, 11], "default_rng": [0, 3, 4], "numpi": [0, 2, 6, 7, 8, 9, 10], "just": [0, 8, 9], "simulate_trotter_double_factor": [0, 5, 8], "suzuki": 0, "formula": 0, "slater_determin": [0, 5, 6, 7], "occupied_orbit": [0, 6, 7], "configur": [0, 6], "word": [0, 9], "slater_determinant_one_rdm": [0, 5], "similarli": [0, 8], "construct": [1, 8, 9, 10, 11], "contract_diag_coulomb": [1, 5], "contract_num_op_sum": [1, 5], "contract_one_bodi": [1, 5], "linkstr_index_a": 1, "linkstr_index_b": 1, "lookup": 1, "tabl": [1, 11], "pyscf": [1, 6, 8, 9, 10], "cistr": 1, "gen_linkstr_index": 1, "implement": [1, 6, 7, 9], "diag_coulomb_linop": [1, 5], "num_op_sum_linop": [1, 5], "one_body_linop": [1, 5, 7], "algebra": [2, 11], "util": [2, 3, 4], "apply_matrix_to_slic": [2, 5], "target": 2, "slice": 2, "out": [2, 8], "double_factor": [2, 5], "ell": 2, "pk": 2, "qk": 2, "respect": 2, "too": 2, "small": [2, 9], "exce": [2, 9], "collect": 2, "double_factorized_t2": [2, 5], "t_": 2, "ijab": 2, "ap": 2, "ip": 2, "bq": 2, "jq": 2, "expm_multiply_taylor": [2, 5], "12": [2, 11], "expm": 2, "taylor": 2, "seri": 2, "expans": 2, "givens_decomposit": [2, 5], "is_antihermitian": [2, 5], "anti": [2, 3], "hermitian": [2, 3, 7], "is_hermitian": [2, 5], "is_orthogon": [2, 5], "orthogon": [2, 3], "union": 2, "bool_": 2, "is_real_symmetr": [2, 5], "is_special_orthogon": [2, 5], "special": [2, 3, 5, 6], "is_unitari": [2, 5], "lup": [2, 5], "pivot": 2, "lu": 2, "rtype": 2, "lower": 2, "unit": 2, "modified_choleski": [2, 5], "v_i": 2, "posit": [2, 10], "definit": 2, "No": 2, "check": [2, 7, 8], "verifi": 2, "1711": 2, "02242": 2, "assembl": 2, "reduced_matrix": [2, 5], "subspac": [2, 11], "span": 2, "some": [2, 8, 11], "v_j": 2, "random_antihermitian": [3, 5], "width": 3, "height": 3, "dype": 3, "random_hermitian": [3, 5, 7], "random_orthogon": [3, 5], "distribut": 3, "haar": 3, "measur": 3, "instanc": [3, 7, 8], "math": [3, 10], "ph": 3, "0609050": 3, "random_real_symmetric_matrix": [3, 5], "random_special_orthogon": [3, 5], "random_statevector": [3, 5, 11], "random_t2_amplitud": [3, 5], "random_two_body_tensor_r": [3, 5], "random_unitari": [3, 5, 6, 7], "random_nelec": [4, 5], "n_alpha": [4, 6, 7, 10], "n_beta": [4, 6, 7, 10], "random_occupied_orbit": [4, 5], "occ_a": 4, "occ_b": 4, "categori": 5, "chemistri": 5, "By": [5, 6], "exploit": 5, "algorithm": 5, "faster": 5, "introduct": 5, "quadrat": [5, 8], "local": 5, "lucj": 5, "entangl": 5, "forg": 5, "contract": [5, 7], "linalg": [5, 7, 8, 11], "test": [5, 7, 8], "advantag": 6, "effici": [6, 11], "level": [6, 8], "doe": [6, 11], "primari": 6, "wai": [6, 7, 9], "directli": [6, 8], "code": [6, 8, 9, 11], "show": [6, 7, 8, 9, 10, 11], "6": [6, 7, 8, 9, 10, 11], "1234": [6, 7], "rotated_vec": [6, 7], "plain": 6, "Its": 6, "fix": 6, "For": [6, 7, 9, 11], "system": [6, 7], "conveni": 6, "comb": 6, "assert": 6, "standard": 6, "often": [6, 9], "simpli": [6, 7], "reshap": 6, "reshaped_vec": 6, "choic": 6, "modul": 6, "tutori": [7, 8, 9, 10], "ffsim": [7, 8, 9, 10, 11], "fundament": 7, "mode": 7, "sum_j": 7, "new": [7, 11], "th": 7, "satisfi": [7, 11], "anticommut": 7, "relat": [7, 9], "thei": [7, 9, 11], "align": [7, 9], "_1": 7, "_2": 7, "section": 7, "ll": [7, 8, 9], "demonstr": [7, 8, 9], "task": 7, "consid": [7, 9], "rewritten": 7, "introduc": [7, 9], "eigendecomposit": 7, "sum_k": [7, 8], "lambda_k": 7, "ik": 7, "jk": 7, "our": [7, 8, 9], "ground": [7, 9], "pick": 7, "phase": 7, "spars": [7, 8, 11], "eig": [7, 11], "eigsh": 7, "la": 7, "fact": 7, "you": [7, 9], "illustr": 7, "purpos": 7, "explicitli": 7, "eigh": [7, 8], "evolved_vec": 7, "conj": 7, "undo": 7, "expected_phas": 7, "assert_allclos": 7, "mention": [7, 8], "abov": [7, 8, 11], "below": [7, 8, 9], "better": [7, 8], "evolved_vec_alt": 7, "daunt": 8, "scale": 8, "cell": [8, 9], "hydrogen": 8, "molecul": [8, 9, 10], "stretch": [8, 9], "bond": [8, 9, 10], "build": [8, 9, 10], "h2": 8, "mol": [8, 9, 10], "gto": [8, 9, 10], "mole": [8, 9, 10], "atom": [8, 9, 10], "8": [8, 9, 10, 11], "sto": [8, 9, 10], "6g": [8, 9, 10], "d2h": [8, 9], "rhf": [8, 9, 10], "kernel": [8, 9, 10], "mol_data": [8, 9, 10], "mol_hamiltonian": [8, 9, 10], "df_hamiltonian": 8, "converg": [8, 9, 10], "837796382593709": 8, "dataclass": [8, 9], "print": [8, 9, 10, 11], "inform": [8, 11], "One": 8, "27478830e": 8, "01": [8, 9, 10], "52909490e": 8, "17": 8, "57029092e": 8, "77238770e": 8, "23173938e": 8, "58782168e": 8, "33545754e": 8, "49859013e": 8, "48240570e": 8, "83067333e": 8, "01841799e": 8, "53132024e": 8, "21318608e": 8, "00": [8, 10], "27383424e": 8, "16": 8, "82879498e": 8, "07792507e": 8, "14653029e": 8, "27521846e": 8, "62": 8, "39236953e": 8, "32": 8, "52090881e": 8, "03": [8, 9, 10], "00000000e": 8, "7": [8, 9, 11], "07106781e": 8, "27830444e": 8, "15": [8, 9], "rest": 8, "although": 8, "alreadi": 8, "built": 8, "manual": 8, "asymmetr": 8, "basic": 8, "h_k": 8, "divid": 8, "singl": 8, "exponenti": 8, "individu": [8, 11], "do": [8, 11], "approx": 8, "prod_k": 8, "higher": 8, "deriv": 8, "write": 8, "recal": 8, "addit": [8, 11], "think": 8, "compos": 8, "def": [8, 9, 10], "simulate_trotter_step_double_factor": 8, "one_body_energi": 8, "one_body_basis_chang": 8, "zip": [8, 10], "finish": 8, "handl": 8, "split": 8, "multipl": [8, 11], "wrote": 8, "step_tim": 8, "match": 8, "initial_st": 8, "\u03c8": [8, 9, 10], "hf_energi": 8, "vdot": [8, 9, 10], "f": [8, 9, 10], "8377963825937084": 8, "now": 8, "later": 8, "exact_st": 8, "expm_multipli": 8, "tracea": 8, "fidel": 8, "ab": 8, "9696296369955066": 8, "final_st": [8, 9], "9990275744083494": 8, "improv": 8, "increas": [8, 9], "10": 8, "9999906233109686": 8, "commonli": 8, "known": 8, "fourth": 8, "reproduc": 8, "9": [8, 9, 11], "fewer": 8, "9999999336740067": 8, "ethen": 9, "mcscf": [9, 10], "bond_dist": 9, "678": 9, "5626": 9, "c": 9, "9289": 9, "nelectron": 9, "ca": [9, 10], "casci": [9, 10], "nca": [9, 10], "neleca": [9, 10], "mo": [9, 10], "sort_mo": [9, 10], "energy_fci": [9, 10], "77": 9, "4456267643962": 9, "6290254326717": 9, "ci": [9, 10], "57322412553862": 9, "0000000": [9, 10], "phi_0": 9, "taken": 9, "express": 9, "previou": 9, "constructor": 9, "provid": 9, "truncat": 9, "ccsd": 9, "mp2": 9, "run": 9, "sinc": 9, "cc": 9, "frozen": 9, "nao_nr": 9, "reference_st": 9, "ansatz_st": [9, 10], "initiali": [9, 10], "49387212754476": 9, "e_corr": 9, "04824536314851395": 9, "4697560002169": 9, "facilit": 9, "convers": 9, "precis": 9, "somewhat": 9, "complic": 9, "short": 9, "entri": 9, "non": 9, "redund": 9, "associ": [9, 11], "evalu": [9, 10], "would": 9, "like": 9, "fun": [9, 10], "x": [9, 10], "x0": [9, 10], "maxfun": 9, "1000": 9, "len": [9, 10], "72": 9, "messag": [9, 10], "stop": 9, "NO": 9, "AND": 9, "success": [9, 10], "statu": [9, 10], "51494874300114": 9, "555e": 9, "932e": 9, "056e": 9, "968e": 9, "nit": 9, "jac": 9, "976e": 9, "986e": 9, "328e": 9, "274e": 9, "nfev": [9, 10], "1095": 9, "njev": 9, "hess_inv": 9, "lt": 9, "72x72": 9, "lbfgsinvhessproduct": 9, "float64": 9, "gt": 9, "either": 9, "connect": 9, "swap": 9, "network": 9, "make": 9, "challeng": 9, "noisi": 9, "pre": 9, "fault": 9, "processor": 9, "idea": 9, "impos": 9, "sparsiti": 9, "constraint": 9, "them": 9, "depth": 9, "topologi": 9, "triangl": 9, "need": 9, "lattic": 9, "parallel": 9, "line": 9, "rung": 9, "ladder": 9, "With": 9, "setup": 9, "while": 9, "share": 9, "ldot": 9, "without": 9, "Of": 9, "cours": 9, "less": 9, "notic": 9, "decreas": 9, "46": 9, "45981953688877": 9, "348e": 9, "867e": 9, "02": [9, 10], "151e": 9, "150e": 9, "14": [9, 10], "408e": 9, "04": 9, "114e": 9, "837e": 9, "720e": 9, "1034": 9, "22": 9, "46x46": 9, "water": 10, "equilibrium": 10, "radius_1": 10, "958": 10, "radius_2": 10, "bond_angle_deg": 10, "104": 10, "478": 10, "h1_x": 10, "h2_x": 10, "180": 10, "h2_y": 10, "c2v": 10, "n_electron": 10, "mo_occ": 10, "75": 10, "6787887956297": 10, "7079508859773": 10, "3336207346502": 10, "reference_occupations_spati": 10, "68366174447617": 10, "cobyla": 10, "maxit": 10, "100": 10, "exceed": 10, "69434198341699": 10, "352e": 10, "664e": 10, "940e": 10, "104e": 10, "913e": 10, "maxcv": 10, "Such": 11, "programmat": 11, "dictionari": 11, "hash": 11, "three": 11, "piec": 11, "being": 11, "upon": 11, "intern": 11, "itself": 11, "recommend": 11, "helper": 11, "shown": 11, "repr": 11, "view": 11, "displai": 11, "39": 11, "0j": 11, "arithmet": 11, "multipli": 11, "scalar": 11, "go": 11, "op": 11, "op3": 11, "good": 11, "awar": 11, "especi": 11, "avoid": 11, "These": 11, "subtract": 11, "divis": 11, "6j": 11, "4j": 11, "12j": 11, "3j": 11, "preserv": 11, "far": 11, "criteria": 11, "op4": 11, "linop": 11, "onto": 11, "10305872": 11, "08742954j": 11, "most": 11, "lm": 11, "21984743e": 11, "18j": 11}, "objects": {"": [[0, 0, 0, "-", "ffsim"]], "ffsim": [[0, 1, 1, "", "DoubleFactorizedHamiltonian"], [0, 1, 1, "", "FermionAction"], [0, 1, 1, "", "FermionOperator"], [0, 1, 1, "", "HopGateAnsatzOperator"], [0, 1, 1, "", "MolecularData"], [0, 1, 1, "", "MolecularHamiltonian"], [0, 1, 1, "", "SupportsApplyUnitary"], [0, 1, 1, "", "SupportsApproximateEquality"], [0, 1, 1, "", "SupportsFermionOperator"], [0, 1, 1, "", "SupportsLinearOperator"], [0, 1, 1, "", "SupportsTrace"], [0, 1, 1, "", "UCJOperator"], [0, 5, 1, "", "apply_diag_coulomb_evolution"], [0, 5, 1, "", "apply_fsim_gate"], [0, 5, 1, "", "apply_givens_rotation"], [0, 5, 1, "", "apply_hop_gate"], [0, 5, 1, "", "apply_num_interaction"], [0, 5, 1, "", "apply_num_num_interaction"], [0, 5, 1, "", "apply_num_op_prod_interaction"], [0, 5, 1, "", "apply_num_op_sum_evolution"], [0, 5, 1, "", "apply_orbital_rotation"], [0, 5, 1, "", "apply_tunneling_interaction"], [0, 5, 1, "", "apply_unitary"], [0, 5, 1, "", "approx_eq"], [1, 0, 0, "-", "contract"], [0, 5, 1, "", "cre"], [0, 5, 1, "", "cre_a"], [0, 5, 1, "", "cre_b"], [0, 5, 1, "", "des"], [0, 5, 1, "", "des_a"], [0, 5, 1, "", "des_b"], [0, 5, 1, "", "dim"], [0, 5, 1, "", "dims"], [0, 5, 1, "", "expectation_one_body_power"], [0, 5, 1, "", "expectation_one_body_product"], [0, 5, 1, "", "fermion_operator"], [0, 5, 1, "", "hartree_fock_state"], [0, 5, 1, "", "indices_to_strings"], [2, 0, 0, "-", "linalg"], [0, 5, 1, "", "linear_operator"], [0, 5, 1, "", "multireference_state"], [0, 5, 1, "", "one_hot"], [3, 0, 0, "-", "random"], [0, 5, 1, "", "simulate_qdrift_double_factorized"], [0, 5, 1, "", "simulate_trotter_double_factorized"], [0, 5, 1, "", "slater_determinant"], [0, 5, 1, "", "slater_determinant_one_rdm"], [4, 0, 0, "-", "testing"], [0, 5, 1, "", "trace"]], "ffsim.DoubleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 2, 1, "", "diag_coulomb_mats"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_number_representation"], [0, 3, 1, "", "to_z_representation"], [0, 2, 1, "", "z_representation"]], "ffsim.FermionAction": [[0, 2, 1, "", "action"], [0, 2, 1, "", "orb"], [0, 2, 1, "", "spin"]], "ffsim.FermionOperator": [[0, 3, 1, "", "conserves_particle_number"], [0, 3, 1, "", "conserves_spin_z"], [0, 3, 1, "", "many_body_order"], [0, 3, 1, "", "normal_ordered"]], "ffsim.MolecularData": [[0, 2, 1, "", "core_energy"], [0, 2, 1, "", "dipole_integrals"], [0, 3, 1, "", "from_hartree_fock"], [0, 4, 1, "", "hamiltonian"], [0, 2, 1, "", "nelec"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_symmetries"], [0, 2, 1, "", "two_body_tensor"]], "ffsim.MolecularHamiltonian": [[0, 2, 1, "", "constant"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "two_body_tensor"]], "ffsim.UCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.contract": [[1, 5, 1, "", "contract_diag_coulomb"], [1, 5, 1, "", "contract_num_op_sum"], [1, 5, 1, "", "contract_one_body"], [1, 5, 1, "", "diag_coulomb_linop"], [1, 5, 1, "", "num_op_sum_linop"], [1, 5, 1, "", "one_body_linop"]], "ffsim.linalg": [[2, 5, 1, "", "apply_matrix_to_slices"], [2, 5, 1, "", "double_factorized"], [2, 5, 1, "", "double_factorized_t2"], [2, 5, 1, "", "expm_multiply_taylor"], [2, 5, 1, "", "givens_decomposition"], [2, 5, 1, "", "is_antihermitian"], [2, 5, 1, "", "is_hermitian"], [2, 5, 1, "", "is_orthogonal"], [2, 5, 1, "", "is_real_symmetric"], [2, 5, 1, "", "is_special_orthogonal"], [2, 5, 1, "", "is_unitary"], [2, 5, 1, "", "lup"], [2, 5, 1, "", "modified_cholesky"], [2, 5, 1, "", "reduced_matrix"]], "ffsim.random": [[3, 5, 1, "", "random_antihermitian"], [3, 5, 1, "", "random_hermitian"], [3, 5, 1, "", "random_orthogonal"], [3, 5, 1, "", "random_real_symmetric_matrix"], [3, 5, 1, "", "random_special_orthogonal"], [3, 5, 1, "", "random_statevector"], [3, 5, 1, "", "random_t2_amplitudes"], [3, 5, 1, "", "random_two_body_tensor_real"], [3, 5, 1, "", "random_unitary"]], "ffsim.testing": [[4, 5, 1, "", "random_nelec"], [4, 5, 1, "", "random_occupied_orbitals"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"]}, "titleterms": {"ffsim": [0, 1, 2, 3, 4, 5, 6], "contract": 1, "linalg": 2, "random": 3, "test": 4, "welcom": 5, "": 5, "document": 5, "tutori": 5, "api": 5, "refer": 5, "introduct": 6, "orbit": 7, "rotat": 7, "quadrat": 7, "hamiltonian": [7, 8], "time": 7, "evolut": 7, "diagon": 8, "coulomb": 8, "oper": 8, "doubl": 8, "factor": 8, "trotter": 8, "simul": 8, "represent": 8, "molecular": 8, "brief": 8, "background": 8, "suzuki": 8, "formula": 8, "implement": 8, "The": [9, 11], "local": 9, "unitari": 9, "cluster": 9, "jastrow": 9, "lucj": 9, "ansatz": 9, "ucj": 9, "entangl": 10, "forg": 10, "fermionoper": 11, "class": 11}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"ffsim": [[0, "module-ffsim"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "ffsim.linalg": [[2, "module-ffsim.linalg"]], "ffsim.random": [[3, "module-ffsim.random"]], "ffsim.testing": [[4, "module-ffsim.testing"]], "Welcome to ffsim\u2019s documentation!": [[5, "welcome-to-ffsim-s-documentation"]], "Tutorials": [[5, "tutorials"]], "API Reference": [[5, "api-reference"]], "Introduction to ffsim": [[6, "Introduction-to-ffsim"]], "Orbital rotations and quadratic Hamiltonians": [[7, "Orbital-rotations-and-quadratic-Hamiltonians"]], "Orbital rotations": [[7, "Orbital-rotations"]], "Time evolution by a quadratic Hamiltonian": [[7, "Time-evolution-by-a-quadratic-Hamiltonian"]], "Diagonal Coulomb operators and double-factorized Trotter simulation": [[8, "Diagonal-Coulomb-operators-and-double-factorized-Trotter-simulation"]], "Double-factorized representation of the molecular Hamiltonian": [[8, "Double-factorized-representation-of-the-molecular-Hamiltonian"]], "Trotter simulation of the double-factorized Hamiltonian": [[8, "Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "Brief background on Trotter-Suzuki formulas": [[8, "Brief-background-on-Trotter-Suzuki-formulas"]], "Implementing Trotter simulation of the double-factorized Hamiltonian": [[8, "Implementing-Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "The local unitary cluster Jastrow (LUCJ) ansatz": [[9, "The-local-unitary-cluster-Jastrow-(LUCJ)-ansatz"], [9, "id1"]], "The unitary cluster Jastrow (UCJ) ansatz": [[9, "The-unitary-cluster-Jastrow-(UCJ)-ansatz"]], "Entanglement forging": [[10, "Entanglement-forging"]], "The FermionOperator class": [[11, "The-FermionOperator-class"]]}, "indexentries": {"doublefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.DoubleFactorizedHamiltonian"]], "fermionaction (class in ffsim)": [[0, "ffsim.FermionAction"]], "fermionoperator (class in ffsim)": [[0, "ffsim.FermionOperator"]], "hopgateansatzoperator (class in ffsim)": [[0, "ffsim.HopGateAnsatzOperator"]], "moleculardata (class in ffsim)": [[0, "ffsim.MolecularData"]], "molecularhamiltonian (class in ffsim)": [[0, "ffsim.MolecularHamiltonian"]], "supportsapplyunitary (class in ffsim)": [[0, "ffsim.SupportsApplyUnitary"]], "supportsapproximateequality (class in ffsim)": [[0, "ffsim.SupportsApproximateEquality"]], "supportsfermionoperator (class in ffsim)": [[0, "ffsim.SupportsFermionOperator"]], "supportslinearoperator (class in ffsim)": [[0, "ffsim.SupportsLinearOperator"]], "supportstrace (class in ffsim)": [[0, "ffsim.SupportsTrace"]], "ucjoperator (class in ffsim)": [[0, "ffsim.UCJOperator"]], "action (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.action"]], "apply_diag_coulomb_evolution() (in module ffsim)": [[0, "ffsim.apply_diag_coulomb_evolution"]], "apply_fsim_gate() (in module ffsim)": [[0, "ffsim.apply_fsim_gate"]], "apply_givens_rotation() (in module ffsim)": [[0, "ffsim.apply_givens_rotation"]], "apply_hop_gate() (in module ffsim)": [[0, "ffsim.apply_hop_gate"]], "apply_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_interaction"]], "apply_num_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_num_interaction"]], "apply_num_op_prod_interaction() (in module ffsim)": [[0, "ffsim.apply_num_op_prod_interaction"]], "apply_num_op_sum_evolution() (in module ffsim)": [[0, "ffsim.apply_num_op_sum_evolution"]], "apply_orbital_rotation() (in module ffsim)": [[0, "ffsim.apply_orbital_rotation"]], "apply_tunneling_interaction() (in module ffsim)": [[0, "ffsim.apply_tunneling_interaction"]], "apply_unitary() (in module ffsim)": [[0, "ffsim.apply_unitary"]], "approx_eq() (in module ffsim)": [[0, "ffsim.approx_eq"]], "conserves_particle_number() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_particle_number"]], "conserves_spin_z() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_spin_z"]], "constant (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.constant"]], "constant (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.constant"]], "core_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.core_energy"]], "cre() (in module ffsim)": [[0, "ffsim.cre"]], "cre_a() (in module ffsim)": [[0, "ffsim.cre_a"]], "cre_b() (in module ffsim)": [[0, "ffsim.cre_b"]], "des() (in module ffsim)": [[0, "ffsim.des"]], "des_a() (in module ffsim)": [[0, "ffsim.des_a"]], "des_b() (in module ffsim)": [[0, "ffsim.des_b"]], "diag_coulomb_mats (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.diag_coulomb_mats"]], "diag_coulomb_mats_alpha_alpha (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_alpha"]], "diag_coulomb_mats_alpha_beta (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_beta"]], "dim() (in module ffsim)": [[0, "ffsim.dim"]], "dims() (in module ffsim)": [[0, "ffsim.dims"]], "dipole_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.dipole_integrals"]], "expectation_one_body_power() (in module ffsim)": [[0, "ffsim.expectation_one_body_power"]], "expectation_one_body_product() (in module ffsim)": [[0, "ffsim.expectation_one_body_product"]], "fermion_operator() (in module ffsim)": [[0, "ffsim.fermion_operator"]], "ffsim": [[0, "module-ffsim"]], "final_orbital_rotation (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.final_orbital_rotation"]], "from_hartree_fock() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_hartree_fock"]], "from_molecular_hamiltonian() (ffsim.doublefactorizedhamiltonian static method)": [[0, "ffsim.DoubleFactorizedHamiltonian.from_molecular_hamiltonian"]], "from_parameters() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_parameters"]], "from_t_amplitudes() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_t_amplitudes"]], "hamiltonian (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.hamiltonian"]], "hartree_fock_state() (in module ffsim)": [[0, "ffsim.hartree_fock_state"]], "indices_to_strings() (in module ffsim)": [[0, "ffsim.indices_to_strings"]], "linear_operator() (in module ffsim)": [[0, "ffsim.linear_operator"]], "many_body_order() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.many_body_order"]], "module": [[0, "module-ffsim"], [1, "module-ffsim.contract"], [2, "module-ffsim.linalg"], [3, "module-ffsim.random"], [4, "module-ffsim.testing"]], "multireference_state() (in module ffsim)": [[0, "ffsim.multireference_state"]], "n_reps (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.n_reps"]], "nelec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.nelec"]], "norb (ffsim.doublefactorizedhamiltonian property)": [[0, "ffsim.DoubleFactorizedHamiltonian.norb"]], "norb (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.norb"]], "norb (ffsim.molecularhamiltonian property)": [[0, "ffsim.MolecularHamiltonian.norb"]], "norb (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.norb"]], "normal_ordered() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.normal_ordered"]], "one_body_tensor (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.one_body_tensor"]], "one_body_tensor (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.one_body_tensor"]], "one_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.one_body_tensor"]], "one_hot() (in module ffsim)": [[0, "ffsim.one_hot"]], "orb (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.orb"]], "orbital_rotations (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.orbital_rotations"]], "orbital_rotations (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.orbital_rotations"]], "orbital_symmetries (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.orbital_symmetries"]], "simulate_qdrift_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_qdrift_double_factorized"]], "simulate_trotter_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_trotter_double_factorized"]], "slater_determinant() (in module ffsim)": [[0, "ffsim.slater_determinant"]], "slater_determinant_one_rdm() (in module ffsim)": [[0, "ffsim.slater_determinant_one_rdm"]], "spin (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.spin"]], "to_number_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_number_representation"]], "to_parameters() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_parameters"]], "to_t_amplitudes() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_t_amplitudes"]], "to_z_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_z_representation"]], "trace() (in module ffsim)": [[0, "ffsim.trace"]], "two_body_tensor (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.two_body_tensor"]], "two_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.two_body_tensor"]], "z_representation (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.z_representation"]], "contract_diag_coulomb() (in module ffsim.contract)": [[1, "ffsim.contract.contract_diag_coulomb"]], "contract_num_op_sum() (in module ffsim.contract)": [[1, "ffsim.contract.contract_num_op_sum"]], "contract_one_body() (in module ffsim.contract)": [[1, "ffsim.contract.contract_one_body"]], "diag_coulomb_linop() (in module ffsim.contract)": [[1, "ffsim.contract.diag_coulomb_linop"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "num_op_sum_linop() (in module ffsim.contract)": [[1, "ffsim.contract.num_op_sum_linop"]], "one_body_linop() (in module ffsim.contract)": [[1, "ffsim.contract.one_body_linop"]], "apply_matrix_to_slices() (in module ffsim.linalg)": [[2, "ffsim.linalg.apply_matrix_to_slices"]], "double_factorized() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized"]], "double_factorized_t2() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized_t2"]], "expm_multiply_taylor() (in module ffsim.linalg)": [[2, "ffsim.linalg.expm_multiply_taylor"]], "ffsim.linalg": [[2, "module-ffsim.linalg"]], "givens_decomposition() (in module ffsim.linalg)": [[2, "ffsim.linalg.givens_decomposition"]], "is_antihermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_antihermitian"]], "is_hermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_hermitian"]], "is_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_orthogonal"]], "is_real_symmetric() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_real_symmetric"]], "is_special_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_special_orthogonal"]], "is_unitary() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_unitary"]], "lup() (in module ffsim.linalg)": [[2, "ffsim.linalg.lup"]], "modified_cholesky() (in module ffsim.linalg)": [[2, "ffsim.linalg.modified_cholesky"]], "reduced_matrix() (in module ffsim.linalg)": [[2, "ffsim.linalg.reduced_matrix"]], "ffsim.random": [[3, "module-ffsim.random"]], "random_antihermitian() (in module ffsim.random)": [[3, "ffsim.random.random_antihermitian"]], "random_hermitian() (in module ffsim.random)": [[3, "ffsim.random.random_hermitian"]], "random_orthogonal() (in module ffsim.random)": [[3, "ffsim.random.random_orthogonal"]], "random_real_symmetric_matrix() (in module ffsim.random)": [[3, "ffsim.random.random_real_symmetric_matrix"]], "random_special_orthogonal() (in module ffsim.random)": [[3, "ffsim.random.random_special_orthogonal"]], "random_statevector() (in module ffsim.random)": [[3, "ffsim.random.random_statevector"]], "random_t2_amplitudes() (in module ffsim.random)": [[3, "ffsim.random.random_t2_amplitudes"]], "random_two_body_tensor_real() (in module ffsim.random)": [[3, "ffsim.random.random_two_body_tensor_real"]], "random_unitary() (in module ffsim.random)": [[3, "ffsim.random.random_unitary"]], "ffsim.testing": [[4, "module-ffsim.testing"]], "random_nelec() (in module ffsim.testing)": [[4, "ffsim.testing.random_nelec"]], "random_occupied_orbitals() (in module ffsim.testing)": [[4, "ffsim.testing.random_occupied_orbitals"]]}}) \ No newline at end of file diff --git a/tutorials/01-introduction.ipynb b/tutorials/01-introduction.ipynb index e3aacf816..88a59d993 100644 --- a/tutorials/01-introduction.ipynb +++ b/tutorials/01-introduction.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:25.443944Z", - "iopub.status.busy": "2023-10-28T19:16:25.443734Z", - "iopub.status.idle": "2023-10-28T19:16:25.759808Z", - "shell.execute_reply": "2023-10-28T19:16:25.759219Z" + "iopub.execute_input": "2023-10-28T19:56:57.494469Z", + "iopub.status.busy": "2023-10-28T19:56:57.493902Z", + "iopub.status.idle": "2023-10-28T19:56:57.847046Z", + "shell.execute_reply": "2023-10-28T19:56:57.846341Z" } }, "outputs": [], @@ -62,10 +62,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:25.764326Z", - "iopub.status.busy": "2023-10-28T19:16:25.763272Z", - "iopub.status.idle": "2023-10-28T19:16:25.768296Z", - "shell.execute_reply": "2023-10-28T19:16:25.767825Z" + "iopub.execute_input": "2023-10-28T19:56:57.851550Z", + "iopub.status.busy": "2023-10-28T19:56:57.851221Z", + "iopub.status.idle": "2023-10-28T19:56:57.856768Z", + "shell.execute_reply": "2023-10-28T19:56:57.856129Z" } }, "outputs": [], @@ -93,10 +93,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:25.772007Z", - "iopub.status.busy": "2023-10-28T19:16:25.771141Z", - "iopub.status.idle": "2023-10-28T19:16:25.774921Z", - "shell.execute_reply": "2023-10-28T19:16:25.774464Z" + "iopub.execute_input": "2023-10-28T19:56:57.860349Z", + "iopub.status.busy": "2023-10-28T19:56:57.860112Z", + "iopub.status.idle": "2023-10-28T19:56:57.864176Z", + "shell.execute_reply": "2023-10-28T19:56:57.863497Z" } }, "outputs": [], diff --git a/tutorials/02-orbital-rotation.ipynb b/tutorials/02-orbital-rotation.ipynb index ac6d0ee40..c8ee0e05a 100644 --- a/tutorials/02-orbital-rotation.ipynb +++ b/tutorials/02-orbital-rotation.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:27.612649Z", - "iopub.status.busy": "2023-10-28T19:16:27.612400Z", - "iopub.status.idle": "2023-10-28T19:16:27.938561Z", - "shell.execute_reply": "2023-10-28T19:16:27.937899Z" + "iopub.execute_input": "2023-10-28T19:56:59.593497Z", + "iopub.status.busy": "2023-10-28T19:56:59.593034Z", + "iopub.status.idle": "2023-10-28T19:56:59.932252Z", + "shell.execute_reply": "2023-10-28T19:56:59.931556Z" } }, "outputs": [], @@ -111,10 +111,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:27.943338Z", - "iopub.status.busy": "2023-10-28T19:16:27.942000Z", - "iopub.status.idle": "2023-10-28T19:16:27.971655Z", - "shell.execute_reply": "2023-10-28T19:16:27.970972Z" + "iopub.execute_input": "2023-10-28T19:56:59.936669Z", + "iopub.status.busy": "2023-10-28T19:56:59.935356Z", + "iopub.status.idle": "2023-10-28T19:56:59.966062Z", + "shell.execute_reply": "2023-10-28T19:56:59.965446Z" } }, "outputs": [], @@ -158,10 +158,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:27.975470Z", - "iopub.status.busy": "2023-10-28T19:16:27.975066Z", - "iopub.status.idle": "2023-10-28T19:16:27.986853Z", - "shell.execute_reply": "2023-10-28T19:16:27.986255Z" + "iopub.execute_input": "2023-10-28T19:56:59.970497Z", + "iopub.status.busy": "2023-10-28T19:56:59.969486Z", + "iopub.status.idle": "2023-10-28T19:56:59.981641Z", + "shell.execute_reply": "2023-10-28T19:56:59.981083Z" } }, "outputs": [], @@ -201,10 +201,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:27.990501Z", - "iopub.status.busy": "2023-10-28T19:16:27.990269Z", - "iopub.status.idle": "2023-10-28T19:16:27.996352Z", - "shell.execute_reply": "2023-10-28T19:16:27.995811Z" + "iopub.execute_input": "2023-10-28T19:56:59.985779Z", + "iopub.status.busy": "2023-10-28T19:56:59.984741Z", + "iopub.status.idle": "2023-10-28T19:56:59.991033Z", + "shell.execute_reply": "2023-10-28T19:56:59.990498Z" } }, "outputs": [], diff --git a/tutorials/03-double-factorized.ipynb b/tutorials/03-double-factorized.ipynb index 36b1b559f..5ab8dcae6 100644 --- a/tutorials/03-double-factorized.ipynb +++ b/tutorials/03-double-factorized.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:29.711375Z", - "iopub.status.busy": "2023-10-28T19:16:29.710925Z", - "iopub.status.idle": "2023-10-28T19:16:30.105904Z", - "shell.execute_reply": "2023-10-28T19:16:30.105307Z" + "iopub.execute_input": "2023-10-28T19:57:01.816606Z", + "iopub.status.busy": "2023-10-28T19:57:01.816139Z", + "iopub.status.idle": "2023-10-28T19:57:02.269592Z", + "shell.execute_reply": "2023-10-28T19:57:02.268923Z" } }, "outputs": [ @@ -92,10 +92,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.109182Z", - "iopub.status.busy": "2023-10-28T19:16:30.108645Z", - "iopub.status.idle": "2023-10-28T19:16:30.114831Z", - "shell.execute_reply": "2023-10-28T19:16:30.114310Z" + "iopub.execute_input": "2023-10-28T19:57:02.273091Z", + "iopub.status.busy": "2023-10-28T19:57:02.272489Z", + "iopub.status.idle": "2023-10-28T19:57:02.279238Z", + "shell.execute_reply": "2023-10-28T19:57:02.278680Z" } }, "outputs": [ @@ -226,10 +226,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.117718Z", - "iopub.status.busy": "2023-10-28T19:16:30.117291Z", - "iopub.status.idle": "2023-10-28T19:16:30.123212Z", - "shell.execute_reply": "2023-10-28T19:16:30.122707Z" + "iopub.execute_input": "2023-10-28T19:57:02.282320Z", + "iopub.status.busy": "2023-10-28T19:57:02.281889Z", + "iopub.status.idle": "2023-10-28T19:57:02.288366Z", + "shell.execute_reply": "2023-10-28T19:57:02.287798Z" } }, "outputs": [], @@ -284,10 +284,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.125973Z", - "iopub.status.busy": "2023-10-28T19:16:30.125566Z", - "iopub.status.idle": "2023-10-28T19:16:30.129449Z", - "shell.execute_reply": "2023-10-28T19:16:30.128925Z" + "iopub.execute_input": "2023-10-28T19:57:02.291418Z", + "iopub.status.busy": "2023-10-28T19:57:02.290779Z", + "iopub.status.idle": "2023-10-28T19:57:02.295337Z", + "shell.execute_reply": "2023-10-28T19:57:02.294754Z" } }, "outputs": [], @@ -324,10 +324,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.132143Z", - "iopub.status.busy": "2023-10-28T19:16:30.131746Z", - "iopub.status.idle": "2023-10-28T19:16:30.136337Z", - "shell.execute_reply": "2023-10-28T19:16:30.135849Z" + "iopub.execute_input": "2023-10-28T19:57:02.298733Z", + "iopub.status.busy": "2023-10-28T19:57:02.298072Z", + "iopub.status.idle": "2023-10-28T19:57:02.304222Z", + "shell.execute_reply": "2023-10-28T19:57:02.303655Z" } }, "outputs": [ @@ -363,10 +363,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.139035Z", - "iopub.status.busy": "2023-10-28T19:16:30.138643Z", - "iopub.status.idle": "2023-10-28T19:16:30.147591Z", - "shell.execute_reply": "2023-10-28T19:16:30.147078Z" + "iopub.execute_input": "2023-10-28T19:57:02.307485Z", + "iopub.status.busy": "2023-10-28T19:57:02.306821Z", + "iopub.status.idle": "2023-10-28T19:57:02.321261Z", + "shell.execute_reply": "2023-10-28T19:57:02.320589Z" } }, "outputs": [ @@ -405,10 +405,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.150361Z", - "iopub.status.busy": "2023-10-28T19:16:30.149967Z", - "iopub.status.idle": "2023-10-28T19:16:30.157661Z", - "shell.execute_reply": "2023-10-28T19:16:30.157156Z" + "iopub.execute_input": "2023-10-28T19:57:02.324312Z", + "iopub.status.busy": "2023-10-28T19:57:02.323837Z", + "iopub.status.idle": "2023-10-28T19:57:02.332671Z", + "shell.execute_reply": "2023-10-28T19:57:02.332082Z" } }, "outputs": [ @@ -446,10 +446,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.160252Z", - "iopub.status.busy": "2023-10-28T19:16:30.159981Z", - "iopub.status.idle": "2023-10-28T19:16:30.202722Z", - "shell.execute_reply": "2023-10-28T19:16:30.202114Z" + "iopub.execute_input": "2023-10-28T19:57:02.335925Z", + "iopub.status.busy": "2023-10-28T19:57:02.335284Z", + "iopub.status.idle": "2023-10-28T19:57:02.386391Z", + "shell.execute_reply": "2023-10-28T19:57:02.385471Z" } }, "outputs": [ @@ -489,10 +489,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.205588Z", - "iopub.status.busy": "2023-10-28T19:16:30.205283Z", - "iopub.status.idle": "2023-10-28T19:16:30.240631Z", - "shell.execute_reply": "2023-10-28T19:16:30.240020Z" + "iopub.execute_input": "2023-10-28T19:57:02.389625Z", + "iopub.status.busy": "2023-10-28T19:57:02.389378Z", + "iopub.status.idle": "2023-10-28T19:57:02.428555Z", + "shell.execute_reply": "2023-10-28T19:57:02.427602Z" } }, "outputs": [ @@ -531,10 +531,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:30.243409Z", - "iopub.status.busy": "2023-10-28T19:16:30.243198Z", - "iopub.status.idle": "2023-10-28T19:16:30.260045Z", - "shell.execute_reply": "2023-10-28T19:16:30.259448Z" + "iopub.execute_input": "2023-10-28T19:57:02.431653Z", + "iopub.status.busy": "2023-10-28T19:57:02.431422Z", + "iopub.status.idle": "2023-10-28T19:57:02.450116Z", + "shell.execute_reply": "2023-10-28T19:57:02.449332Z" } }, "outputs": [ diff --git a/tutorials/04-lucj.html b/tutorials/04-lucj.html index 96ab23205..5091b1927 100644 --- a/tutorials/04-lucj.html +++ b/tutorials/04-lucj.html @@ -147,8 +147,8 @@

The unitary cluster Jastrow (UCJ) ansatz
-E(CCSD) = -77.49387212754473  E_corr = -0.04824536314851498
-Energy at initialialization: -77.46975600021668
+E(CCSD) = -77.49387212754476  E_corr = -0.04824536314851395
+Energy at initialialization: -77.4697560002169
 

To facilitate variational optimization of the ansatz, UCJOperator implements methods for conversion to and from a vector of real-valued parameters. The precise relation between a parameter vector and the matrices of the UCJ operator is somewhat complicated. In short, the parameter vector stores the entries of the UCJ matrices in a non-redundant way (for the orbital rotations, the parameter vector actually stores the entries of their generators.)

@@ -187,12 +187,12 @@

The unitary cluster Jastrow (UCJ) ansatz\n" ] } @@ -246,10 +246,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:37.427302Z", - "iopub.status.busy": "2023-10-28T19:16:37.426890Z", - "iopub.status.idle": "2023-10-28T19:16:40.431885Z", - "shell.execute_reply": "2023-10-28T19:16:40.431363Z" + "iopub.execute_input": "2023-10-28T19:57:09.514206Z", + "iopub.status.busy": "2023-10-28T19:57:09.513991Z", + "iopub.status.idle": "2023-10-28T19:57:12.848253Z", + "shell.execute_reply": "2023-10-28T19:57:12.847650Z" } }, "outputs": [ @@ -261,10 +261,10 @@ " message: STOP: TOTAL NO. of f AND g EVALUATIONS EXCEEDS LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.45803733775867\n", - " x: [-3.763e-01 8.442e-02 ... 5.733e-01 3.056e-01]\n", - " nit: 13\n", - " jac: [ 4.310e-03 -5.713e-04 ... 1.236e-04 -1.080e-04]\n", + " fun: -77.45981953688877\n", + " x: [-3.348e-01 7.867e-02 ... -5.151e-01 2.150e-01]\n", + " nit: 14\n", + " jac: [ 9.408e-04 8.114e-04 ... -3.837e-04 -1.720e-04]\n", " nfev: 1034\n", " njev: 22\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" diff --git a/tutorials/05-entanglement-forging.html b/tutorials/05-entanglement-forging.html index 5a714c950..fab50bb9b 100644 --- a/tutorials/05-entanglement-forging.html +++ b/tutorials/05-entanglement-forging.html @@ -139,7 +139,7 @@

Entanglement forging
-Energy at initialialization: -75.68366174447618
+Energy at initialialization: -75.68366174447617
 
@@ -162,17 +162,17 @@

The FermionOperator class
 FermionOperator({
-    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,
-    (cre_b(1), des_b(5), cre_a(4)): 12-12j,
-    (cre_a(3), des_a(0), cre_b(2)): -1,
+    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,
     (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,
+    (cre_b(2)): -5,
+    (cre_a(0), des_a(3)): 0-6j,
     (cre_a(0), des_a(3), cre_b(2)): 2,
+    (cre_a(3), des_a(0), cre_b(2)): -1,
+    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,
     (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,
-    (cre_a(0), des_a(3)): 0-6j,
-    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,
-    (cre_b(2)): -5,
-    (cre_a(3), des_a(0)): 0+3j,
-    (des_a(3), des_b(3)): 0-1.25j
+    (cre_b(1), des_b(5), cre_a(4)): 12-12j,
+    (des_a(3), des_b(3)): 0-1.25j,
+    (cre_a(3), des_a(0)): 0+3j
 })
 
@@ -193,15 +193,15 @@

The FermionOperator class
 FermionOperator({
-    (cre_b(2), cre_a(0), des_a(3)): 2,
-    (cre_b(2), cre_a(3), des_a(0)): -1,
-    (cre_b(2)): -5,
     (des_b(3), des_a(3)): 0+1.25j,
-    (cre_a(0), des_a(3)): 0-6j,
-    (cre_a(3), des_a(0)): 0+3j,
-    (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,
     (cre_b(1), cre_a(4), des_b(5)): -12+12j,
+    (cre_a(3), des_a(0)): 0+3j,
+    (cre_b(2)): -5,
+    (cre_a(0), des_a(3)): 0-6j,
     (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,
+    (cre_b(2), cre_a(0), des_a(3)): 2,
+    (cre_b(2), cre_a(3), des_a(0)): -1,
+    (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,
     (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j
 })
 
@@ -271,11 +271,11 @@

The FermionOperator class
-array([0.        +0.j        , 0.        +0.j        ,
-       0.        +0.j        , 0.        +0.j        ,
-       0.08907224+0.10710701j, 0.        +0.j        ,
-       0.        +0.j        , 0.        +0.j        ,
-       0.        +0.j        ])
+array([ 0.        +0.j        ,  0.        +0.j        ,
+        0.        +0.j        ,  0.        +0.j        ,
+       -0.10305872-0.08742954j,  0.        +0.j        ,
+        0.        +0.j        ,  0.        +0.j        ,
+        0.        +0.j        ])
 

It can also be passed into most linear algebra routines in scipy.sparse.linalg.

diff --git a/tutorials/06-fermion-operator.ipynb b/tutorials/06-fermion-operator.ipynb index c8773430e..9d930e5a6 100644 --- a/tutorials/06-fermion-operator.ipynb +++ b/tutorials/06-fermion-operator.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.258801Z", - "iopub.status.busy": "2023-10-28T19:16:46.258407Z", - "iopub.status.idle": "2023-10-28T19:16:46.576264Z", - "shell.execute_reply": "2023-10-28T19:16:46.575707Z" + "iopub.execute_input": "2023-10-28T19:57:19.232336Z", + "iopub.status.busy": "2023-10-28T19:57:19.231733Z", + "iopub.status.idle": "2023-10-28T19:57:19.578162Z", + "shell.execute_reply": "2023-10-28T19:57:19.577583Z" } }, "outputs": [ @@ -76,10 +76,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.580327Z", - "iopub.status.busy": "2023-10-28T19:16:46.579258Z", - "iopub.status.idle": "2023-10-28T19:16:46.585357Z", - "shell.execute_reply": "2023-10-28T19:16:46.584848Z" + "iopub.execute_input": "2023-10-28T19:57:19.582566Z", + "iopub.status.busy": "2023-10-28T19:57:19.581342Z", + "iopub.status.idle": "2023-10-28T19:57:19.589175Z", + "shell.execute_reply": "2023-10-28T19:57:19.587715Z" } }, "outputs": [ @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.589151Z", - "iopub.status.busy": "2023-10-28T19:16:46.588225Z", - "iopub.status.idle": "2023-10-28T19:16:46.594967Z", - "shell.execute_reply": "2023-10-28T19:16:46.594486Z" + "iopub.execute_input": "2023-10-28T19:57:19.594293Z", + "iopub.status.busy": "2023-10-28T19:57:19.593169Z", + "iopub.status.idle": "2023-10-28T19:57:19.600951Z", + "shell.execute_reply": "2023-10-28T19:57:19.600404Z" } }, "outputs": [ @@ -121,17 +121,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", - " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", - " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", + " (cre_b(2)): 0-0.25j,\n", + " (cre_a(0), des_a(3)): 1,\n", " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", + " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", - " (cre_a(0), des_a(3)): 1,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", - " (cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0)): -0.5,\n", - " (des_a(3), des_b(3)): 0.0625\n", + " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", + " (des_a(3), des_b(3)): 0.0625,\n", + " (cre_a(3), des_a(0)): -0.5\n", "})" ] }, @@ -169,10 +169,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.598743Z", - "iopub.status.busy": "2023-10-28T19:16:46.597834Z", - "iopub.status.idle": "2023-10-28T19:16:46.603779Z", - "shell.execute_reply": "2023-10-28T19:16:46.603254Z" + "iopub.execute_input": "2023-10-28T19:57:19.605319Z", + "iopub.status.busy": "2023-10-28T19:57:19.604259Z", + "iopub.status.idle": "2023-10-28T19:57:19.610844Z", + "shell.execute_reply": "2023-10-28T19:57:19.610295Z" } }, "outputs": [ @@ -180,17 +180,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", - " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", - " (cre_a(3), des_a(0), cre_b(2)): -1,\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", + " (cre_b(2)): -5,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", " (cre_a(0), des_a(3), cre_b(2)): 2,\n", + " (cre_a(3), des_a(0), cre_b(2)): -1,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", - " (cre_b(2)): -5,\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (des_a(3), des_b(3)): 0-1.25j\n", + " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", + " (des_a(3), des_b(3)): 0-1.25j,\n", + " (cre_a(3), des_a(0)): 0+3j\n", "})" ] }, @@ -219,10 +219,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.607583Z", - "iopub.status.busy": "2023-10-28T19:16:46.606671Z", - "iopub.status.idle": "2023-10-28T19:16:46.612323Z", - "shell.execute_reply": "2023-10-28T19:16:46.611842Z" + "iopub.execute_input": "2023-10-28T19:57:19.615183Z", + "iopub.status.busy": "2023-10-28T19:57:19.614121Z", + "iopub.status.idle": "2023-10-28T19:57:19.620462Z", + "shell.execute_reply": "2023-10-28T19:57:19.619906Z" } }, "outputs": [ @@ -230,15 +230,15 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(2), cre_a(0), des_a(3)): 2,\n", - " (cre_b(2), cre_a(3), des_a(0)): -1,\n", - " (cre_b(2)): -5,\n", " (des_b(3), des_a(3)): 0+1.25j,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", + " (cre_a(3), des_a(0)): 0+3j,\n", + " (cre_b(2)): -5,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", + " (cre_b(2), cre_a(0), des_a(3)): 2,\n", + " (cre_b(2), cre_a(3), des_a(0)): -1,\n", + " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j\n", "})" ] @@ -264,10 +264,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.617734Z", - "iopub.status.busy": "2023-10-28T19:16:46.616793Z", - "iopub.status.idle": "2023-10-28T19:16:46.622083Z", - "shell.execute_reply": "2023-10-28T19:16:46.621607Z" + "iopub.execute_input": "2023-10-28T19:57:19.626133Z", + "iopub.status.busy": "2023-10-28T19:57:19.624760Z", + "iopub.status.idle": "2023-10-28T19:57:19.630509Z", + "shell.execute_reply": "2023-10-28T19:57:19.629942Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.625116Z", - "iopub.status.busy": "2023-10-28T19:16:46.624737Z", - "iopub.status.idle": "2023-10-28T19:16:46.631157Z", - "shell.execute_reply": "2023-10-28T19:16:46.630690Z" + "iopub.execute_input": "2023-10-28T19:57:19.633520Z", + "iopub.status.busy": "2023-10-28T19:57:19.633053Z", + "iopub.status.idle": "2023-10-28T19:57:19.640063Z", + "shell.execute_reply": "2023-10-28T19:57:19.639527Z" } }, "outputs": [ @@ -340,21 +340,21 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.634656Z", - "iopub.status.busy": "2023-10-28T19:16:46.633709Z", - "iopub.status.idle": "2023-10-28T19:16:46.641478Z", - "shell.execute_reply": "2023-10-28T19:16:46.641007Z" + "iopub.execute_input": "2023-10-28T19:57:19.643130Z", + "iopub.status.busy": "2023-10-28T19:57:19.642713Z", + "iopub.status.idle": "2023-10-28T19:57:19.651068Z", + "shell.execute_reply": "2023-10-28T19:57:19.650576Z" } }, "outputs": [ { "data": { "text/plain": [ - "array([0. +0.j , 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " 0.08907224+0.10710701j, 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " 0. +0.j ])" + "array([ 0. +0.j , 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " -0.10305872-0.08742954j, 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0. +0.j ])" ] }, "execution_count": 8, @@ -379,10 +379,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2023-10-28T19:16:46.645524Z", - "iopub.status.busy": "2023-10-28T19:16:46.644271Z", - "iopub.status.idle": "2023-10-28T19:16:46.658301Z", - "shell.execute_reply": "2023-10-28T19:16:46.657816Z" + "iopub.execute_input": "2023-10-28T19:57:19.655097Z", + "iopub.status.busy": "2023-10-28T19:57:19.654074Z", + "iopub.status.idle": "2023-10-28T19:57:19.670028Z", + "shell.execute_reply": "2023-10-28T19:57:19.669485Z" } }, "outputs": [