From 1313a6e319a63d8c22cd5158355a6eb635da5cc3 Mon Sep 17 00:00:00 2001 From: kevinsung Date: Wed, 25 Oct 2023 21:12:21 +0000 Subject: [PATCH] deploy: a2dcfc749fd37410bc7cab067dd5d623596cab07 --- .doctrees/environment.pickle | Bin 1486869 -> 1486684 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 | 62 ++++----- .../tutorials/05-entanglement-forging.ipynb | 28 ++-- .../tutorials/06-fermion-operator.ipynb | 130 +++++++++--------- .doctrees/tutorials/04-lucj.doctree | Bin 38270 -> 38282 bytes .../tutorials/05-entanglement-forging.doctree | Bin 15242 -> 15248 bytes .../tutorials/06-fermion-operator.doctree | Bin 41445 -> 41385 bytes _modules/ffsim/states/states.html | 4 +- searchindex.js | 2 +- tutorials/01-introduction.ipynb | 24 ++-- tutorials/02-orbital-rotation.ipynb | 32 ++--- tutorials/03-double-factorized.ipynb | 80 +++++------ tutorials/04-lucj.html | 30 ++-- tutorials/04-lucj.ipynb | 62 ++++----- tutorials/05-entanglement-forging.html | 4 +- tutorials/05-entanglement-forging.ipynb | 28 ++-- tutorials/06-fermion-operator.html | 58 ++++---- tutorials/06-fermion-operator.ipynb | 130 +++++++++--------- 21 files changed, 404 insertions(+), 406 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index fb65047196bcc8631a31da57cf31e95ea0d2c6df..f3e199c6d3fd3b367bbde20e9552822d19773980 100644 GIT binary patch delta 20076 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 delta 19902 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 X_vaU|-{Quc\n" ] } @@ -251,10 +251,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:09:14.865332Z", - "iopub.status.busy": "2023-10-25T21:09:14.864901Z", - "iopub.status.idle": "2023-10-25T21:10:37.437724Z", - "shell.execute_reply": "2023-10-25T21:10:37.436770Z" + "iopub.execute_input": "2023-10-25T21:11:02.693400Z", + "iopub.status.busy": "2023-10-25T21:11:02.692958Z", + "iopub.status.idle": "2023-10-25T21:12:09.530144Z", + "shell.execute_reply": "2023-10-25T21:12:09.529410Z" } }, "outputs": [ @@ -266,12 +266,12 @@ " message: CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH\n", " success: True\n", " status: 0\n", - " fun: -77.62861910565934\n", - " x: [-5.297e-01 2.313e+00 ... 1.027e-01 -1.973e-02]\n", - " nit: 383\n", - " jac: [-1.620e-04 1.251e-04 ... -1.535e-04 -6.253e-05]\n", - " nfev: 19364\n", - " njev: 412\n", + " fun: -77.62770871564896\n", + " x: [-9.623e-01 -5.263e-01 ... -3.172e-02 -8.555e-01]\n", + " nit: 308\n", + " jac: [-3.837e-05 2.700e-05 ... -2.416e-04 1.307e-04]\n", + " nfev: 15510\n", + " njev: 330\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 f223132e7..3227f2554 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-25T21:10:39.414976Z", - "iopub.status.busy": "2023-10-25T21:10:39.414738Z", - "iopub.status.idle": "2023-10-25T21:10:40.046047Z", - "shell.execute_reply": "2023-10-25T21:10:40.045221Z" + "iopub.execute_input": "2023-10-25T21:12:11.673616Z", + "iopub.status.busy": "2023-10-25T21:12:11.672795Z", + "iopub.status.idle": "2023-10-25T21:12:12.348762Z", + "shell.execute_reply": "2023-10-25T21:12:12.348017Z" } }, "outputs": [ @@ -90,10 +90,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:40.051563Z", - "iopub.status.busy": "2023-10-25T21:10:40.050070Z", - "iopub.status.idle": "2023-10-25T21:10:40.086396Z", - "shell.execute_reply": "2023-10-25T21:10:40.085654Z" + "iopub.execute_input": "2023-10-25T21:12:12.355062Z", + "iopub.status.busy": "2023-10-25T21:12:12.353268Z", + "iopub.status.idle": "2023-10-25T21:12:12.386849Z", + "shell.execute_reply": "2023-10-25T21:12:12.385685Z" } }, "outputs": [ @@ -101,7 +101,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialialization: -75.6836617444762\n" + "Energy at initialialization: -75.68366174447624\n" ] } ], @@ -135,10 +135,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:40.091649Z", - "iopub.status.busy": "2023-10-25T21:10:40.090388Z", - "iopub.status.idle": "2023-10-25T21:10:42.961067Z", - "shell.execute_reply": "2023-10-25T21:10:42.959963Z" + "iopub.execute_input": "2023-10-25T21:12:12.391967Z", + "iopub.status.busy": "2023-10-25T21:12:12.390555Z", + "iopub.status.idle": "2023-10-25T21:12:15.143624Z", + "shell.execute_reply": "2023-10-25T21:12:15.142690Z" } }, "outputs": [ @@ -150,7 +150,7 @@ " message: Maximum number of function evaluations has been exceeded.\n", " success: False\n", " status: 2\n", - " fun: -75.6944813109705\n", + " fun: -75.6944813112037\n", " x: [ 1.354e+00 9.651e-02 -1.863e-03 1.095e+00 -2.132e-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 b2e5583ee..3ca87fe26 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-25T21:10:44.666327Z", - "iopub.status.busy": "2023-10-25T21:10:44.666058Z", - "iopub.status.idle": "2023-10-25T21:10:45.033749Z", - "shell.execute_reply": "2023-10-25T21:10:45.032787Z" + "iopub.execute_input": "2023-10-25T21:12:16.968803Z", + "iopub.status.busy": "2023-10-25T21:12:16.968376Z", + "iopub.status.idle": "2023-10-25T21:12:17.351575Z", + "shell.execute_reply": "2023-10-25T21:12:17.350726Z" } }, "outputs": [ @@ -40,9 +40,9 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(0), des_a(3)): 0.5,\n", + " (cre_b(1), des_b(5), cre_a(4)): 1+1j,\n", " (cre_a(3), des_a(0)): -0.25,\n", - " (cre_b(1), des_b(5), cre_a(4)): 1+1j\n", + " (cre_a(0), des_a(3)): 0.5\n", "})" ] }, @@ -76,17 +76,17 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.037258Z", - "iopub.status.busy": "2023-10-25T21:10:45.036654Z", - "iopub.status.idle": "2023-10-25T21:10:45.041873Z", - "shell.execute_reply": "2023-10-25T21:10:45.041283Z" + "iopub.execute_input": "2023-10-25T21:12:17.356987Z", + "iopub.status.busy": "2023-10-25T21:12:17.355642Z", + "iopub.status.idle": "2023-10-25T21:12:17.363335Z", + "shell.execute_reply": "2023-10-25T21:12:17.362598Z" } }, "outputs": [ { "data": { "text/plain": [ - "'FermionOperator({((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j, ((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j})'" + "'FermionOperator({((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j, ((True, False, 3), (False, False, 0)): -0.25+0j, ((True, False, 0), (False, False, 3)): 0.5+0j})'" ] }, "execution_count": 2, @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.045016Z", - "iopub.status.busy": "2023-10-25T21:10:45.044557Z", - "iopub.status.idle": "2023-10-25T21:10:45.052305Z", - "shell.execute_reply": "2023-10-25T21:10:45.051673Z" + "iopub.execute_input": "2023-10-25T21:12:17.368227Z", + "iopub.status.busy": "2023-10-25T21:12:17.366987Z", + "iopub.status.idle": "2023-10-25T21:12:17.375257Z", + "shell.execute_reply": "2023-10-25T21:12:17.374563Z" } }, "outputs": [ @@ -121,17 +121,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0)): -0.5,\n", - " (cre_a(0), des_a(3)): 1,\n", - " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", - " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\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), cre_b(2)): 0+0.5j,\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_b(1), des_b(5), cre_a(4)): 2+2j,\n", " (des_a(3), des_b(3)): 0.0625,\n", - " (cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", + " (cre_a(3), des_a(0)): -0.5\n", "})" ] }, @@ -169,10 +169,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.055512Z", - "iopub.status.busy": "2023-10-25T21:10:45.054924Z", - "iopub.status.idle": "2023-10-25T21:10:45.059637Z", - "shell.execute_reply": "2023-10-25T21:10:45.058917Z" + "iopub.execute_input": "2023-10-25T21:12:17.380175Z", + "iopub.status.busy": "2023-10-25T21:12:17.378948Z", + "iopub.status.idle": "2023-10-25T21:12:17.387303Z", + "shell.execute_reply": "2023-10-25T21:12:17.386448Z" } }, "outputs": [ @@ -180,17 +180,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", - " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", - " (cre_a(0), des_a(3), cre_b(2)): 2,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\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), cre_b(2)): 2,\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_b(1), des_b(5), cre_a(4)): 12-12j,\n", " (des_a(3), des_b(3)): 0-1.25j,\n", - " (cre_b(2)): -5,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", + " (cre_a(3), des_a(0)): 0+3j\n", "})" ] }, @@ -219,10 +219,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.062610Z", - "iopub.status.busy": "2023-10-25T21:10:45.062190Z", - "iopub.status.idle": "2023-10-25T21:10:45.069055Z", - "shell.execute_reply": "2023-10-25T21:10:45.068285Z" + "iopub.execute_input": "2023-10-25T21:12:17.392188Z", + "iopub.status.busy": "2023-10-25T21:12:17.391005Z", + "iopub.status.idle": "2023-10-25T21:12:17.398439Z", + "shell.execute_reply": "2023-10-25T21:12:17.397662Z" } }, "outputs": [ @@ -230,16 +230,16 @@ "data": { "text/plain": [ "FermionOperator({\n", + " (des_b(3), des_a(3)): 0+1.25j,\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", - " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", - " (cre_b(2)): -5,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(2), cre_a(3), des_a(0)): -1,\n", " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", - " (des_b(3), des_a(3)): 0+1.25j,\n", - " (cre_b(2), cre_a(0), des_a(3)): 2\n", + " (cre_b(2), cre_a(0), des_a(3)): 2,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_b(2), cre_a(3), des_a(0)): -1,\n", + " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", + " (cre_b(2)): -5,\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-25T21:10:45.072230Z", - "iopub.status.busy": "2023-10-25T21:10:45.071639Z", - "iopub.status.idle": "2023-10-25T21:10:45.075787Z", - "shell.execute_reply": "2023-10-25T21:10:45.075129Z" + "iopub.execute_input": "2023-10-25T21:12:17.403156Z", + "iopub.status.busy": "2023-10-25T21:12:17.401916Z", + "iopub.status.idle": "2023-10-25T21:12:17.408621Z", + "shell.execute_reply": "2023-10-25T21:12:17.407963Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.079733Z", - "iopub.status.busy": "2023-10-25T21:10:45.079372Z", - "iopub.status.idle": "2023-10-25T21:10:45.087071Z", - "shell.execute_reply": "2023-10-25T21:10:45.086312Z" + "iopub.execute_input": "2023-10-25T21:12:17.413202Z", + "iopub.status.busy": "2023-10-25T21:12:17.411778Z", + "iopub.status.idle": "2023-10-25T21:12:17.420533Z", + "shell.execute_reply": "2023-10-25T21:12:17.419894Z" } }, "outputs": [ @@ -340,21 +340,21 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.090173Z", - "iopub.status.busy": "2023-10-25T21:10:45.089844Z", - "iopub.status.idle": "2023-10-25T21:10:45.100075Z", - "shell.execute_reply": "2023-10-25T21:10:45.099224Z" + "iopub.execute_input": "2023-10-25T21:12:17.424260Z", + "iopub.status.busy": "2023-10-25T21:12:17.423766Z", + "iopub.status.idle": "2023-10-25T21:12:17.434001Z", + "shell.execute_reply": "2023-10-25T21:12:17.433242Z" } }, "outputs": [ { "data": { "text/plain": [ - "array([ 0. +0.j , 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " -0.15725357-0.17502038j, 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.05261902-0.11277367j, 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-25T21:10:45.103541Z", - "iopub.status.busy": "2023-10-25T21:10:45.102951Z", - "iopub.status.idle": "2023-10-25T21:10:45.121719Z", - "shell.execute_reply": "2023-10-25T21:10:45.120911Z" + "iopub.execute_input": "2023-10-25T21:12:17.437184Z", + "iopub.status.busy": "2023-10-25T21:12:17.436716Z", + "iopub.status.idle": "2023-10-25T21:12:17.453924Z", + "shell.execute_reply": "2023-10-25T21:12:17.453177Z" } }, "outputs": [ diff --git a/.doctrees/tutorials/04-lucj.doctree b/.doctrees/tutorials/04-lucj.doctree index 2a7c9249a9d1de2dbfc778a502c2fa90ed79d2ff..8f0c26e515bd4a9b85a75dc90806b9b155421d37 100644 GIT binary patch delta 2626 zcmeyjim7Wg6H5c@)cTDq&-fY5Cl?BsOqLf2WHjGgD8R`G7Lc1fQ*a)fr9Qbn@gi8SmDy$TubxriljLlPZ4Ga}@4fQNdOuX31CWf7u?0vb7OFWfv&2fl#J~W`%}PuLnx$Z*XJTjuRA#E6V5(3`o_s&VV{$@+ z`cU`8=E?C*Za`1SP5u@dN?J@*$K<5smlW4hEjp@QVJ7ODlM^Rg3K^-z#W9l|VoZPu zHhEb33X&CP+OgQ2OJiG`&Z zYVl>MXJ%v!EKGpKm#LnS8H5Qga*Xv1&5eLEMhdzXdZwn}f(@nk0+u)^#h0$Jo&~rl z1eQ@odgcZO;Nl8omYFWBWHSNfLt_I_fr(mt8Je0JLQ6wP@nsCG6IM5Zimz!y)cKoN zH)b=E>UMZ}1q@AUgujCV!bGwnVe{2y{-N)S$yb{L!A*cat@lWclEIQ2`rA(oU8h@b JcJDOj0RZ@uY}x<- delta 2518 zcmeBL&Gc^-6H5c@)Z&dS&-fY5CKn2rOqLf2WHj4cD8R`G7Lc1fQ*a)fr9P>RV{)s| zRIq@~WOrd72y62J;bu+ta+`vpR6DN8c@7p#CdQKm?e)bixNP)6f>ScsW2a=;^KT|CrD_`(DCp_wDJYohnVMOG zWpvH;3@r>m%vh-Ayv!0S1!GGSC^suH8EBS*v7V(lNQbF{uA!cV3CLJeuvxm6dVH29 z7C^ok$Qlz%qsfXf!a}BoPy_O^Qp>CqObjh1KM(QXfCN&+&~o->mV=B848Z8qnLN8m zZ1RK9Vv<6;@%FrYa=fY?|#8Rax&U2eU(G3K38y@i>frJ;eTnW?2Qtb|Zd0GBqVdPbJe z(#A;7*w7eJ+5ih5BZv&J?65R929^~@sHKgCF-mCzRAy!bDwIq>MT(KBA(#m&xy*o4 zrpBgVzOETi3S^im)UdoXP*G!OX>5j8_83jx-smwor(xOT?$}F{ diff --git a/.doctrees/tutorials/05-entanglement-forging.doctree b/.doctrees/tutorials/05-entanglement-forging.doctree index 7369663925a454218d2d7329cecda7eceb2d8112..b7e8937743a29440b93e91a1680e7417d48d6fa1 100644 GIT binary patch delta 201 zcmeAwpHR-yz&f>cBTJ$@yNyjjQK}u+(%3>gvJ$?1BxQFvmL_vpWai+qE#5;k)gHE;p|t>Qzd delta 192 zcmbPG-c`=hz&f>lBTJ$@qxIy~@+JaYHu?ocsdiH`*kh+;*!6$~CqIxcX3U@Lud6e; zK|ycwdIeb&p4enN#dt=&$s6VMIAQw0yv?ji>71+vmgWYgn+vs>86nKch1%(xALwWz lxCxW<^lrf=K|E2Qk(`rH>pz8y#!nV8oQ~ja<~M5O1OTWRJn#Sj diff --git a/.doctrees/tutorials/06-fermion-operator.doctree b/.doctrees/tutorials/06-fermion-operator.doctree index 9253ab2e84a260583e5f5dc7318576a1c518c907..eab17f18cf8891f3bfbdeb9a7781863f3cb463fe 100644 GIT binary patch delta 2107 zcmcIkTS!xJ7}u#gI-R>{+i_Z(b56%}p6$51N(H*voX(!gn(U@dyC@^*LfT#e!`XvB z!ywY2r@%BB5fqXnMP%7iPa4#N^pL5qDqYUZAToT|^x<&+=llM@-*@?a-&vYvJ(y*s zhSP41PNnvVV67u@PE6o_T^=3Q9# ziY_u2rvo`G20lif+0EUZcV}1jPD#mb{^+XYIveW>8ZU~hm{1b9r#J*cZrx$~Ab-8X zMkzY~W0RmKl7Xh;i#vQLmCAo@QDMoKbSA@MOjCSJ)a9dGD}*BnX?#2$Li} zdI@M8Igpu(31$GwV?#4W%J9t4xR0UOzeC}NX>70i#APbr^s0t~gnKwxgI=?2uOl!5 zM?=+RvB9atxV;oJK@MgtY-VT*&|>1Cx2Y71HUl=?m3T*ySgA9k+wO=JO{r-FY_Z{p z3+k(%+g3%lEq(zeeVJHuD457u%-Zt6bLMZo!^hN6`;1#^e|1)Y=V-=SAT623C|QWg zhCliy!gM}Qfk@-kc*~i0spEu3pC2FLz}TU}d$(w)y@XlbY>e0DV#1z|aH|S$TVQ>f-2^lgKr&DEVt5$z#n^FV#!yAyZ)n$5OU_p#8aOd-}MB_+X~qmeckyUPB)!`v02s$a0D uY#jJ+gjiL{aQQVuBShSJorsW-4iJ07)SD66OtepngBgjlM3--_3x5FuH}5_G delta 2282 zcmcJQT}YE*6vzGCbenFk>Gp1JZuv2rPJQS0x~ZjC&acfcD3aQAo8~l0vB(M)Z^8@} z;ctco&MqS}V{~I*h7=WuS3#7C5z&oVw?$abJG^p27j9SQaL#l7oag)w&vSPr>g!5W z%y8_D4-aF8r1+>v#vQ31`UYimuAvK`rKX_R1=%aio5eg`iH6B%v0zKZMLHQiivq*7 zF@Z84efEDxdgQl*lsgsKdt?3|imN>Ev$F6-OW{*y4rVfq;HQ@c#ondA4vI0Eo%_TT zaNdkZeO7-^u34+y8}lb+e~ZJtCMr6Q$;S(+3MzvLV~rB5GFr?Q>Y-|)p{Y+m8Y2n# z)tFT!? zM%KZDL?Ok7mBpkr8D;f}5SK`yvGUMf$==aDo zFjhAZw%M#Trjc)sA8~yu>=y=yPP?mQ#nhDh=`)6XC4nlZ6tJJXt8O z66+2lPB?UE@hY(8G#;q_QR_?0nS|JAOU5%-4pi-WG}nmm#9hI?v4JJnsg+{KCBpr- zTujyok>bw9v`3EzZ9<%DqXK~Kp6UbZa3H(eFCFMUS30x@srMIk{#H>`WJJW#-oExS zfvd02b@|9CP@^Source code for ffsim.states.states
     Returns:
         The one-particle reduced density matrix of the Slater determinant.
     """
-    # TODO figure out why mypy complains about this line with
-    # error: Need type annotation for "one_rdm"  [var-annotated]
-    one_rdm = np.zeros((2 * norb, 2 * norb), dtype=complex)  # type: ignore
+    one_rdm = np.zeros((2 * norb, 2 * norb), dtype=complex)
     alpha_orbitals = np.array(occupied_orbitals[0])
     beta_orbitals = np.array(occupied_orbitals[1]) + norb
     one_rdm[(alpha_orbitals, alpha_orbitals)] = 1
diff --git a/searchindex.js b/searchindex.js
index 8c146e16d..d2795f920 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, 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], "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, 9, 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, "creat": [0, 6, 7, 8, 9, 11], "new": [0, 7, 11], "instanc": [0, 3, 7, 8], "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], "tupl": [0, 1, 2, 4, 8, 11], "complex": [0, 1, 2, 3], "conserves_particle_numb": [0, 11], "conserv": [0, 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], "supportslinearoper": [0, 5], "convert": [0, 1, 6, 7, 8, 11], "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, 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, "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, 9], "atol": [0, 2], "equal": 0, "isclos": 0, "interpret": 0, "rel": [0, 2], "numer": [0, 2, 11], "up": [0, 7], "cre": [0, 5], "cre_a": [0, 5, 11], "cre_b": [0, 5, 11], "de": [0, 5], "destroi": [0, 11], "des_a": [0, 5, 11], "des_b": [0, 5, 11], "dim": [0, 3, 5, 6, 11], "get": [0, 7, 8, 9, 10], "dimens": [0, 3, 6], "fci": [0, 6, 9, 10], "dim_a": [0, 6], "dim_b": [0, 6], "expectation_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_product": [0, 5], "o_1": 0, "o_2": 0, "dot": 0, "o_k": 0, "indices_to_str": [0, 5], "statevector": [0, 6, 7], "bitstr": 0, "exampl": [0, 6, 7, 9, 11], "3": [0, 6, 7, 8, 9, 10, 11], "rang": [0, 6, 7, 8, 9], "assert": [0, 6], "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, 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, 8, 9], "occupied_orbit": [0, 6, 7, 8, 9], "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], "diag_coulomb_linop": [1, 5], "implement": [1, 6, 7, 9], "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, "exce": 2, "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, "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, 8, 9, 10], "n_beta": [4, 6, 7, 8, 9, 10], "random_occupied_orbit": [4, 5], "occ_a": 4, "occ_b": 4, "preserv": [5, 11], "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], "how": [6, 7, 8, 9, 10, 11], "import": [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, "standard": 6, "often": [6, 9], "simpli": [6, 7], "reshap": 6, "reshaped_vec": 6, "choic": 6, "pyscf": [6, 8, 9, 10], "modul": 6, "tutori": [7, 8, 9, 10], "ffsim": [7, 8, 9, 10, 11], "fundament": 7, "mode": 7, "sum_j": 7, "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, "illustr": 7, "purpos": 7, "explicitli": 7, "eigh": [7, 8], "evolved_vec": 7, "conj": 7, "undo": 7, "expected_phas": 7, "1j": [7, 8, 11], "assert_allclos": 7, "mention": [7, 8], "abov": [7, 8, 11], "below": [7, 8, 9], "better": [7, 8], "4": [7, 8, 9, 10, 11], "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, 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], "09243819e": 8, "16": 8, "7": [8, 9, 11], "48351655e": 8, "17": 8, "77238770e": 8, "5": [8, 9, 10, 11], "23173938e": 8, "00678144e": 8, "19": 8, "33545754e": 8, "85364508e": 8, "18": 8, "48240570e": 8, "17688164e": 8, "05429868e": 8, "53132024e": 8, "21318608e": 8, "00": [8, 9, 10], "03109072e": 8, "30334814e": 8, "07792507e": 8, "14653029e": 8, "44655364e": 8, "30": 8, "11022302e": 8, "52090881e": 8, "03": [8, 10], "00000000e": 8, "07106781e": 8, "45733039e": 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], "now": 8, "later": 8, "exact_st": 8, "expm_multipli": 8, "tracea": 8, "fidel": 8, "ab": 8, "9696296369955065": 8, "final_st": [8, 9], "9990275744083491": 8, "improv": 8, "increas": 8, "10": 8, "999990623310968": 8, "commonli": 8, "known": 8, "fourth": 8, "reproduc": 8, "9": [8, 9, 10, 11], "fewer": 8, "9999999336740071": 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, "6290254326716": 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], "49387212754471": 9, "e_corr": 9, "04824536314851433": 9, "4697560002168": 9, "facilit": 9, "convers": 9, "precis": 9, "somewhat": 9, "complic": 9, "short": 9, "entri": 9, "non": 9, "redund": 9, "associ": [9, 11], "fun": [9, 10], "x": [9, 10], "x0": [9, 10], "maxfun": 9, "50000": 9, "len": [9, 10], "72": 9, "messag": [9, 10], "rel_reduction_of_f_": 9, "lt": 9, "_factr": 9, "epsmch": 9, "success": [9, 10], "statu": [9, 10], "6290228062909": 9, "617e": 9, "052e": 9, "569e": 9, "180e": 9, "nit": 9, "394": 9, "jac": 9, "979e": 9, "847e": 9, "948e": 9, "06": 9, "492e": 9, "04": 9, "nfev": [9, 10], "30514": 9, "njev": 9, "418": 9, "hess_inv": 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, "62861910565934": 9, "297e": 9, "313e": 9, "027e": 9, "973e": 9, "02": [9, 10], "383": 9, "620e": 9, "251e": 9, "535e": 9, "253e": 9, "19364": 9, "412": 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, "6836617444762": 10, "cobyla": 10, "maxit": 10, "100": 10, "evalu": 10, "exceed": 10, "6944813109705": 10, "354e": 10, "651e": 10, "863e": 10, "095e": 10, "132e": 10, "maxcv": 10, "25": 11, "Such": 11, "programmat": 11, "dictionari": 11, "hash": 11, "tabl": 11, "three": 11, "piec": 11, "being": 11, "upon": 11, "intern": 11, "itself": 11, "recommend": 11, "helper": 11, "shown": 11, "op1": 11, "repr": 11, "view": 11, "displai": 11, "39": 11, "0j": 11, "arithmet": 11, "multipli": 11, "scalar": 11, "go": 11, "op": 11, "op2": 11, "op3": 11, "125": 11, "5j": 11, "25j": 11, "2j": 11, "0625": 11, "good": 11, "awar": 11, "especi": 11, "avoid": 11, "These": 11, "subtract": 11, "divis": 11, "3j": 11, "6j": 11, "4j": 11, "12j": 11, "far": 11, "criteria": 11, "op4": 11, "linop": 11, "onto": 11, "15725357": 11, "17502038j": 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, "", "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_power"], [0, 5, 1, "", "expectation_product"], [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, "", "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"]], "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_power() (in module ffsim)": [[0, "ffsim.expectation_power"]], "expectation_product() (in module ffsim)": [[0, "ffsim.expectation_product"]], "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"]], "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"]], "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, 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], "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, 9, 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, "creat": [0, 6, 7, 8, 9, 11], "new": [0, 7, 11], "instanc": [0, 3, 7, 8], "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], "tupl": [0, 1, 2, 4, 8, 11], "complex": [0, 1, 2, 3], "conserves_particle_numb": [0, 11], "conserv": [0, 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], "supportslinearoper": [0, 5], "convert": [0, 1, 6, 7, 8, 11], "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, 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, "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, 9], "atol": [0, 2], "equal": 0, "isclos": 0, "interpret": 0, "rel": [0, 2], "numer": [0, 2, 11], "up": [0, 7], "cre": [0, 5], "cre_a": [0, 5, 11], "cre_b": [0, 5, 11], "de": [0, 5], "destroi": [0, 11], "des_a": [0, 5, 11], "des_b": [0, 5, 11], "dim": [0, 3, 5, 6, 11], "get": [0, 7, 8, 9, 10], "dimens": [0, 3, 6], "fci": [0, 6, 9, 10], "dim_a": [0, 6], "dim_b": [0, 6], "expectation_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_product": [0, 5], "o_1": 0, "o_2": 0, "dot": 0, "o_k": 0, "indices_to_str": [0, 5], "statevector": [0, 6, 7], "bitstr": 0, "exampl": [0, 6, 7, 9, 11], "3": [0, 6, 7, 8, 9, 10, 11], "rang": [0, 6, 7, 8, 9], "assert": [0, 6], "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, 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, 8, 9], "occupied_orbit": [0, 6, 7, 8, 9], "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], "diag_coulomb_linop": [1, 5], "implement": [1, 6, 7, 9], "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, "exce": 2, "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, "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, 8, 9, 10], "n_beta": [4, 6, 7, 8, 9, 10], "random_occupied_orbit": [4, 5], "occ_a": 4, "occ_b": 4, "preserv": [5, 11], "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], "how": [6, 7, 8, 9, 10, 11], "import": [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, "standard": 6, "often": [6, 9], "simpli": [6, 7], "reshap": 6, "reshaped_vec": 6, "choic": 6, "pyscf": [6, 8, 9, 10], "modul": 6, "tutori": [7, 8, 9, 10], "ffsim": [7, 8, 9, 10, 11], "fundament": 7, "mode": 7, "sum_j": 7, "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, "illustr": 7, "purpos": 7, "explicitli": 7, "eigh": [7, 8], "evolved_vec": 7, "conj": 7, "undo": 7, "expected_phas": 7, "1j": [7, 8, 11], "assert_allclos": 7, "mention": [7, 8], "abov": [7, 8, 11], "below": [7, 8, 9], "better": [7, 8], "4": [7, 8, 9, 10, 11], "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, 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], "09243819e": 8, "16": 8, "7": [8, 9, 11], "48351655e": 8, "17": 8, "77238770e": 8, "5": [8, 9, 10, 11], "23173938e": 8, "00678144e": 8, "19": 8, "33545754e": 8, "85364508e": 8, "18": 8, "48240570e": 8, "17688164e": 8, "05429868e": 8, "53132024e": 8, "21318608e": 8, "00": [8, 9, 10], "03109072e": 8, "30334814e": 8, "07792507e": 8, "14653029e": 8, "44655364e": 8, "30": 8, "11022302e": 8, "52090881e": 8, "03": [8, 10], "00000000e": 8, "07106781e": 8, "45733039e": 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], "now": 8, "later": 8, "exact_st": 8, "expm_multipli": 8, "tracea": 8, "fidel": 8, "ab": 8, "9696296369955065": 8, "final_st": [8, 9], "9990275744083491": 8, "improv": 8, "increas": 8, "10": 8, "999990623310968": 8, "commonli": 8, "known": 8, "fourth": 8, "reproduc": 8, "9": [8, 9, 10, 11], "fewer": 8, "9999999336740071": 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], "49387212754471": 9, "e_corr": 9, "04824536314851303": 9, "46975600021699": 9, "facilit": 9, "convers": 9, "precis": 9, "somewhat": 9, "complic": 9, "short": 9, "entri": 9, "non": 9, "redund": 9, "associ": [9, 11], "fun": [9, 10], "x": [9, 10], "x0": [9, 10], "maxfun": 9, "50000": 9, "len": [9, 10], "72": 9, "messag": [9, 10], "rel_reduction_of_f_": 9, "lt": 9, "_factr": 9, "epsmch": 9, "success": [9, 10], "statu": [9, 10], "62901375934794": 9, "637e": 9, "945e": 9, "034e": 9, "238e": 9, "nit": 9, "400": 9, "jac": 9, "416e": 9, "684e": 9, "105e": 9, "194e": 9, "04": 9, "nfev": [9, 10], "30879": 9, "njev": 9, "423": 9, "hess_inv": 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, "62770871564896": 9, "623e": 9, "263e": 9, "172e": 9, "02": [9, 10], "555e": 9, "308": 9, "837e": 9, "700e": 9, "307e": 9, "15510": 9, "330": 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, "68366174447624": 10, "cobyla": 10, "maxit": 10, "100": 10, "evalu": 10, "exceed": 10, "6944813112037": 10, "354e": 10, "651e": 10, "863e": 10, "095e": 10, "132e": 10, "maxcv": 10, "25": 11, "Such": 11, "programmat": 11, "dictionari": 11, "hash": 11, "tabl": 11, "three": 11, "piec": 11, "being": 11, "upon": 11, "intern": 11, "itself": 11, "recommend": 11, "helper": 11, "shown": 11, "op1": 11, "repr": 11, "view": 11, "displai": 11, "39": 11, "0j": 11, "arithmet": 11, "multipli": 11, "scalar": 11, "go": 11, "op": 11, "op2": 11, "op3": 11, "25j": 11, "0625": 11, "5j": 11, "125": 11, "2j": 11, "good": 11, "awar": 11, "especi": 11, "avoid": 11, "These": 11, "subtract": 11, "divis": 11, "4j": 11, "6j": 11, "12j": 11, "3j": 11, "far": 11, "criteria": 11, "op4": 11, "linop": 11, "onto": 11, "05261902": 11, "11277367j": 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, "", "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_power"], [0, 5, 1, "", "expectation_product"], [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, "", "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"]], "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_power() (in module ffsim)": [[0, "ffsim.expectation_power"]], "expectation_product() (in module ffsim)": [[0, "ffsim.expectation_product"]], "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"]], "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"]], "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 d47f2cc0e..f1cb415c1 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-25T21:06:54.588592Z",
-     "iopub.status.busy": "2023-10-25T21:06:54.588000Z",
-     "iopub.status.idle": "2023-10-25T21:06:54.983656Z",
-     "shell.execute_reply": "2023-10-25T21:06:54.982821Z"
+     "iopub.execute_input": "2023-10-25T21:08:37.370047Z",
+     "iopub.status.busy": "2023-10-25T21:08:37.369618Z",
+     "iopub.status.idle": "2023-10-25T21:08:37.729712Z",
+     "shell.execute_reply": "2023-10-25T21:08:37.728661Z"
     }
    },
    "outputs": [],
@@ -62,10 +62,10 @@
    "execution_count": 2,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:54.987917Z",
-     "iopub.status.busy": "2023-10-25T21:06:54.987520Z",
-     "iopub.status.idle": "2023-10-25T21:06:54.992694Z",
-     "shell.execute_reply": "2023-10-25T21:06:54.991423Z"
+     "iopub.execute_input": "2023-10-25T21:08:37.734177Z",
+     "iopub.status.busy": "2023-10-25T21:08:37.733587Z",
+     "iopub.status.idle": "2023-10-25T21:08:37.738009Z",
+     "shell.execute_reply": "2023-10-25T21:08:37.737381Z"
     }
    },
    "outputs": [],
@@ -93,10 +93,10 @@
    "execution_count": 3,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:54.996114Z",
-     "iopub.status.busy": "2023-10-25T21:06:54.995720Z",
-     "iopub.status.idle": "2023-10-25T21:06:55.000745Z",
-     "shell.execute_reply": "2023-10-25T21:06:54.999964Z"
+     "iopub.execute_input": "2023-10-25T21:08:37.741569Z",
+     "iopub.status.busy": "2023-10-25T21:08:37.741092Z",
+     "iopub.status.idle": "2023-10-25T21:08:37.744522Z",
+     "shell.execute_reply": "2023-10-25T21:08:37.743856Z"
     }
    },
    "outputs": [],
diff --git a/tutorials/02-orbital-rotation.ipynb b/tutorials/02-orbital-rotation.ipynb
index 5094d123b..3235216ef 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-25T21:06:57.080519Z",
-     "iopub.status.busy": "2023-10-25T21:06:57.080023Z",
-     "iopub.status.idle": "2023-10-25T21:06:57.466704Z",
-     "shell.execute_reply": "2023-10-25T21:06:57.465754Z"
+     "iopub.execute_input": "2023-10-25T21:08:39.742918Z",
+     "iopub.status.busy": "2023-10-25T21:08:39.742349Z",
+     "iopub.status.idle": "2023-10-25T21:08:40.131149Z",
+     "shell.execute_reply": "2023-10-25T21:08:40.130262Z"
     }
    },
    "outputs": [],
@@ -111,10 +111,10 @@
    "execution_count": 2,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:57.471609Z",
-     "iopub.status.busy": "2023-10-25T21:06:57.471207Z",
-     "iopub.status.idle": "2023-10-25T21:06:57.509773Z",
-     "shell.execute_reply": "2023-10-25T21:06:57.508635Z"
+     "iopub.execute_input": "2023-10-25T21:08:40.135978Z",
+     "iopub.status.busy": "2023-10-25T21:08:40.135513Z",
+     "iopub.status.idle": "2023-10-25T21:08:40.175106Z",
+     "shell.execute_reply": "2023-10-25T21:08:40.174099Z"
     }
    },
    "outputs": [],
@@ -158,10 +158,10 @@
    "execution_count": 3,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:57.513608Z",
-     "iopub.status.busy": "2023-10-25T21:06:57.513367Z",
-     "iopub.status.idle": "2023-10-25T21:06:57.535938Z",
-     "shell.execute_reply": "2023-10-25T21:06:57.535161Z"
+     "iopub.execute_input": "2023-10-25T21:08:40.180565Z",
+     "iopub.status.busy": "2023-10-25T21:08:40.179394Z",
+     "iopub.status.idle": "2023-10-25T21:08:40.194618Z",
+     "shell.execute_reply": "2023-10-25T21:08:40.193830Z"
     }
    },
    "outputs": [],
@@ -201,10 +201,10 @@
    "execution_count": 4,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:57.539737Z",
-     "iopub.status.busy": "2023-10-25T21:06:57.539509Z",
-     "iopub.status.idle": "2023-10-25T21:06:57.546884Z",
-     "shell.execute_reply": "2023-10-25T21:06:57.546144Z"
+     "iopub.execute_input": "2023-10-25T21:08:40.198998Z",
+     "iopub.status.busy": "2023-10-25T21:08:40.197895Z",
+     "iopub.status.idle": "2023-10-25T21:08:40.205019Z",
+     "shell.execute_reply": "2023-10-25T21:08:40.204228Z"
     }
    },
    "outputs": [],
diff --git a/tutorials/03-double-factorized.ipynb b/tutorials/03-double-factorized.ipynb
index 53fcc317f..7cd5fa759 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-25T21:06:59.408368Z",
-     "iopub.status.busy": "2023-10-25T21:06:59.407942Z",
-     "iopub.status.idle": "2023-10-25T21:06:59.914950Z",
-     "shell.execute_reply": "2023-10-25T21:06:59.913923Z"
+     "iopub.execute_input": "2023-10-25T21:08:41.954783Z",
+     "iopub.status.busy": "2023-10-25T21:08:41.954389Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.447245Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.446529Z"
     }
    },
    "outputs": [
@@ -92,10 +92,10 @@
    "execution_count": 2,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:59.928012Z",
-     "iopub.status.busy": "2023-10-25T21:06:59.927218Z",
-     "iopub.status.idle": "2023-10-25T21:06:59.934847Z",
-     "shell.execute_reply": "2023-10-25T21:06:59.934060Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.465427Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.465038Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.472055Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.471478Z"
     }
    },
    "outputs": [
@@ -226,10 +226,10 @@
    "execution_count": 3,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:59.938180Z",
-     "iopub.status.busy": "2023-10-25T21:06:59.937705Z",
-     "iopub.status.idle": "2023-10-25T21:06:59.943294Z",
-     "shell.execute_reply": "2023-10-25T21:06:59.942655Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.475371Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.474914Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.480136Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.479530Z"
     }
    },
    "outputs": [],
@@ -284,10 +284,10 @@
    "execution_count": 4,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:59.946847Z",
-     "iopub.status.busy": "2023-10-25T21:06:59.946279Z",
-     "iopub.status.idle": "2023-10-25T21:06:59.950923Z",
-     "shell.execute_reply": "2023-10-25T21:06:59.950186Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.483229Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.482635Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.487395Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.486648Z"
     }
    },
    "outputs": [],
@@ -324,10 +324,10 @@
    "execution_count": 5,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:59.954158Z",
-     "iopub.status.busy": "2023-10-25T21:06:59.953707Z",
-     "iopub.status.idle": "2023-10-25T21:06:59.959974Z",
-     "shell.execute_reply": "2023-10-25T21:06:59.959325Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.490423Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.490047Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.496121Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.495452Z"
     }
    },
    "outputs": [
@@ -366,10 +366,10 @@
    "execution_count": 6,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:59.963539Z",
-     "iopub.status.busy": "2023-10-25T21:06:59.962917Z",
-     "iopub.status.idle": "2023-10-25T21:06:59.978690Z",
-     "shell.execute_reply": "2023-10-25T21:06:59.977952Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.499169Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.498798Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.513602Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.512833Z"
     }
    },
    "outputs": [
@@ -408,10 +408,10 @@
    "execution_count": 7,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:59.982423Z",
-     "iopub.status.busy": "2023-10-25T21:06:59.982004Z",
-     "iopub.status.idle": "2023-10-25T21:06:59.992865Z",
-     "shell.execute_reply": "2023-10-25T21:06:59.992152Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.517185Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.516593Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.526898Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.526265Z"
     }
    },
    "outputs": [
@@ -449,10 +449,10 @@
    "execution_count": 8,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:06:59.995810Z",
-     "iopub.status.busy": "2023-10-25T21:06:59.995534Z",
-     "iopub.status.idle": "2023-10-25T21:07:00.054646Z",
-     "shell.execute_reply": "2023-10-25T21:07:00.053963Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.529939Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.529675Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.591076Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.589087Z"
     }
    },
    "outputs": [
@@ -492,10 +492,10 @@
    "execution_count": 9,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:07:00.058808Z",
-     "iopub.status.busy": "2023-10-25T21:07:00.057468Z",
-     "iopub.status.idle": "2023-10-25T21:07:00.098846Z",
-     "shell.execute_reply": "2023-10-25T21:07:00.098143Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.595003Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.594745Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.634491Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.632865Z"
     }
    },
    "outputs": [
@@ -534,10 +534,10 @@
    "execution_count": 10,
    "metadata": {
     "execution": {
-     "iopub.execute_input": "2023-10-25T21:07:00.104116Z",
-     "iopub.status.busy": "2023-10-25T21:07:00.102927Z",
-     "iopub.status.idle": "2023-10-25T21:07:00.127804Z",
-     "shell.execute_reply": "2023-10-25T21:07:00.127092Z"
+     "iopub.execute_input": "2023-10-25T21:08:42.637571Z",
+     "iopub.status.busy": "2023-10-25T21:08:42.637290Z",
+     "iopub.status.idle": "2023-10-25T21:08:42.656002Z",
+     "shell.execute_reply": "2023-10-25T21:08:42.655099Z"
     }
    },
    "outputs": [
diff --git a/tutorials/04-lucj.html b/tutorials/04-lucj.html
index 6e0a4d8ec..ea5d845ba 100644
--- a/tutorials/04-lucj.html
+++ b/tutorials/04-lucj.html
@@ -96,7 +96,7 @@ 

The local unitary cluster Jastrow (LUCJ) ansatz
 converged SCF energy = -77.4456267643962
-CASCI E = -77.6290254326716  E(CI) = -3.57322412553862  S^2 = 0.0000000
+CASCI E = -77.6290254326717  E(CI) = -3.57322412553862  S^2 = 0.0000000
 

@@ -150,8 +150,8 @@

The unitary cluster Jastrow (UCJ) ansatz
-E(CCSD) = -77.49387212754471  E_corr = -0.04824536314851433
-Energy at initialialization: -77.4697560002168
+E(CCSD) = -77.49387212754471  E_corr = -0.04824536314851303
+Energy at initialialization: -77.46975600021699
 

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.)

@@ -192,12 +192,12 @@

The unitary cluster Jastrow (UCJ) ansatz\n" ] } @@ -251,10 +251,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:09:14.865332Z", - "iopub.status.busy": "2023-10-25T21:09:14.864901Z", - "iopub.status.idle": "2023-10-25T21:10:37.437724Z", - "shell.execute_reply": "2023-10-25T21:10:37.436770Z" + "iopub.execute_input": "2023-10-25T21:11:02.693400Z", + "iopub.status.busy": "2023-10-25T21:11:02.692958Z", + "iopub.status.idle": "2023-10-25T21:12:09.530144Z", + "shell.execute_reply": "2023-10-25T21:12:09.529410Z" } }, "outputs": [ @@ -266,12 +266,12 @@ " message: CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH\n", " success: True\n", " status: 0\n", - " fun: -77.62861910565934\n", - " x: [-5.297e-01 2.313e+00 ... 1.027e-01 -1.973e-02]\n", - " nit: 383\n", - " jac: [-1.620e-04 1.251e-04 ... -1.535e-04 -6.253e-05]\n", - " nfev: 19364\n", - " njev: 412\n", + " fun: -77.62770871564896\n", + " x: [-9.623e-01 -5.263e-01 ... -3.172e-02 -8.555e-01]\n", + " nit: 308\n", + " jac: [-3.837e-05 2.700e-05 ... -2.416e-04 1.307e-04]\n", + " nfev: 15510\n", + " njev: 330\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" ] } diff --git a/tutorials/05-entanglement-forging.html b/tutorials/05-entanglement-forging.html index 72ba9d0c6..22a4353b6 100644 --- a/tutorials/05-entanglement-forging.html +++ b/tutorials/05-entanglement-forging.html @@ -139,7 +139,7 @@

Entanglement forging
-Energy at initialialization: -75.6836617444762
+Energy at initialialization: -75.68366174447624
 
@@ -99,7 +99,7 @@

The FermionOperator class
-'FermionOperator({((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j, ((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j})'
+'FermionOperator({((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j, ((True, False, 3), (False, False, 0)): -0.25+0j, ((True, False, 0), (False, False, 3)): 0.5+0j})'
 

FermionOperators support arithmetic operations. Note that when multiplying a FermionOperator by a scalar, the scalar must go on the left, i.e. 2 * op and not op * 2.

@@ -127,17 +127,17 @@

The FermionOperator class
 FermionOperator({
-    (cre_a(3), des_a(0)): -0.5,
-    (cre_a(0), des_a(3)): 1,
-    (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,
-    (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,
     (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,
-    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,
     (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), cre_b(2)): 0+0.5j,
+    (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,
+    (cre_b(2)): 0-0.25j,
+    (cre_a(0), des_a(3)): 1,
     (cre_b(1), des_b(5), cre_a(4)): 2+2j,
     (des_a(3), des_b(3)): 0.0625,
-    (cre_b(2)): 0-0.25j,
-    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625
+    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,
+    (cre_a(3), des_a(0)): -0.5
 })
 
@@ -162,17 +162,17 @@

The FermionOperator class
 FermionOperator({
-    (cre_a(3), des_a(0)): 0+3j,
-    (cre_a(0), des_a(3)): 0-6j,
-    (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,
-    (cre_a(0), des_a(3), cre_b(2)): 2,
     (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,
-    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,
     (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), cre_b(2)): 2,
+    (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_b(1), des_b(5), cre_a(4)): 12-12j,
     (des_a(3), des_b(3)): 0-1.25j,
-    (cre_b(2)): -5,
-    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j
+    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,
+    (cre_a(3), des_a(0)): 0+3j
 })
 
@@ -193,16 +193,16 @@

The FermionOperator class
 FermionOperator({
+    (des_b(3), des_a(3)): 0+1.25j,
     (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,
-    (cre_b(1), cre_a(4), des_b(5)): -12+12j,
-    (cre_b(2)): -5,
-    (cre_a(0), des_a(3)): 0-6j,
     (cre_a(3), des_a(0)): 0+3j,
-    (cre_b(2), cre_a(3), des_a(0)): -1,
     (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,
-    (des_b(3), des_a(3)): 0+1.25j,
-    (cre_b(2), cre_a(0), des_a(3)): 2
+    (cre_b(2), cre_a(0), des_a(3)): 2,
+    (cre_a(0), des_a(3)): 0-6j,
+    (cre_b(2), cre_a(3), des_a(0)): -1,
+    (cre_b(1), cre_a(4), des_b(5)): -12+12j,
+    (cre_b(2)): -5,
+    (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.15725357-0.17502038j,  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.05261902-0.11277367j, 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 b2e5583ee..3ca87fe26 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-25T21:10:44.666327Z", - "iopub.status.busy": "2023-10-25T21:10:44.666058Z", - "iopub.status.idle": "2023-10-25T21:10:45.033749Z", - "shell.execute_reply": "2023-10-25T21:10:45.032787Z" + "iopub.execute_input": "2023-10-25T21:12:16.968803Z", + "iopub.status.busy": "2023-10-25T21:12:16.968376Z", + "iopub.status.idle": "2023-10-25T21:12:17.351575Z", + "shell.execute_reply": "2023-10-25T21:12:17.350726Z" } }, "outputs": [ @@ -40,9 +40,9 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(0), des_a(3)): 0.5,\n", + " (cre_b(1), des_b(5), cre_a(4)): 1+1j,\n", " (cre_a(3), des_a(0)): -0.25,\n", - " (cre_b(1), des_b(5), cre_a(4)): 1+1j\n", + " (cre_a(0), des_a(3)): 0.5\n", "})" ] }, @@ -76,17 +76,17 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.037258Z", - "iopub.status.busy": "2023-10-25T21:10:45.036654Z", - "iopub.status.idle": "2023-10-25T21:10:45.041873Z", - "shell.execute_reply": "2023-10-25T21:10:45.041283Z" + "iopub.execute_input": "2023-10-25T21:12:17.356987Z", + "iopub.status.busy": "2023-10-25T21:12:17.355642Z", + "iopub.status.idle": "2023-10-25T21:12:17.363335Z", + "shell.execute_reply": "2023-10-25T21:12:17.362598Z" } }, "outputs": [ { "data": { "text/plain": [ - "'FermionOperator({((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j, ((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j})'" + "'FermionOperator({((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j, ((True, False, 3), (False, False, 0)): -0.25+0j, ((True, False, 0), (False, False, 3)): 0.5+0j})'" ] }, "execution_count": 2, @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.045016Z", - "iopub.status.busy": "2023-10-25T21:10:45.044557Z", - "iopub.status.idle": "2023-10-25T21:10:45.052305Z", - "shell.execute_reply": "2023-10-25T21:10:45.051673Z" + "iopub.execute_input": "2023-10-25T21:12:17.368227Z", + "iopub.status.busy": "2023-10-25T21:12:17.366987Z", + "iopub.status.idle": "2023-10-25T21:12:17.375257Z", + "shell.execute_reply": "2023-10-25T21:12:17.374563Z" } }, "outputs": [ @@ -121,17 +121,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0)): -0.5,\n", - " (cre_a(0), des_a(3)): 1,\n", - " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", - " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\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), cre_b(2)): 0+0.5j,\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_b(1), des_b(5), cre_a(4)): 2+2j,\n", " (des_a(3), des_b(3)): 0.0625,\n", - " (cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", + " (cre_a(3), des_a(0)): -0.5\n", "})" ] }, @@ -169,10 +169,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.055512Z", - "iopub.status.busy": "2023-10-25T21:10:45.054924Z", - "iopub.status.idle": "2023-10-25T21:10:45.059637Z", - "shell.execute_reply": "2023-10-25T21:10:45.058917Z" + "iopub.execute_input": "2023-10-25T21:12:17.380175Z", + "iopub.status.busy": "2023-10-25T21:12:17.378948Z", + "iopub.status.idle": "2023-10-25T21:12:17.387303Z", + "shell.execute_reply": "2023-10-25T21:12:17.386448Z" } }, "outputs": [ @@ -180,17 +180,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", - " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", - " (cre_a(0), des_a(3), cre_b(2)): 2,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\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), cre_b(2)): 2,\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_b(1), des_b(5), cre_a(4)): 12-12j,\n", " (des_a(3), des_b(3)): 0-1.25j,\n", - " (cre_b(2)): -5,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", + " (cre_a(3), des_a(0)): 0+3j\n", "})" ] }, @@ -219,10 +219,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.062610Z", - "iopub.status.busy": "2023-10-25T21:10:45.062190Z", - "iopub.status.idle": "2023-10-25T21:10:45.069055Z", - "shell.execute_reply": "2023-10-25T21:10:45.068285Z" + "iopub.execute_input": "2023-10-25T21:12:17.392188Z", + "iopub.status.busy": "2023-10-25T21:12:17.391005Z", + "iopub.status.idle": "2023-10-25T21:12:17.398439Z", + "shell.execute_reply": "2023-10-25T21:12:17.397662Z" } }, "outputs": [ @@ -230,16 +230,16 @@ "data": { "text/plain": [ "FermionOperator({\n", + " (des_b(3), des_a(3)): 0+1.25j,\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", - " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", - " (cre_b(2)): -5,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(2), cre_a(3), des_a(0)): -1,\n", " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", - " (des_b(3), des_a(3)): 0+1.25j,\n", - " (cre_b(2), cre_a(0), des_a(3)): 2\n", + " (cre_b(2), cre_a(0), des_a(3)): 2,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_b(2), cre_a(3), des_a(0)): -1,\n", + " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", + " (cre_b(2)): -5,\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-25T21:10:45.072230Z", - "iopub.status.busy": "2023-10-25T21:10:45.071639Z", - "iopub.status.idle": "2023-10-25T21:10:45.075787Z", - "shell.execute_reply": "2023-10-25T21:10:45.075129Z" + "iopub.execute_input": "2023-10-25T21:12:17.403156Z", + "iopub.status.busy": "2023-10-25T21:12:17.401916Z", + "iopub.status.idle": "2023-10-25T21:12:17.408621Z", + "shell.execute_reply": "2023-10-25T21:12:17.407963Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.079733Z", - "iopub.status.busy": "2023-10-25T21:10:45.079372Z", - "iopub.status.idle": "2023-10-25T21:10:45.087071Z", - "shell.execute_reply": "2023-10-25T21:10:45.086312Z" + "iopub.execute_input": "2023-10-25T21:12:17.413202Z", + "iopub.status.busy": "2023-10-25T21:12:17.411778Z", + "iopub.status.idle": "2023-10-25T21:12:17.420533Z", + "shell.execute_reply": "2023-10-25T21:12:17.419894Z" } }, "outputs": [ @@ -340,21 +340,21 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-10-25T21:10:45.090173Z", - "iopub.status.busy": "2023-10-25T21:10:45.089844Z", - "iopub.status.idle": "2023-10-25T21:10:45.100075Z", - "shell.execute_reply": "2023-10-25T21:10:45.099224Z" + "iopub.execute_input": "2023-10-25T21:12:17.424260Z", + "iopub.status.busy": "2023-10-25T21:12:17.423766Z", + "iopub.status.idle": "2023-10-25T21:12:17.434001Z", + "shell.execute_reply": "2023-10-25T21:12:17.433242Z" } }, "outputs": [ { "data": { "text/plain": [ - "array([ 0. +0.j , 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " -0.15725357-0.17502038j, 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.05261902-0.11277367j, 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-25T21:10:45.103541Z", - "iopub.status.busy": "2023-10-25T21:10:45.102951Z", - "iopub.status.idle": "2023-10-25T21:10:45.121719Z", - "shell.execute_reply": "2023-10-25T21:10:45.120911Z" + "iopub.execute_input": "2023-10-25T21:12:17.437184Z", + "iopub.status.busy": "2023-10-25T21:12:17.436716Z", + "iopub.status.idle": "2023-10-25T21:12:17.453924Z", + "shell.execute_reply": "2023-10-25T21:12:17.453177Z" } }, "outputs": [