From e9a54103f1228c39d929f6687d114fcd401dc9be Mon Sep 17 00:00:00 2001 From: kevinsung Date: Wed, 20 Sep 2023 01:35:02 +0000 Subject: [PATCH] deploy: 854a6ce26b0712b0695af67c3cd93b1ba443534d --- .doctrees/environment.pickle | Bin 1451126 -> 1451102 bytes .../nbsphinx/tutorials/01-introduction.ipynb | 24 +-- .../tutorials/02-orbital-rotation.ipynb | 32 ++-- .../tutorials/03-double-factorized.ipynb | 140 +++++++++--------- .doctrees/nbsphinx/tutorials/04-lucj.ipynb | 54 +++---- .../tutorials/03-double-factorized.doctree | Bin 54355 -> 54325 bytes .doctrees/tutorials/04-lucj.doctree | Bin 39076 -> 39064 bytes _modules/ffsim/random.html | 2 +- searchindex.js | 2 +- tutorials/01-introduction.ipynb | 24 +-- tutorials/02-orbital-rotation.ipynb | 32 ++-- tutorials/03-double-factorized.html | 60 ++++---- tutorials/03-double-factorized.ipynb | 140 +++++++++--------- tutorials/04-lucj.html | 22 +-- tutorials/04-lucj.ipynb | 54 +++---- 15 files changed, 293 insertions(+), 293 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index b2ddaa4eddf91afa8ba991ee99310f3102efb4a1..279ba2224187ff8401173744c077b4ded5bcf64f 100644 GIT binary patch delta 25616 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 Sxbe*?Ee7ofZV$P delta 25452 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 J|Fc5){{pMFLp=Zh diff --git a/.doctrees/nbsphinx/tutorials/01-introduction.ipynb b/.doctrees/nbsphinx/tutorials/01-introduction.ipynb index b793f492f..da461b7a9 100644 --- a/.doctrees/nbsphinx/tutorials/01-introduction.ipynb +++ b/.doctrees/nbsphinx/tutorials/01-introduction.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:00.720118Z", - "iopub.status.busy": "2023-09-20T00:05:00.719692Z", - "iopub.status.idle": "2023-09-20T00:05:01.106493Z", - "shell.execute_reply": "2023-09-20T00:05:01.105581Z" + "iopub.execute_input": "2023-09-20T01:34:52.136968Z", + "iopub.status.busy": "2023-09-20T01:34:52.136627Z", + "iopub.status.idle": "2023-09-20T01:34:52.429111Z", + "shell.execute_reply": "2023-09-20T01:34:52.428582Z" } }, "outputs": [], @@ -62,10 +62,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:01.111714Z", - "iopub.status.busy": "2023-09-20T00:05:01.110229Z", - "iopub.status.idle": "2023-09-20T00:05:01.116809Z", - "shell.execute_reply": "2023-09-20T00:05:01.116084Z" + "iopub.execute_input": "2023-09-20T01:34:52.432828Z", + "iopub.status.busy": "2023-09-20T01:34:52.431752Z", + "iopub.status.idle": "2023-09-20T01:34:52.436656Z", + "shell.execute_reply": "2023-09-20T01:34:52.436203Z" } }, "outputs": [], @@ -92,10 +92,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:01.121897Z", - "iopub.status.busy": "2023-09-20T00:05:01.120737Z", - "iopub.status.idle": "2023-09-20T00:05:01.125776Z", - "shell.execute_reply": "2023-09-20T00:05:01.125120Z" + "iopub.execute_input": "2023-09-20T01:34:52.440313Z", + "iopub.status.busy": "2023-09-20T01:34:52.439379Z", + "iopub.status.idle": "2023-09-20T01:34:52.443177Z", + "shell.execute_reply": "2023-09-20T01:34:52.442736Z" } }, "outputs": [], diff --git a/.doctrees/nbsphinx/tutorials/02-orbital-rotation.ipynb b/.doctrees/nbsphinx/tutorials/02-orbital-rotation.ipynb index 5c842a451..9453e4632 100644 --- a/.doctrees/nbsphinx/tutorials/02-orbital-rotation.ipynb +++ b/.doctrees/nbsphinx/tutorials/02-orbital-rotation.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:03.069372Z", - "iopub.status.busy": "2023-09-20T00:05:03.069107Z", - "iopub.status.idle": "2023-09-20T00:05:03.452353Z", - "shell.execute_reply": "2023-09-20T00:05:03.451534Z" + "iopub.execute_input": "2023-09-20T01:34:54.037186Z", + "iopub.status.busy": "2023-09-20T01:34:54.036843Z", + "iopub.status.idle": "2023-09-20T01:34:54.310698Z", + "shell.execute_reply": "2023-09-20T01:34:54.310166Z" } }, "outputs": [], @@ -111,10 +111,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:03.457501Z", - "iopub.status.busy": "2023-09-20T00:05:03.456811Z", - "iopub.status.idle": "2023-09-20T00:05:03.494792Z", - "shell.execute_reply": "2023-09-20T00:05:03.493843Z" + "iopub.execute_input": "2023-09-20T01:34:54.314980Z", + "iopub.status.busy": "2023-09-20T01:34:54.313975Z", + "iopub.status.idle": "2023-09-20T01:34:54.338879Z", + "shell.execute_reply": "2023-09-20T01:34:54.338397Z" } }, "outputs": [], @@ -160,10 +160,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:03.500071Z", - "iopub.status.busy": "2023-09-20T00:05:03.499506Z", - "iopub.status.idle": "2023-09-20T00:05:03.516057Z", - "shell.execute_reply": "2023-09-20T00:05:03.515261Z" + "iopub.execute_input": "2023-09-20T01:34:54.342618Z", + "iopub.status.busy": "2023-09-20T01:34:54.341703Z", + "iopub.status.idle": "2023-09-20T01:34:54.353128Z", + "shell.execute_reply": "2023-09-20T01:34:54.352653Z" } }, "outputs": [], @@ -203,10 +203,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:03.522207Z", - "iopub.status.busy": "2023-09-20T00:05:03.520026Z", - "iopub.status.idle": "2023-09-20T00:05:03.529057Z", - "shell.execute_reply": "2023-09-20T00:05:03.528223Z" + "iopub.execute_input": "2023-09-20T01:34:54.357099Z", + "iopub.status.busy": "2023-09-20T01:34:54.355798Z", + "iopub.status.idle": "2023-09-20T01:34:54.361562Z", + "shell.execute_reply": "2023-09-20T01:34:54.361093Z" } }, "outputs": [], diff --git a/.doctrees/nbsphinx/tutorials/03-double-factorized.ipynb b/.doctrees/nbsphinx/tutorials/03-double-factorized.ipynb index 0fc621fd0..00097a483 100644 --- a/.doctrees/nbsphinx/tutorials/03-double-factorized.ipynb +++ b/.doctrees/nbsphinx/tutorials/03-double-factorized.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.425574Z", - "iopub.status.busy": "2023-09-20T00:05:05.425235Z", - "iopub.status.idle": "2023-09-20T00:05:05.925194Z", - "shell.execute_reply": "2023-09-20T00:05:05.924352Z" + "iopub.execute_input": "2023-09-20T01:34:55.840954Z", + "iopub.status.busy": "2023-09-20T01:34:55.840563Z", + "iopub.status.idle": "2023-09-20T01:34:56.218443Z", + "shell.execute_reply": "2023-09-20T01:34:56.217867Z" } }, "outputs": [ @@ -93,10 +93,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.944318Z", - "iopub.status.busy": "2023-09-20T00:05:05.943614Z", - "iopub.status.idle": "2023-09-20T00:05:05.951906Z", - "shell.execute_reply": "2023-09-20T00:05:05.951232Z" + "iopub.execute_input": "2023-09-20T01:34:56.222374Z", + "iopub.status.busy": "2023-09-20T01:34:56.221359Z", + "iopub.status.idle": "2023-09-20T01:34:56.228537Z", + "shell.execute_reply": "2023-09-20T01:34:56.228058Z" } }, "outputs": [ @@ -107,48 +107,48 @@ "Original representation\n", "-----------------------\n", "One-body tensor:\n", - "[[-8.27478830e-01 1.69963606e-16]\n", - " [ 2.27557343e-16 -6.77238770e-01]]\n", + "[[-8.27478830e-01 -2.66405155e-16]\n", + " [-3.07220771e-16 -6.77238770e-01]]\n", "\n", "Two-body tensor:\n", - "[[[[ 5.23173938e-01 -1.85221301e-16]\n", - " [-1.85221301e-16 5.33545754e-01]]\n", + "[[[[5.23173938e-01 1.94289029e-16]\n", + " [1.94289029e-16 5.33545754e-01]]\n", "\n", - " [[-1.60188973e-16 2.48240570e-01]\n", - " [ 2.48240570e-01 -4.63466523e-17]]]\n", + " [[1.94289029e-16 2.48240570e-01]\n", + " [2.48240570e-01 8.32667268e-17]]]\n", "\n", "\n", - " [[[-1.60188973e-16 2.48240570e-01]\n", - " [ 2.48240570e-01 -4.63466523e-17]]\n", + " [[[1.94289029e-16 2.48240570e-01]\n", + " [2.48240570e-01 8.32667268e-17]]\n", "\n", - " [[ 5.33545754e-01 -6.67297191e-18]\n", - " [-6.67297191e-18 5.53132024e-01]]]]\n", + " [[5.33545754e-01 1.11022302e-16]\n", + " [1.11022302e-16 5.53132024e-01]]]]\n", "\n", "Double-factorized representation\n", "--------------------------------\n", "One-body tensor:\n", - "[[-1.21318608e+00 2.85747582e-16]\n", - " [ 3.10988315e-16 -1.07792507e+00]]\n", + "[[-1.21318608e+00 -4.05183033e-16]\n", + " [-4.59876437e-16 -1.07792507e+00]]\n", "\n", "Diagonal Coulomb matrices:\n", - "[[[ 5.14653029e-01 5.33545754e-01]\n", - " [ 5.33545754e-01 5.53132024e-01]]\n", + "[[[ 5.14653029e-001 5.33545754e-001]\n", + " [ 5.33545754e-001 5.53132024e-001]]\n", "\n", - " [[ 2.48240570e-01 -2.48240570e-01]\n", - " [-2.48240570e-01 2.48240570e-01]]\n", + " [[ 2.48240570e-001 -2.48240570e-001]\n", + " [-2.48240570e-001 2.48240570e-001]]\n", "\n", - " [[ 1.44655364e-30 -1.11022302e-16]\n", - " [-1.11022302e-16 8.52090881e-03]]]\n", + " [[ 5.96958401e-121 -7.13206008e-062]\n", + " [-7.13206008e-062 8.52090881e-003]]]\n", "\n", "Orbital rotations:\n", - "[[[ 1.00000000e+00 0.00000000e+00]\n", - " [ 0.00000000e+00 1.00000000e+00]]\n", + "[[[-1.00000000e+00 4.25128053e-15]\n", + " [ 4.25128053e-15 1.00000000e+00]]\n", "\n", - " [[-7.07106781e-01 -7.07106781e-01]\n", - " [ 7.07106781e-01 -7.07106781e-01]]\n", + " [[ 7.07106781e-01 -7.07106781e-01]\n", + " [-7.07106781e-01 -7.07106781e-01]]\n", "\n", - " [[ 2.93775326e-15 -1.00000000e+00]\n", - " [-1.00000000e+00 -2.93775326e-15]]]\n" + " [[ 2.89310728e-30 -1.00000000e+00]\n", + " [-1.00000000e+00 -2.89310728e-30]]]\n" ] } ], @@ -227,10 +227,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.955072Z", - "iopub.status.busy": "2023-09-20T00:05:05.954538Z", - "iopub.status.idle": "2023-09-20T00:05:05.960683Z", - "shell.execute_reply": "2023-09-20T00:05:05.960023Z" + "iopub.execute_input": "2023-09-20T01:34:56.231096Z", + "iopub.status.busy": "2023-09-20T01:34:56.230741Z", + "iopub.status.idle": "2023-09-20T01:34:56.235201Z", + "shell.execute_reply": "2023-09-20T01:34:56.234751Z" } }, "outputs": [], @@ -285,10 +285,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.964040Z", - "iopub.status.busy": "2023-09-20T00:05:05.963597Z", - "iopub.status.idle": "2023-09-20T00:05:05.968188Z", - "shell.execute_reply": "2023-09-20T00:05:05.967549Z" + "iopub.execute_input": "2023-09-20T01:34:56.237589Z", + "iopub.status.busy": "2023-09-20T01:34:56.237231Z", + "iopub.status.idle": "2023-09-20T01:34:56.240867Z", + "shell.execute_reply": "2023-09-20T01:34:56.240424Z" } }, "outputs": [], @@ -325,10 +325,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.971193Z", - "iopub.status.busy": "2023-09-20T00:05:05.970801Z", - "iopub.status.idle": "2023-09-20T00:05:05.976950Z", - "shell.execute_reply": "2023-09-20T00:05:05.976125Z" + "iopub.execute_input": "2023-09-20T01:34:56.243205Z", + "iopub.status.busy": "2023-09-20T01:34:56.242855Z", + "iopub.status.idle": "2023-09-20T01:34:56.247340Z", + "shell.execute_reply": "2023-09-20T01:34:56.246908Z" } }, "outputs": [ @@ -336,7 +336,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Hartree Fock energy: -0.8377963825937086\n" + "Hartree Fock energy: -0.837796382593709\n" ] } ], @@ -367,10 +367,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.981755Z", - "iopub.status.busy": "2023-09-20T00:05:05.981045Z", - "iopub.status.idle": "2023-09-20T00:05:05.995444Z", - "shell.execute_reply": "2023-09-20T00:05:05.994599Z" + "iopub.execute_input": "2023-09-20T01:34:56.249736Z", + "iopub.status.busy": "2023-09-20T01:34:56.249390Z", + "iopub.status.idle": "2023-09-20T01:34:56.258321Z", + "shell.execute_reply": "2023-09-20T01:34:56.257831Z" } }, "outputs": [ @@ -378,7 +378,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of evolved state w.r.t. initial state: 0.9696296369955067\n" + "Fidelity of evolved state w.r.t. initial state: 0.9696296369955066\n" ] } ], @@ -409,10 +409,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.998882Z", - "iopub.status.busy": "2023-09-20T00:05:05.998635Z", - "iopub.status.idle": "2023-09-20T00:05:06.010620Z", - "shell.execute_reply": "2023-09-20T00:05:06.009917Z" + "iopub.execute_input": "2023-09-20T01:34:56.260674Z", + "iopub.status.busy": "2023-09-20T01:34:56.260322Z", + "iopub.status.idle": "2023-09-20T01:34:56.267335Z", + "shell.execute_reply": "2023-09-20T01:34:56.266865Z" } }, "outputs": [ @@ -420,7 +420,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9990275744083494\n" + "Fidelity of Trotter-evolved state with exact state: 0.9990275744083491\n" ] } ], @@ -450,10 +450,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:06.013958Z", - "iopub.status.busy": "2023-09-20T00:05:06.013670Z", - "iopub.status.idle": "2023-09-20T00:05:06.075118Z", - "shell.execute_reply": "2023-09-20T00:05:06.073850Z" + "iopub.execute_input": "2023-09-20T01:34:56.269551Z", + "iopub.status.busy": "2023-09-20T01:34:56.269374Z", + "iopub.status.idle": "2023-09-20T01:34:56.303345Z", + "shell.execute_reply": "2023-09-20T01:34:56.302913Z" } }, "outputs": [ @@ -461,7 +461,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999906233109681\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999906233109653\n" ] } ], @@ -493,10 +493,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:06.078459Z", - "iopub.status.busy": "2023-09-20T00:05:06.078233Z", - "iopub.status.idle": "2023-09-20T00:05:06.124318Z", - "shell.execute_reply": "2023-09-20T00:05:06.123220Z" + "iopub.execute_input": "2023-09-20T01:34:56.305778Z", + "iopub.status.busy": "2023-09-20T01:34:56.305495Z", + "iopub.status.idle": "2023-09-20T01:34:56.333099Z", + "shell.execute_reply": "2023-09-20T01:34:56.332671Z" } }, "outputs": [ @@ -504,7 +504,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999906233109681\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999906233109653\n" ] } ], @@ -535,10 +535,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:06.127511Z", - "iopub.status.busy": "2023-09-20T00:05:06.127288Z", - "iopub.status.idle": "2023-09-20T00:05:06.148661Z", - "shell.execute_reply": "2023-09-20T00:05:06.147469Z" + "iopub.execute_input": "2023-09-20T01:34:56.336145Z", + "iopub.status.busy": "2023-09-20T01:34:56.335857Z", + "iopub.status.idle": "2023-09-20T01:34:56.347760Z", + "shell.execute_reply": "2023-09-20T01:34:56.347303Z" } }, "outputs": [ @@ -546,7 +546,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999999336740071\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999999336740059\n" ] } ], diff --git a/.doctrees/nbsphinx/tutorials/04-lucj.ipynb b/.doctrees/nbsphinx/tutorials/04-lucj.ipynb index b2330be06..f73758980 100644 --- a/.doctrees/nbsphinx/tutorials/04-lucj.ipynb +++ b/.doctrees/nbsphinx/tutorials/04-lucj.ipynb @@ -14,10 +14,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:08.743826Z", - "iopub.status.busy": "2023-09-20T00:05:08.743391Z", - "iopub.status.idle": "2023-09-20T00:05:09.219426Z", - "shell.execute_reply": "2023-09-20T00:05:09.218566Z" + "iopub.execute_input": "2023-09-20T01:34:58.213087Z", + "iopub.status.busy": "2023-09-20T01:34:58.212754Z", + "iopub.status.idle": "2023-09-20T01:34:58.559605Z", + "shell.execute_reply": "2023-09-20T01:34:58.559099Z" } }, "outputs": [ @@ -80,10 +80,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:09.223668Z", - "iopub.status.busy": "2023-09-20T00:05:09.223072Z", - "iopub.status.idle": "2023-09-20T00:05:09.395075Z", - "shell.execute_reply": "2023-09-20T00:05:09.393800Z" + "iopub.execute_input": "2023-09-20T01:34:58.563775Z", + "iopub.status.busy": "2023-09-20T01:34:58.562763Z", + "iopub.status.idle": "2023-09-20T01:34:58.718229Z", + "shell.execute_reply": "2023-09-20T01:34:58.717692Z" } }, "outputs": [ @@ -91,14 +91,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "E(CCSD) = -0.9707730767165441 E_corr = -0.1329766941228354\n" + "E(CCSD) = -0.970773076716434 E_corr = -0.1329766941227252\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialialization: -0.9696246123746104\n" + "Energy at initialialization: -0.9696246123746335\n" ] } ], @@ -145,10 +145,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:09.399729Z", - "iopub.status.busy": "2023-09-20T00:05:09.399466Z", - "iopub.status.idle": "2023-09-20T00:05:09.603387Z", - "shell.execute_reply": "2023-09-20T00:05:09.602658Z" + "iopub.execute_input": "2023-09-20T01:34:58.723326Z", + "iopub.status.busy": "2023-09-20T01:34:58.723122Z", + "iopub.status.idle": "2023-09-20T01:34:58.867773Z", + "shell.execute_reply": "2023-09-20T01:34:58.867282Z" } }, "outputs": [ @@ -160,15 +160,15 @@ " message: Optimization terminated successfully.\n", " success: True\n", " status: 0\n", - " fun: -0.9707730753914435\n", + " fun: -0.970773075391498\n", " x: [-2.678e-01 2.678e-01 ... -1.970e+00 -1.970e+00]\n", " nit: 2\n", - " jac: [ 0.000e+00 0.000e+00 ... 7.451e-08 -8.941e-08]\n", - " hess_inv: [[ 1.000e+00 0.000e+00 ... -1.374e-12 4.036e-13]\n", + " jac: [-5.960e-08 0.000e+00 ... -2.980e-08 -1.490e-07]\n", + " hess_inv: [[ 1.000e+00 0.000e+00 ... 1.364e-12 -2.206e-13]\n", " [ 0.000e+00 1.000e+00 ... 0.000e+00 0.000e+00]\n", " ...\n", - " [-1.374e-12 0.000e+00 ... 1.000e+00 3.571e-13]\n", - " [ 4.036e-13 0.000e+00 ... 3.571e-13 1.000e+00]]\n", + " [ 1.364e-12 0.000e+00 ... 1.000e+00 1.818e-12]\n", + " [-2.206e-13 0.000e+00 ... 1.818e-12 1.000e+00]]\n", " nfev: 63\n", " njev: 3\n" ] @@ -222,10 +222,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:09.608702Z", - "iopub.status.busy": "2023-09-20T00:05:09.607433Z", - "iopub.status.idle": "2023-09-20T00:05:09.846442Z", - "shell.execute_reply": "2023-09-20T00:05:09.845699Z" + "iopub.execute_input": "2023-09-20T01:34:58.870553Z", + "iopub.status.busy": "2023-09-20T01:34:58.870226Z", + "iopub.status.idle": "2023-09-20T01:34:59.038955Z", + "shell.execute_reply": "2023-09-20T01:34:59.038479Z" } }, "outputs": [ @@ -237,15 +237,15 @@ " message: Optimization terminated successfully.\n", " success: True\n", " status: 0\n", - " fun: -0.9707730754179811\n", + " fun: -0.9707730754179825\n", " x: [ 2.678e-01 -2.678e-01 ... -1.970e+00 -1.970e+00]\n", " nit: 4\n", - " jac: [ 0.000e+00 0.000e+00 ... 7.451e-09 -2.980e-08]\n", + " jac: [ 0.000e+00 0.000e+00 ... 8.196e-08 -7.451e-08]\n", " hess_inv: [[ 1.000e+00 0.000e+00 ... 0.000e+00 0.000e+00]\n", " [ 0.000e+00 1.000e+00 ... 0.000e+00 0.000e+00]\n", " ...\n", - " [ 0.000e+00 0.000e+00 ... 1.000e+00 1.790e-10]\n", - " [ 0.000e+00 0.000e+00 ... 1.790e-10 1.000e+00]]\n", + " [ 0.000e+00 0.000e+00 ... 1.000e+00 2.029e-10]\n", + " [ 0.000e+00 0.000e+00 ... 2.029e-10 1.000e+00]]\n", " nfev: 75\n", " njev: 5\n" ] diff --git a/.doctrees/tutorials/03-double-factorized.doctree b/.doctrees/tutorials/03-double-factorized.doctree index a931e388b91cf01d3304381ae3d23c1ff27e9092..f54f0264cc79b035a48c5c453c4b6dc657f84e03 100644 GIT binary patch delta 4188 zcmeHKT}TvB6n1pQzcn=y`%(8QVOj2Yf9B2)i5W_iP_{)Rty=^wZ9Pc%7?nw6Mp5Be z-*nBMM4xIYh|D0YpkBi0G03NaeCjo@&ec_SwjLtNrb(5b~awJZiLMvzIJ3uXyN*wG+m zgz1jKZHICvMIa>X#-OydqSp-(t{XPTI2Kh-FbuNX7_oK1P1E8g#$i?@5-BXi*@QEk z|DmTgmn(FHo}?~>G^8bsR3eN~&IRS^iKJst$u3j}4IRs43o67)g$!Lfwq+W^0%Eq6 zVO5CBIn1?{J4>h(OmNCoNX#2^!il(Zz~^uk(#iuNUVc)sUFa%X>W=A1+n@|5#F1_3 zDuzj^S|O9G>V`8xg7uZ0I@Gq2M&UWH5<#ZZ)DhiDDItc=CF3@gDpk4YCj)~LQ2`H| z2#~!#7_> zB>dOy=TC1x2-p{WcYRq|Fh&~St$oDPJx})*mG9r{UP*f6q3%H_QJLH6HJ|scX2*AfZUA_(_ezd*}{Ahvn}=n3F|62L7P0=WFg=e3}>_gJI7hwJArIo}@M zr5UiVzX3i6N>f%HSr0G!&uTFkyM7pAH5K_w8;iSzu*{3RKYvwMoS6qiTEg53-NZ%Ozt0=&V!oqL-2jruQ511GLK^@ zaRqdE{7%i3w3r(a$(!iyTZLlDeXL69v2X%Uq{+ZHXl*BNofh{W}Ki*xS#-u=!!=e>{f&dZ5{ z4-*Bxn_EUZp8Jk98r^WJv8x&plRFNl9P?O+@MtlLAj`A_V}jZg-iJdBG1H<%P>0G` z2on?{reu~yC?**SLXmYK0<+n_U4a}EDIG!eP6P>D;i&Mov~0`-PKUEiPHoPar8kLa zG+JD&vWV!Af3ds%%T`=PRykA3Y$lkUK7^ZGSdJi$&RME5b_hPMDas z%^9Oyu_@LsnGkGQ6tAYS@{Y4HgrvzV>|iNXQLwbXimE6$bH(a0MhNHJ>#`&3FuKO!S5O8}@sY8We)Y6hrC3n^avH|^tni?-(jWxSHg;BSs`GhAWPfAK|8)4#e+^q%r?CEN%W!Mm0&-w|J49^g7Z zjJG#=t;lOd8<>f9t(%Efhapc&-gup!!8g~JQj49D-39~P->_5i+(~embFVv4{N76zb7B+WjuL6xzx|(*=@Ou7q7AzWM(e2yG#&M#{>_hwkT!wYlT#glDtalWWb RWCb}0R~FJip1tiW{R1-toe2N{ diff --git a/.doctrees/tutorials/04-lucj.doctree b/.doctrees/tutorials/04-lucj.doctree index 7e46550657d0252bc8608537ac1c0982b3ba54b0..66221ca8fe384b6a5f34756c40069dac4a4c8eaa 100644 GIT binary patch delta 1541 zcmZ3ok!i+8CYA=)sl6Lno|!UMOwKivXErf5nLNQvipAW>)M)ZLGd*ErV^c00{eq%Y zyD1s$u~Rbadax^G1}dC<->jH%?PM+sS9YK|3JR_<)U~|$#zao|?ObiUbNYk0D z64V3$e)POJK zbV8(2Le6gT0UkEih(Yhpxs3Xg--WaemISB43C$-FgUeZ)VnZ=q*s zX$H=ey5@Q&rjv8M^(Gf|&tNsuGcdB8e6dpx$~xF+GI>q?6cV*` z^0^L`$??IQ0t)E%ngp9nULCAFc|jxZhCaMQ17 za%htqk~3m}p#Y4SW-bx5kN^kDIWTgT3X`GX*HAaXg<;mw-BjE`UW*I0~0u!LYL)Q&bT%jSSnvPSource code for ffsim.random
     """
     rng = np.random.default_rng(seed)
     vec = rng.standard_normal(dim).astype(dtype, copy=False)
-    if np.iscomplexobj(dtype):
+    if np.issubdtype(dtype, np.complexfloating):
         vec += 1j * rng.standard_normal(dim).astype(dtype, copy=False)
     vec /= np.linalg.norm(vec)
     return vec
diff --git a/searchindex.js b/searchindex.js index 511b7cc69..72607e6b5 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/generated/ffsim", "api/generated/ffsim.contract", "api/generated/ffsim.gates", "api/generated/ffsim.hamiltonians", "api/generated/ffsim.linalg", "api/generated/ffsim.protocols", "api/generated/ffsim.slow", "api/generated/ffsim.slow.contract", "api/generated/ffsim.slow.gates", "api/generated/ffsim.trotter", "api/generated/ffsim.variational", "api/generated/modules", "api/index", "index", "tutorials/01-introduction", "tutorials/02-orbital-rotation", "tutorials/03-double-factorized", "tutorials/04-lucj", "tutorials/index"], "filenames": ["api/generated/ffsim.rst", "api/generated/ffsim.contract.rst", "api/generated/ffsim.gates.rst", "api/generated/ffsim.hamiltonians.rst", "api/generated/ffsim.linalg.rst", "api/generated/ffsim.protocols.rst", "api/generated/ffsim.slow.rst", "api/generated/ffsim.slow.contract.rst", "api/generated/ffsim.slow.gates.rst", "api/generated/ffsim.trotter.rst", "api/generated/ffsim.variational.rst", "api/generated/modules.rst", "api/index.rst", "index.rst", "tutorials/01-introduction.ipynb", "tutorials/02-orbital-rotation.ipynb", "tutorials/03-double-factorized.ipynb", "tutorials/04-lucj.ipynb", "tutorials/index.rst"], "titles": ["ffsim package", "ffsim.contract package", "ffsim.gates package", "ffsim.hamiltonians package", "ffsim.linalg package", "ffsim.protocols package", "ffsim.slow package", "ffsim.slow.contract package", "ffsim.slow.gates package", "ffsim.trotter package", "ffsim.variational package", "ffsim", "API reference", "ffsim documentation", "Introduction to ffsim", "Orbital rotations and quadratic Hamiltonians", "Diagonal Coulomb operators and double-factorized Trotter simulation", "The local unitary cluster Jastrow (LUCJ) ansatz", "Tutorials"], "terms": {"contract": [0, 6, 11, 12, 15], "diag_coulomb": [0, 6, 11], "contract_diag_coulomb": [0, 1], "diag_coulomb_linop": [0, 1], "hamiltonian": [0, 9, 11, 12, 17, 18], "hamiltonian_linop": [0, 1, 15], "hamiltonian_trac": [0, 1], "num_op_sum": [0, 6, 11], "contract_num_op_sum": [0, 1], "num_op_sum_linop": [0, 1], "gate": [0, 6, 11, 12, 17], "apply_diag_coulomb_evolut": [0, 2, 16], "apply_givens_rot": [0, 2], "apply_num_interact": [0, 2], "apply_num_op_prod_interact": [0, 2], "apply_tunneling_interact": [0, 2], "apply_num_op_sum_evolut": [0, 2, 15, 16], "orbital_rot": [0, 1, 3, 4, 6, 9, 10, 11, 14, 15, 16], "apply_orbital_rot": [0, 2, 14, 15], "gen_orbital_rotation_index": [0, 2], "double_factorized_hamiltonian": [0, 11, 16], "doublefactorizedhamiltonian": [0, 3, 9, 16], "one_body_tensor": [0, 1, 3, 9, 15, 16], "diag_coulomb_mat": [0, 3, 9, 16], "constant": [0, 1, 3, 16, 17], "z_represent": [0, 1, 2, 3, 9], "norb": [0, 1, 2, 3, 5, 8, 9, 10, 14, 15, 16, 17], "to_number_represent": [0, 3], "to_z_represent": [0, 3], "molecular_hamiltonian": [0, 11], "molecularhamiltonian": [0, 3], "two_body_tensor": [0, 1, 3, 4, 16], "linalg": [0, 11, 12, 15, 16], "double_factor": [0, 11], "double_factorized_t2": [0, 4], "modified_choleski": [0, 4], "optimal_diag_coulomb_mat": [0, 4], "given": [0, 1, 2, 8, 9, 11, 15, 16], "apply_matrix_to_slic": [0, 4], "givens_decomposit": [0, 4], "givens_matrix": [0, 4], "expm_multiply_taylor": [0, 4], "lup": [0, 4], "predic": [0, 11], "is_antihermitian": [0, 4], "is_hermitian": [0, 4], "is_orthogon": [0, 4], "is_real_symmetr": [0, 4], "is_special_orthogon": [0, 4], "is_unitari": [0, 4], "protocol": [0, 11, 12], "linear_oper": [0, 11, 16, 17], "supportslinearoper": [0, 5], "trace": [0, 1, 11, 16], "supportstrac": [0, 5], "slow": [0, 11, 12], "trotter": [0, 11, 12, 18], "qdrift": [0, 11], "expectation_squared_diag_coulomb": [0, 9], "one_body_square_decomposit": [0, 9], "qdrift_prob": [0, 9], "simulate_qdrift_double_factor": [0, 9], "spectral_norm_diag_coulomb": [0, 9], "spectral_norm_one_body_tensor": [0, 9], "variance_diag_coulomb": [0, 9], "variance_one_body_tensor": [0, 9], "simulate_trotter_double_factor": [0, 9, 16], "variat": [0, 11, 12, 17], "lucj": [0, 11, 18], "ucjoper": [0, 10, 17], "diag_coulomb_mats_alpha_alpha": [0, 10], "diag_coulomb_mats_alpha_beta": [0, 10], "final_orbital_rot": [0, 10], "from_paramet": [0, 10, 17], "from_t_amplitud": [0, 10, 17], "n_rep": [0, 10, 17], "to_paramet": [0, 10, 17], "to_t_amplitud": [0, 10], "apply_ucj_oper": [0, 10, 17], "class": [0, 3, 5, 10, 14, 17], "moleculardata": [0, 11, 12, 16, 17], "nelec": [0, 1, 2, 5, 8, 9, 10, 14, 15, 16, 17], "core_energi": 0, "dipole_integr": 0, "none": [0, 1, 2, 3, 4, 8, 9, 10], "orbital_symmetri": 0, "sourc": [0, 1, 2, 3, 4, 5, 8, 9, 10], "base": [0, 3, 4, 5, 10], "object": [0, 3, 4, 5, 10, 16, 17], "random_antihermitian": [0, 11, 12], "dim": [0, 9, 11, 12, 14], "seed": [0, 9, 14, 15], "dtype": 0, "complex": [0, 4], "return": [0, 1, 2, 3, 4, 5, 8, 9, 10, 16, 17], "anti": [0, 4], "hermitian": [0, 4, 15], "matrix": [0, 1, 2, 3, 4, 9, 14, 15, 16, 17], "paramet": [0, 1, 2, 3, 4, 9, 10, 17], "int": [0, 1, 2, 3, 4, 9, 10, 16], "The": [0, 1, 2, 3, 4, 9, 10, 14, 15, 16, 18], "width": 0, "height": 0, "rank": [0, 3, 4], "If": [0, 1, 2, 3, 4, 9, 10], "maximum": [0, 3, 4], "i": [0, 1, 2, 3, 4, 9, 10, 14, 15, 16, 17], "us": [0, 1, 2, 3, 4, 9, 14, 15, 16, 17], "A": [0, 1, 2, 3, 4, 5, 9, 10, 15, 16, 17], "initi": [0, 9, 10, 16, 17], "pseudorandom": [0, 9], "number": [0, 1, 2, 3, 4, 8, 9, 10, 14, 15, 16, 17], "gener": [0, 2, 8, 9, 14, 15, 16, 17], "should": [0, 2, 9, 15, 16], "valid": [0, 9], "input": [0, 1, 9, 17], "np": [0, 2, 9, 15, 16, 17], "default_rng": [0, 9], "dype": 0, "data": [0, 2, 9, 10, 16, 17], "type": [0, 1, 2, 3, 4, 5, 8, 9, 10, 16], "result": [0, 1, 4, 10, 15, 16, 17], "ndarrai": [0, 1, 2, 3, 4, 9, 10, 16], "sampl": [0, 9], "random_hermitian": [0, 11, 12, 15], "random_orthogon": [0, 11, 12], "float": [0, 1, 2, 3, 4, 5, 9, 16], "orthogon": [0, 4], "distribut": 0, "haar": 0, "measur": 0, "an": [0, 1, 2, 3, 4, 5, 9, 10, 14, 15, 16, 17], "instanc": [0, 15], "els": [0, 9], "refer": [0, 3, 4, 13, 17], "arxiv": [0, 3, 4], "math": 0, "ph": 0, "0609050": 0, "random_real_symmetric_matrix": [0, 11, 12], "real": [0, 1, 2, 3, 4, 10, 15, 16, 17], "symmetr": [0, 1, 2, 3, 4, 9, 16, 17], "option": [0, 1, 2, 3, 4, 9, 10], "random_special_orthogon": [0, 11, 12], "special": [0, 4, 14], "random_statevector": [0, 11, 12], "vector": [0, 1, 2, 4, 8, 9, 10, 14, 15, 17], "from": [0, 10, 14, 15, 17], "uniform": [0, 9], "dimens": [0, 9, 14], "random_t2_amplitud": [0, 11, 12], "nocc": [0, 2, 8, 10], "t2": [0, 4, 10, 17], "amplitud": [0, 4, 10, 17], "tensor": [0, 1, 3, 4, 9, 16, 17], "orbit": [0, 1, 2, 3, 4, 8, 9, 10, 14, 16, 17, 18], "ar": [0, 1, 2, 3, 4, 9, 14, 15, 16, 17], "occupi": [0, 1, 2, 16], "electron": [0, 1, 2, 9, 10, 14, 16], "random_two_body_tensor_r": [0, 11, 12], "two": [0, 1, 2, 3, 4, 9, 10, 16, 17], "bodi": [0, 1, 3, 4, 9, 16, 17], "valu": [0, 3, 4, 9, 10, 16, 17], "shape": [0, 4, 9, 14, 17], "default": [0, 3, 4], "behavior": [0, 3, 4], "which": [0, 2, 3, 4, 14, 15, 16, 17], "1": [0, 2, 3, 4, 9, 10, 14, 15, 16, 17], "2": [0, 1, 2, 3, 4, 14, 15, 16, 17], "random_unitari": [0, 11, 12, 14, 15], "unitari": [0, 1, 2, 3, 4, 10, 15, 16, 18], "get": [0, 1, 15, 16, 17], "fci": [0, 1, 14], "space": 0, "spatial": [0, 1, 2, 3, 10, 14, 16, 17], "tupl": [0, 1, 2, 4, 9, 10, 16], "alpha": [0, 1, 2, 9, 10, 14, 17], "beta": [0, 1, 2, 9, 10, 14, 17], "pair": [0, 2], "integ": 0, "dim_a": [0, 14], "dim_b": [0, 14], "repres": [0, 3, 4, 5, 9, 14, 17], "one_hot": [0, 11, 12], "index": [0, 2, 8, 13, 14, 17], "arrai": [0, 2, 4, 9, 14], "all": [0, 2, 17], "zero": [0, 4], "except": 0, "one": [0, 1, 2, 3, 4, 9, 14, 16, 17], "specifi": [0, 3, 4, 9, 17], "desir": 0, "place": [0, 1, 2, 8, 9, 10, 17], "hot": 0, "slater_determin": [0, 11, 12, 14, 15, 16, 17], "occupied_orbit": [0, 14, 15, 16, 17], "slater": [0, 9, 14, 15, 16], "determin": [0, 4, 9, 14, 15, 16], "sequenc": 0, "list": [0, 1, 2, 4, 9, 17], "first": [0, 2, 4, 9, 15, 16, 17], "second": [0, 4, 16], "rotat": [0, 1, 2, 3, 4, 8, 9, 10, 14, 16, 17, 18], "appli": [0, 1, 2, 4, 8, 10, 14, 15, 16, 17], "configur": [0, 14], "In": [0, 10, 15, 16, 17], "other": [0, 17], "word": [0, 17], "thi": [0, 2, 3, 4, 9, 10, 14, 15, 16, 17], "describ": [0, 1, 2, 10, 14, 15, 16, 17], "slater_determinant_one_rdm": [0, 11, 12], "particl": [0, 9, 14, 15], "reduc": [0, 9], "densiti": [0, 9], "contain": [0, 2, 4, 10, 17], "indic": [0, 3, 4, 17], "similarli": [0, 16], "util": [0, 4], "random_nelec": [0, 11, 12], "n_alpha": [0, 14, 15, 16, 17], "n_beta": [0, 14, 15, 16, 17], "random_occupied_orbit": [0, 11, 12], "occ_a": 0, "occ_b": 0, "expectation_pow": [0, 11, 12], "one_rdm": [0, 9], "power": 0, "expect": [0, 9, 15], "oper": [0, 1, 2, 3, 5, 8, 9, 10, 15, 17, 18], "w": [0, 15, 16], "r": [0, 1, 3, 4, 16], "t": [0, 2, 3, 4, 15, 16], "o": 0, "ha": [0, 1, 4, 10, 14, 15, 16, 17], "form": [0, 1, 2, 3, 4, 10, 15, 16, 17], "sum_": [0, 1, 2, 3, 4, 10, 15, 16, 17], "pq": [0, 1, 3, 4, 16], "m_": 0, "a_p": 0, "dagger": [0, 1, 2, 4, 10, 15, 16, 17], "a_q": 0, "function": [0, 1, 2, 3, 4, 6, 9, 10, 14, 15, 16, 17], "take": [0, 3, 14, 17], "m": [0, 4, 15], "its": [0, 2, 3, 4, 9, 10, 15, 16], "argument": [0, 3, 4, 9, 15], "let": [0, 16], "lvert": [0, 17], "psi": [0, 17], "rangl": [0, 17], "Then": 0, "quantiti": 0, "langl": 0, "rvert": 0, "k": [0, 4, 10, 15, 16, 17], "expectation_product": [0, 11, 12], "product": [0, 2, 16], "matric": [0, 1, 3, 4, 10, 15, 16, 17], "o_1": 0, "o_2": 0, "dot": 0, "o_k": 0, "softwar": [0, 14], "librari": [0, 14], "fast": 0, "simul": [0, 9, 13, 14, 15, 17, 18], "fermion": [0, 2, 13, 14, 15, 17], "quantum": [0, 2, 3, 13, 14, 16, 17], "circuit": [0, 3, 13, 14], "diagon": [1, 2, 3, 4, 8, 9, 10, 15, 17, 18], "coulomb": [1, 2, 3, 4, 8, 9, 10, 17, 18], "vec": [1, 2, 4, 8, 9, 10, 14, 15, 16], "mat": [1, 2, 4], "mat_alpha_beta": [1, 2], "fals": [1, 2, 3, 4, 9, 10], "occupations_a": [1, 2, 8], "occupations_b": [1, 2, 8], "strings_a": [1, 2, 8], "strings_b": [1, 2, 8], "j": [1, 2, 3, 10, 15, 16, 17], "sigma": [1, 2, 3, 10, 15, 16, 17], "tau": [1, 2, 3, 10, 16, 17], "z_": [1, 2], "ij": [1, 2, 3, 10, 15, 16, 17], "n_": [1, 2, 10, 14, 15, 16, 17], "where": [1, 2, 3, 4, 9, 10, 15, 16, 17], "denot": [1, 2, 3, 15], "spin": [1, 2, 10, 14, 15, 17], "z": [1, 2, 3, 4, 9, 14], "also": [1, 2, 9, 10, 15], "term": [1, 2, 3, 4, 9, 10, 16, 17], "sum": [1, 2, 8, 9, 16], "differ": [1, 2, 3, 4, 10, 17], "neq": [1, 2, 3], "state": [1, 2, 8, 9, 10, 11, 12, 15, 16, 17], "transform": [1, 2, 3, 10, 14, 15], "coeffici": [1, 2, 3, 4, 10, 15, 17], "interact": [1, 2, 14], "between": [1, 2, 3, 4, 17], "bool": [1, 2, 3, 4, 9, 10], "whether": [1, 2, 3, 4, 9, 10], "represent": [1, 3, 4, 9, 14], "string": [1, 2, 9, 14], "convert": [1, 5, 10, 14, 15, 16], "linear": [1, 2, 4, 5, 15], "mathcal": [1, 2, 10, 15, 16, 17], "u": [1, 2, 3, 4], "linearoper": [1, 5, 15, 16], "implement": [1, 14, 15, 17], "action": [1, 15], "molecular": [1, 3, 17], "0": [1, 3, 4, 9, 15, 16, 17], "h": [1, 3, 16, 17], "h_": [1, 3, 4, 16], "dagger_": [1, 2, 3, 15, 16], "p": [1, 2, 3, 4, 16, 17], "a_": [1, 2, 3, 15, 16], "q": [1, 3, 16], "frac12": [1, 3, 10, 16, 17], "pqr": [1, 3, 4, 16], "": [1, 3, 4, 8, 12, 14, 16], "here": [1, 3, 4, 14, 15, 16], "call": [1, 3, 14, 15, 16], "basi": [1, 3, 10, 15, 16, 17], "combin": [1, 2, 15], "coeff": [1, 2], "lambda_i": [1, 2, 15], "construct": [1, 16, 17], "time": [2, 3, 4, 8, 9, 14, 16], "evolut": [2, 8, 9, 16], "orbital_rotation_index_a": 2, "orbital_rotation_index_b": 2, "copi": [2, 9, 10], "true": [2, 3, 4, 9, 10, 14, 17], "exp": [2, 15], "befor": [2, 9, 10, 17], "alwai": [2, 4, 9, 10, 15], "newli": [2, 9, 10], "alloc": [2, 9, 10], "origin": [2, 3, 4, 9, 10, 16], "left": [2, 9, 10, 15], "untouch": [2, 9, 10], "mai": [2, 4, 9, 10, 17], "still": [2, 9, 10, 17], "have": [2, 3, 4, 9, 10, 14, 15, 17], "overwritten": [2, 9, 10], "It": [2, 3, 4, 9, 10, 14, 16], "possibl": [2, 3, 4, 9, 10], "modifi": [2, 3, 4, 9, 10], "evolv": [2, 9, 16], "comput": [2, 4, 5, 9, 15, 17], "theta": 2, "target_orb": 2, "g": [2, 4, 9, 17], "dagger_i": 2, "a_j": 2, "dagger_j": 2, "a_i": 2, "angl": 2, "n": [2, 3, 4, 14, 15, 16, 17], "prod": 2, "tunnel": 2, "rais": 2, "valueerror": 2, "must": [2, 4], "dimension": [2, 4, 9, 14], "length": [2, 14, 16, 17], "allow_row_permut": 2, "allow_col_permut": 2, "map": [2, 15], "creation": [2, 15], "mapsto": [2, 15], "u_": 2, "ji": [2, 15], "equival": 2, "log": 2, "_": [2, 3, 4, 10, 15, 16, 17], "allow": [2, 3, 4, 17], "permut": [2, 4], "row": [2, 4, 14], "column": [2, 4, 8, 14, 15], "wa": 2, "well": 2, "actual": [2, 15, 17], "effect": 2, "both": [2, 3, 4], "set": [2, 3, 4, 10, 14, 15, 16, 17], "onli": [2, 3, 4, 14, 15, 17], "linkstr_index": [2, 8], "perform": [2, 3, 4, 10, 15, 16], "diag_str": [2, 8], "off_diag_str": [2, 8], "off_diag_index": [2, 8], "three": 2, "numpi": [2, 4, 9, 14, 15, 16, 17], "x": [2, 17], "binom": 2, "th": [2, 15], "unoccupi": 2, "3": [2, 14, 15, 16, 17], "ax": 2, "correspond": [2, 3, 4, 9, 15, 16], "For": [2, 14, 15, 17], "fix": [2, 4, 14], "choic": [2, 14], "str0": 2, "last": 2, "each": [2, 3, 4, 9, 10, 14, 16, 17], "str1": 2, "sign": 2, "annihil": 2, "creat": [2, 14, 15, 16, 17], "give": [2, 15], "pariti": 2, "doubl": [3, 4, 9, 17, 18], "factor": [3, 4, 9, 17, 18], "low": [3, 4, 14], "decomposit": [3, 4, 9], "kappa_": 3, "sum_t": 3, "text": [3, 16], "pi": 3, "qi": 3, "altern": [3, 16], "sometim": 3, "yield": [3, 4, 16, 17], "simpler": 3, "under": 3, "jordan": 3, "wigner": 3, "frac": 3, "pauli": 3, "obtain": [3, 15, 16, 17], "rewrit": 3, "part": [3, 4], "updat": [3, 16], "appropri": 3, "kappa": 3, "frac18": 3, "asterisk": 3, "summat": 3, "over": 3, "rather": [3, 14], "than": [3, 9, 14, 17], "properti": [3, 10, 15], "tol": [3, 4, 10], "1e": [3, 4, 9, 10], "08": [3, 4, 10, 17], "max_vec": [3, 4], "optim": [3, 4, 9, 10, 17], "method": [3, 4, 9, 17], "l": [3, 4, 10, 16, 17], "bfg": [3, 4], "b": [3, 4, 15], "diag_coulomb_mask": [3, 4], "choleski": [3, 4], "act": 3, "decompos": [3, 4, 9, 16], "output": [3, 16, 17], "guarante": 3, "so": [3, 4, 15, 16, 17], "depend": [3, 4, 9, 14], "error": [3, 4], "threshold": [3, 4], "larger": [3, 4], "lead": 3, "smaller": [3, 4, 16], "furthermor": [3, 4], "max_rank": 3, "upper": [3, 4, 9, 17], "bound": [3, 4, 9], "routin": [3, 4, 14], "straightforward": [3, 4], "exact": [3, 4, 14, 16], "nest": [3, 4], "eigenvalu": [3, 4, 9, 15], "addition": [3, 4], "can": [3, 4, 5, 10, 14, 15, 16, 17], "choos": [3, 4, 14, 17], "store": [3, 4, 9, 16, 17], "achiev": [3, 4, 16], "compress": [3, 4], "enabl": [3, 4], "attempt": [3, 4], "minim": [3, 4, 17], "least": [3, 4], "squar": [3, 4, 9, 17], "quantifi": [3, 4], "scipi": [3, 4, 5, 14, 15, 16, 17], "pass": [3, 4, 15], "gradient": [3, 4], "core": [3, 4], "constrain": [3, 4], "certain": [3, 4], "element": [3, 4], "nonzero": [3, 4, 17], "boolean": [3, 4], "triangular": [3, 4], "becaus": [3, 4, 14, 16, 17], "note": [3, 17], "current": 3, "support": [3, 9, 10], "toler": [3, 4, 17], "defin": [3, 4, 17], "absolut": [3, 4, 9], "reconstruct": [3, 4], "limit": [3, 4, 17], "keep": [3, 4], "overrid": [3, 4], "str": [3, 4, 9], "see": [3, 4], "document": [3, 4], "callback": [3, 4], "usag": [3, 4], "dict": [3, 4], "mask": [3, 4], "full": [3, 4, 14], "instead": [3, 4], "much": [3, 4, 14], "more": [3, 4, 14, 17], "expens": [3, 4], "ignor": [3, 4, 16], "1808": [3, 4], "02625": [3, 4], "2104": [3, 4], "08957": [3, 4], "ell": 4, "pk": 4, "qk": 4, "respect": 4, "too": 4, "small": 4, "exce": 4, "collect": 4, "t2_amplitud": [4, 10], "t_": 4, "ijab": 4, "ap": 4, "ip": 4, "bq": 4, "jq": 4, "v_i": 4, "posit": 4, "definit": 4, "No": 4, "check": [4, 15, 16], "verifi": 4, "1711": 4, "02242": 4, "includ": [4, 10, 14, 15, 16], "assembl": 4, "whose": [4, 5, 14], "target": 4, "slice": [4, 8], "out": [4, 16], "entri": [4, 17], "satisfi": [4, 15], "begin": [4, 15, 17], "pmatrix": 4, "end": [4, 10, 15, 17], "http": 4, "en": 4, "wikipedia": 4, "org": 4, "wiki": 4, "givens_rot": 4, "stable_calcul": 4, "www": 4, "netlib": 4, "lapack": 4, "lawnspdf": 4, "lawn148": 4, "pdf": 4, "algebra": 4, "12": [4, 9, 17], "expm": 4, "taylor": 4, "seri": 4, "expans": 4, "pivot": 4, "lu": 4, "rtype": 4, "lower": 4, "unit": 4, "rtol": 4, "05": 4, "atol": 4, "approxim": [4, 16], "rel": 4, "numer": 4, "within": 4, "union": 4, "bool_": 4, "arg": 5, "kwarg": 5, "obj": 5, "submodul": [6, 11, 12], "apply_diag_coulomb_evolution_in_place_num_rep_numpi": [6, 8], "apply_diag_coulomb_evolution_in_place_num_rep_slow": [6, 8], "apply_diag_coulomb_evolution_in_place_z_rep_slow": [6, 8], "apply_num_op_sum_evolution_in_place_slow": [6, 8], "apply_givens_rotation_in_place_slow": [6, 8], "apply_single_column_transformation_in_place_slow": [6, 8], "gen_orbital_rotation_index_in_place_slow": [6, 8], "python": 6, "version": 6, "were": 6, "rewritten": [6, 15], "rust": 6, "mat_exp": 8, "mat_alpha_beta_exp": 8, "mat_exp_conj": 8, "mat_alpha_beta_exp_conj": 8, "phase": [8, 15], "occup": [8, 14, 15, 16], "c": 8, "slice1": 8, "slice2": 8, "diag_val": 8, "singl": [8, 16], "off_diag_strings_index": 8, "diag": 9, "op": 9, "truncation_threshold": 9, "less": [9, 17], "truncat": [9, 17], "sampling_method": 9, "probabl": 9, "rest": [9, 16], "same": [9, 10, 14, 17], "order": [9, 10, 14, 16, 17], "thei": [9, 15, 17], "e": [9, 10, 16, 17], "follow": [9, 14, 15, 16, 17], "norm": 9, "proport": [9, 15], "spectral": 9, "requir": [9, 17], "incoher": 9, "channel": 9, "n_particl": 9, "total": [9, 10, 16, 17], "n_step": [9, 16], "n_sampl": 9, "via": [9, 16], "step": [9, 15, 16], "explicit": 9, "whenev": 9, "complet": 9, "character": 9, "trajectori": 9, "random": [9, 11, 12, 14, 15], "final": [9, 10, 16, 17], "just": [9, 16, 17], "statevector": [9, 14, 15], "otherwis": 9, "largest": 9, "singular": 9, "varianc": 9, "rdm": 9, "suzuki": 9, "formula": 9, "local": [10, 18], "cluster": [10, 18], "jastrow": [10, 18], "ansatz": [10, 18], "ucj": 10, "prod_": [10, 17], "w_k": [10, 17], "_k": [10, 16, 17], "mathbf": [10, 15, 16, 17], "commut": [10, 16, 17], "we": [10, 15, 16, 17], "enforc": [10, 17], "As": [10, 14, 15, 16, 17], "involv": [10, 17], "To": [10, 14, 15, 16, 17], "static": 10, "param": 10, "alpha_alpha_indic": [10, 17], "alpha_beta_indic": [10, 17], "with_final_orbital_rot": 10, "t1_amplitud": 10, "t1": 10, "repetit": [10, 17], "possibli": 10, "packag": [11, 12], "subpackag": [11, 12], "modul": [11, 12, 13, 14], "content": [11, 12], "molecular_data": [11, 12], "test": [11, 12, 15, 16], "wick": [11, 12], "ffsim": [12, 15, 16, 17, 18], "faster": 13, "tutori": [13, 15, 16, 17], "api": 13, "search": 13, "page": 13, "conserv": 14, "compon": 14, "By": 14, "advantag": 14, "symmetri": [14, 15], "effici": 14, "level": [14, 16], "doe": 14, "primari": 14, "wai": [14, 15, 17], "directli": [14, 16], "exampl": [14, 15, 17], "code": [14, 16, 17], "show": [14, 15, 16, 17], "how": [14, 15, 16, 17], "import": [14, 15, 16, 17], "6": [14, 15, 16], "rang": [14, 15, 16, 17], "1234": [14, 15], "rotated_vec": [14, 15], "plain": 14, "Its": 14, "system": [14, 15], "conveni": 14, "calcul": [14, 16, 17], "comb": 14, "assert": 14, "standard": 14, "often": [14, 17], "simpli": [14, 15], "reshap": 14, "reshaped_vec": 14, "pyscf": [14, 16, 17], "fundament": 15, "mode": 15, "sum_j": 15, "That": 15, "new": 15, "anticommut": 15, "relat": [15, 17], "align": [15, 17], "_1": 15, "_2": 15, "ani": [15, 17], "section": 15, "ll": [15, 16, 17], "demonstr": [15, 16, 17], "task": 15, "consid": [15, 17], "right": 15, "introduc": [15, 17], "eigendecomposit": 15, "sum_k": [15, 16], "lambda_k": 15, "ik": 15, "jk": 15, "our": [15, 16, 17], "ground": [15, 17], "pick": 15, "up": 15, "energi": [15, 16, 17], "spars": [15, 16], "lowest": [15, 16], "eigenvector": 15, "eig": 15, "eigsh": 15, "la": 15, "fact": 15, "you": 15, "illustr": 15, "purpos": 15, "explicitli": 15, "eigh": [15, 16], "evolved_vec": 15, "conj": 15, "undo": 15, "expected_phas": 15, "1j": [15, 16], "assert_allclos": 15, "mention": [15, 16], "abov": [15, 16], "below": [15, 16, 17], "better": [15, 16], "4": [15, 16, 17], "evolved_vec_alt": 15, "daunt": 16, "scale": 16, "cell": [16, 17], "hydrogen": [16, 17], "molecul": [16, 17], "stretch": [16, 17], "bond": [16, 17], "build": [16, 17], "h2": [16, 17], "mol": [16, 17], "gto": [16, 17], "mole": [16, 17], "atom": [16, 17], "8": [16, 17], "sto": [16, 17], "6g": [16, 17], "hartree_fock": [16, 17], "scf": [16, 17], "rhf": [16, 17], "kernel": [16, 17], "mol_data": [16, 17], "from_hartree_fock": [16, 17], "mol_hamiltonian": [16, 17], "df_hamiltonian": 16, "converg": [16, 17], "837796382593709": [16, 17], "dataclass": [16, 17], "print": [16, 17], "some": 16, "inform": 16, "One": 16, "27478830e": 16, "01": [16, 17], "69963606e": 16, "16": 16, "27557343e": 16, "77238770e": 16, "5": [16, 17], "23173938e": 16, "85221301e": 16, "33545754e": 16, "60188973e": 16, "48240570e": 16, "63466523e": 16, "17": 16, "67297191e": 16, "18": 16, "53132024e": 16, "21318608e": 16, "00": [16, 17], "85747582e": 16, "10988315e": 16, "07792507e": 16, "14653029e": 16, "44655364e": 16, "30": 16, "11022302e": 16, "52090881e": 16, "03": 16, "00000000e": 16, "7": [16, 17], "07106781e": 16, "93775326e": 16, "15": 16, "although": 16, "alreadi": 16, "built": 16, "manual": 16, "asymmetr": 16, "basic": 16, "h_k": 16, "divid": 16, "exponenti": 16, "individu": 16, "do": 16, "approx": 16, "prod_k": 16, "higher": 16, "deriv": 16, "write": 16, "recal": 16, "addit": 16, "think": 16, "compos": 16, "quadrat": [16, 18], "def": [16, 17], "simulate_trotter_step_double_factor": 16, "one_body_energi": 16, "one_body_basis_chang": 16, "zip": 16, "finish": 16, "handl": 16, "split": 16, "multipl": 16, "wrote": 16, "step_tim": 16, "hartre": [16, 17], "fock": [16, 17], "match": 16, "when": [16, 17], "initial_st": 16, "\u03c8": [16, 17], "hf_energi": 16, "vdot": [16, 17], "f": [16, 17], "8377963825937086": 16, "now": 16, "later": 16, "compar": 16, "exact_st": 16, "expm_multipli": 16, "tracea": 16, "fidel": 16, "ab": 16, "9696296369955067": 16, "final_st": [16, 17], "9990275744083494": 16, "improv": 16, "increas": 16, "10": [16, 17], "9999906233109681": 16, "commonli": 16, "known": 16, "fourth": 16, "reproduc": 16, "9": 16, "fewer": 16, "9999999336740071": 16, "phi_0": 17, "taken": 17, "express": 17, "previou": 17, "constructor": 17, "provid": 17, "ccsd": 17, "mp2": 17, "run": 17, "cc": 17, "reference_st": 17, "ansatz_st": 17, "initiali": 17, "9707730767165441": 17, "e_corr": 17, "1329766941228354": 17, "9696246123746104": 17, "facilit": 17, "convers": 17, "precis": 17, "somewhat": 17, "complic": 17, "short": 17, "non": 17, "redund": 17, "associ": 17, "fun": 17, "x0": 17, "len": 17, "20": 17, "messag": 17, "termin": 17, "successfulli": 17, "success": 17, "statu": 17, "9707730753914435": 17, "678e": 17, "970e": 17, "nit": 17, "jac": 17, "000e": 17, "451e": 17, "941e": 17, "hess_inv": 17, "374e": 17, "036e": 17, "13": 17, "571e": 17, "nfev": 17, "63": 17, "njev": 17, "either": 17, "connect": 17, "swap": 17, "network": 17, "make": 17, "challeng": 17, "noisi": 17, "pre": 17, "fault": 17, "processor": 17, "idea": 17, "impos": 17, "sparsiti": 17, "constraint": 17, "them": 17, "depth": 17, "qubit": 17, "topologi": 17, "triangl": 17, "sinc": 17, "need": 17, "lattic": 17, "parallel": 17, "line": 17, "rung": 17, "ladder": 17, "With": 17, "setup": 17, "while": 17, "share": 17, "ldot": 17, "without": 17, "Of": 17, "cours": 17, "notic": 17, "decreas": 17, "14": 17, "simpl": 17, "abl": 17, "recov": 17, "exactli": 17, "9707730754179811": 17, "09": 17, "980e": 17, "790e": 17, "75": 17, "introduct": 18}, "objects": {"": [[0, 0, 0, "-", "ffsim"]], "ffsim": [[1, 0, 0, "-", "contract"], [2, 0, 0, "-", "gates"], [3, 0, 0, "-", "hamiltonians"], [4, 0, 0, "-", "linalg"], [0, 0, 0, "-", "molecular_data"], [5, 0, 0, "-", "protocols"], [0, 0, 0, "-", "random"], [6, 0, 0, "-", "slow"], [0, 0, 0, "-", "states"], [0, 0, 0, "-", "testing"], [9, 0, 0, "-", "trotter"], [10, 0, 0, "-", "variational"], [0, 0, 0, "-", "wick"]], "ffsim.contract": [[1, 0, 0, "-", "diag_coulomb"], [1, 0, 0, "-", "hamiltonian"], [1, 0, 0, "-", "num_op_sum"]], "ffsim.contract.diag_coulomb": [[1, 1, 1, "", "contract_diag_coulomb"], [1, 1, 1, "", "diag_coulomb_linop"]], "ffsim.contract.hamiltonian": [[1, 1, 1, "", "hamiltonian_linop"], [1, 1, 1, "", "hamiltonian_trace"]], "ffsim.contract.num_op_sum": [[1, 1, 1, "", "contract_num_op_sum"], [1, 1, 1, "", "num_op_sum_linop"]], "ffsim.gates": [[2, 0, 0, "-", "diag_coulomb"], [2, 0, 0, "-", "gates"], [2, 0, 0, "-", "num_op_sum"], [2, 0, 0, "-", "orbital_rotation"]], "ffsim.gates.diag_coulomb": [[2, 1, 1, "", "apply_diag_coulomb_evolution"]], "ffsim.gates.gates": [[2, 1, 1, "", "apply_givens_rotation"], [2, 1, 1, "", "apply_num_interaction"], [2, 1, 1, "", "apply_num_op_prod_interaction"], [2, 1, 1, "", "apply_tunneling_interaction"]], "ffsim.gates.num_op_sum": [[2, 1, 1, "", "apply_num_op_sum_evolution"]], "ffsim.gates.orbital_rotation": [[2, 1, 1, "", "apply_orbital_rotation"], [2, 1, 1, "", "gen_orbital_rotation_index"]], "ffsim.hamiltonians": [[3, 0, 0, "-", "double_factorized_hamiltonian"], [3, 0, 0, "-", "molecular_hamiltonian"]], "ffsim.hamiltonians.double_factorized_hamiltonian": [[3, 2, 1, "", "DoubleFactorizedHamiltonian"], [3, 1, 1, "", "double_factorized_hamiltonian"]], "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian": [[3, 3, 1, "", "constant"], [3, 3, 1, "", "diag_coulomb_mats"], [3, 4, 1, "", "norb"], [3, 3, 1, "", "one_body_tensor"], [3, 3, 1, "", "orbital_rotations"], [3, 5, 1, "", "to_number_representation"], [3, 5, 1, "", "to_z_representation"], [3, 3, 1, "", "z_representation"]], "ffsim.hamiltonians.molecular_hamiltonian": [[3, 2, 1, "", "MolecularHamiltonian"]], "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian": [[3, 3, 1, "", "constant"], [3, 4, 1, "", "norb"], [3, 3, 1, "", "one_body_tensor"], [3, 3, 1, "", "two_body_tensor"]], "ffsim.linalg": [[4, 0, 0, "-", "double_factorized"], [4, 0, 0, "-", "givens"], [4, 0, 0, "-", "linalg"], [4, 0, 0, "-", "predicates"]], "ffsim.linalg.double_factorized": [[4, 1, 1, "", "double_factorized"], [4, 1, 1, "", "double_factorized_t2"], [4, 1, 1, "", "modified_cholesky"], [4, 1, 1, "", "optimal_diag_coulomb_mats"]], "ffsim.linalg.givens": [[4, 1, 1, "", "apply_matrix_to_slices"], [4, 1, 1, "", "givens_decomposition"], [4, 1, 1, "", "givens_matrix"]], "ffsim.linalg.linalg": [[4, 1, 1, "", "expm_multiply_taylor"], [4, 1, 1, "", "lup"]], "ffsim.linalg.predicates": [[4, 1, 1, "", "is_antihermitian"], [4, 1, 1, "", "is_hermitian"], [4, 1, 1, "", "is_orthogonal"], [4, 1, 1, "", "is_real_symmetric"], [4, 1, 1, "", "is_special_orthogonal"], [4, 1, 1, "", "is_unitary"]], "ffsim.molecular_data": [[0, 2, 1, "", "MolecularData"]], "ffsim.protocols": [[5, 0, 0, "-", "linear_operator"], [5, 0, 0, "-", "trace"]], "ffsim.protocols.linear_operator": [[5, 2, 1, "", "SupportsLinearOperator"], [5, 1, 1, "", "linear_operator"]], "ffsim.protocols.trace": [[5, 2, 1, "", "SupportsTrace"], [5, 1, 1, "", "trace"]], "ffsim.random": [[0, 1, 1, "", "random_antihermitian"], [0, 1, 1, "", "random_hermitian"], [0, 1, 1, "", "random_orthogonal"], [0, 1, 1, "", "random_real_symmetric_matrix"], [0, 1, 1, "", "random_special_orthogonal"], [0, 1, 1, "", "random_statevector"], [0, 1, 1, "", "random_t2_amplitudes"], [0, 1, 1, "", "random_two_body_tensor_real"], [0, 1, 1, "", "random_unitary"]], "ffsim.slow": [[7, 0, 0, "-", "contract"], [8, 0, 0, "-", "gates"]], "ffsim.slow.contract": [[7, 0, 0, "-", "diag_coulomb"], [7, 0, 0, "-", "num_op_sum"]], "ffsim.slow.gates": [[8, 0, 0, "-", "diag_coulomb"], [8, 0, 0, "-", "num_op_sum"], [8, 0, 0, "-", "orbital_rotation"]], "ffsim.slow.gates.diag_coulomb": [[8, 1, 1, "", "apply_diag_coulomb_evolution_in_place_num_rep_numpy"], [8, 1, 1, "", "apply_diag_coulomb_evolution_in_place_num_rep_slow"], [8, 1, 1, "", "apply_diag_coulomb_evolution_in_place_z_rep_slow"]], "ffsim.slow.gates.num_op_sum": [[8, 1, 1, "", "apply_num_op_sum_evolution_in_place_slow"]], "ffsim.slow.gates.orbital_rotation": [[8, 1, 1, "", "apply_givens_rotation_in_place_slow"], [8, 1, 1, "", "apply_single_column_transformation_in_place_slow"], [8, 1, 1, "", "gen_orbital_rotation_index_in_place_slow"]], "ffsim.states": [[0, 1, 1, "", "dim"], [0, 1, 1, "", "dims"], [0, 1, 1, "", "one_hot"], [0, 1, 1, "", "slater_determinant"], [0, 1, 1, "", "slater_determinant_one_rdm"]], "ffsim.testing": [[0, 1, 1, "", "random_nelec"], [0, 1, 1, "", "random_occupied_orbitals"]], "ffsim.trotter": [[9, 0, 0, "-", "qdrift"], [9, 0, 0, "-", "trotter"]], "ffsim.trotter.qdrift": [[9, 1, 1, "", "expectation_squared_diag_coulomb"], [9, 1, 1, "", "one_body_square_decomposition"], [9, 1, 1, "", "qdrift_probabilities"], [9, 1, 1, "", "simulate_qdrift_double_factorized"], [9, 1, 1, "", "spectral_norm_diag_coulomb"], [9, 1, 1, "", "spectral_norm_one_body_tensor"], [9, 1, 1, "", "variance_diag_coulomb"], [9, 1, 1, "", "variance_one_body_tensor"]], "ffsim.trotter.trotter": [[9, 1, 1, "", "simulate_trotter_double_factorized"]], "ffsim.variational": [[10, 0, 0, "-", "lucj"]], "ffsim.variational.lucj": [[10, 2, 1, "", "UCJOperator"], [10, 1, 1, "", "apply_ucj_operator"]], "ffsim.variational.lucj.UCJOperator": [[10, 3, 1, "", "diag_coulomb_mats_alpha_alpha"], [10, 3, 1, "", "diag_coulomb_mats_alpha_beta"], [10, 3, 1, "", "final_orbital_rotation"], [10, 5, 1, "", "from_parameters"], [10, 5, 1, "", "from_t_amplitudes"], [10, 4, 1, "", "n_reps"], [10, 4, 1, "", "norb"], [10, 3, 1, "", "orbital_rotations"], [10, 5, 1, "", "to_parameters"], [10, 5, 1, "", "to_t_amplitudes"]], "ffsim.wick": [[0, 1, 1, "", "expectation_power"], [0, 1, 1, "", "expectation_product"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:property", "5": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "property", "Python property"], "5": ["py", "method", "Python method"]}, "titleterms": {"ffsim": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14], "packag": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "subpackag": [0, 6], "submodul": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10], "molecular_data": 0, "modul": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "random": 0, "state": 0, "test": 0, "wick": 0, "content": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 18], "contract": [1, 7], "diag_coulomb": [1, 2, 7, 8], "hamiltonian": [1, 3, 15, 16], "num_op_sum": [1, 2, 7, 8], "gate": [2, 8], "orbital_rot": [2, 8], "double_factorized_hamiltonian": 3, "molecular_hamiltonian": 3, "linalg": 4, "double_factor": 4, "given": 4, "predic": 4, "protocol": 5, "linear_oper": 5, "trace": 5, "slow": [6, 7, 8], "trotter": [9, 16], "qdrift": 9, "variat": 10, "lucj": [10, 17], "api": 12, "refer": 12, "document": 13, "indic": 13, "tabl": 13, "introduct": 14, "orbit": 15, "rotat": 15, "quadrat": 15, "time": 15, "evolut": 15, "diagon": 16, "coulomb": 16, "oper": 16, "doubl": 16, "factor": 16, "simul": 16, "represent": 16, "molecular": 16, "brief": 16, "background": 16, "suzuki": 16, "formula": 16, "implement": 16, "The": 17, "local": 17, "unitari": 17, "cluster": 17, "jastrow": 17, "ansatz": 17, "ucj": 17, "tutori": 18}, "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 package": [[0, "ffsim-package"]], "Subpackages": [[0, "subpackages"], [6, "subpackages"]], "Submodules": [[0, "submodules"], [1, "submodules"], [2, "submodules"], [3, "submodules"], [4, "submodules"], [5, "submodules"], [7, "submodules"], [8, "submodules"], [9, "submodules"], [10, "submodules"]], "ffsim.molecular_data module": [[0, "module-ffsim.molecular_data"]], "ffsim.random module": [[0, "module-ffsim.random"]], "ffsim.states module": [[0, "module-ffsim.states"]], "ffsim.testing module": [[0, "module-ffsim.testing"]], "ffsim.wick module": [[0, "module-ffsim.wick"]], "Module contents": [[0, "module-ffsim"], [1, "module-ffsim.contract"], [2, "module-ffsim.gates"], [3, "module-ffsim.hamiltonians"], [4, "module-ffsim.linalg"], [5, "module-ffsim.protocols"], [6, "module-ffsim.slow"], [7, "module-ffsim.slow.contract"], [8, "module-ffsim.slow.gates"], [9, "module-ffsim.trotter"], [10, "module-ffsim.variational"]], "ffsim.contract package": [[1, "ffsim-contract-package"]], "ffsim.contract.diag_coulomb module": [[1, "module-ffsim.contract.diag_coulomb"]], "ffsim.contract.hamiltonian module": [[1, "module-ffsim.contract.hamiltonian"]], "ffsim.contract.num_op_sum module": [[1, "module-ffsim.contract.num_op_sum"]], "ffsim.gates package": [[2, "ffsim-gates-package"]], "ffsim.gates.diag_coulomb module": [[2, "module-ffsim.gates.diag_coulomb"]], "ffsim.gates.gates module": [[2, "module-ffsim.gates.gates"]], "ffsim.gates.num_op_sum module": [[2, "module-ffsim.gates.num_op_sum"]], "ffsim.gates.orbital_rotation module": [[2, "module-ffsim.gates.orbital_rotation"]], "ffsim.hamiltonians package": [[3, "ffsim-hamiltonians-package"]], "ffsim.hamiltonians.double_factorized_hamiltonian module": [[3, "module-ffsim.hamiltonians.double_factorized_hamiltonian"]], "ffsim.hamiltonians.molecular_hamiltonian module": [[3, "module-ffsim.hamiltonians.molecular_hamiltonian"]], "ffsim.linalg package": [[4, "ffsim-linalg-package"]], "ffsim.linalg.double_factorized module": [[4, "module-ffsim.linalg.double_factorized"]], "ffsim.linalg.givens module": [[4, "module-ffsim.linalg.givens"]], "ffsim.linalg.linalg module": [[4, "module-ffsim.linalg.linalg"]], "ffsim.linalg.predicates module": [[4, "module-ffsim.linalg.predicates"]], "ffsim.protocols package": [[5, "ffsim-protocols-package"]], "ffsim.protocols.linear_operator module": [[5, "module-ffsim.protocols.linear_operator"]], "ffsim.protocols.trace module": [[5, "module-ffsim.protocols.trace"]], "ffsim.slow package": [[6, "ffsim-slow-package"]], "ffsim.slow.contract package": [[7, "ffsim-slow-contract-package"]], "ffsim.slow.contract.diag_coulomb module": [[7, "module-ffsim.slow.contract.diag_coulomb"]], "ffsim.slow.contract.num_op_sum module": [[7, "module-ffsim.slow.contract.num_op_sum"]], "ffsim.slow.gates package": [[8, "ffsim-slow-gates-package"]], "ffsim.slow.gates.diag_coulomb module": [[8, "module-ffsim.slow.gates.diag_coulomb"]], "ffsim.slow.gates.num_op_sum module": [[8, "module-ffsim.slow.gates.num_op_sum"]], "ffsim.slow.gates.orbital_rotation module": [[8, "module-ffsim.slow.gates.orbital_rotation"]], "ffsim.trotter package": [[9, "ffsim-trotter-package"]], "ffsim.trotter.qdrift module": [[9, "module-ffsim.trotter.qdrift"]], "ffsim.trotter.trotter module": [[9, "module-ffsim.trotter.trotter"]], "ffsim.variational package": [[10, "ffsim-variational-package"]], "ffsim.variational.lucj module": [[10, "module-ffsim.variational.lucj"]], "ffsim": [[11, "ffsim"]], "API reference": [[12, "api-reference"]], "ffsim documentation": [[13, "ffsim-documentation"]], "Contents:": [[13, null], [18, null]], "Indices and tables": [[13, "indices-and-tables"]], "Introduction to ffsim": [[14, "Introduction-to-ffsim"]], "Orbital rotations and quadratic Hamiltonians": [[15, "Orbital-rotations-and-quadratic-Hamiltonians"]], "Orbital rotations": [[15, "Orbital-rotations"]], "Time evolution by a quadratic Hamiltonian": [[15, "Time-evolution-by-a-quadratic-Hamiltonian"]], "Diagonal Coulomb operators and double-factorized Trotter simulation": [[16, "Diagonal-Coulomb-operators-and-double-factorized-Trotter-simulation"]], "Double-factorized representation of the molecular Hamiltonian": [[16, "Double-factorized-representation-of-the-molecular-Hamiltonian"]], "Trotter simulation of the double-factorized Hamiltonian": [[16, "Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "Brief background on Trotter-Suzuki formulas": [[16, "Brief-background-on-Trotter-Suzuki-formulas"]], "Implementing Trotter simulation of the double-factorized Hamiltonian": [[16, "Implementing-Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "The local unitary cluster Jastrow (LUCJ) ansatz": [[17, "The-local-unitary-cluster-Jastrow-(LUCJ)-ansatz"], [17, "id1"]], "The unitary cluster Jastrow (UCJ) ansatz": [[17, "The-unitary-cluster-Jastrow-(UCJ)-ansatz"]], "Tutorials": [[18, "tutorials"]]}, "indexentries": {"moleculardata (class in ffsim.molecular_data)": [[0, "ffsim.molecular_data.MolecularData"]], "dim() (in module ffsim.states)": [[0, "ffsim.states.dim"]], "dims() (in module ffsim.states)": [[0, "ffsim.states.dims"]], "expectation_power() (in module ffsim.wick)": [[0, "ffsim.wick.expectation_power"]], "expectation_product() (in module ffsim.wick)": [[0, "ffsim.wick.expectation_product"]], "ffsim": [[0, "module-ffsim"]], "ffsim.molecular_data": [[0, "module-ffsim.molecular_data"]], "ffsim.random": [[0, "module-ffsim.random"]], "ffsim.states": [[0, "module-ffsim.states"]], "ffsim.testing": [[0, "module-ffsim.testing"]], "ffsim.wick": [[0, "module-ffsim.wick"]], "module": [[0, "module-ffsim"], [0, "module-ffsim.molecular_data"], [0, "module-ffsim.random"], [0, "module-ffsim.states"], [0, "module-ffsim.testing"], [0, "module-ffsim.wick"], [1, "module-ffsim.contract"], [1, "module-ffsim.contract.diag_coulomb"], [1, "module-ffsim.contract.hamiltonian"], [1, "module-ffsim.contract.num_op_sum"], [2, "module-ffsim.gates"], [2, "module-ffsim.gates.diag_coulomb"], [2, "module-ffsim.gates.gates"], [2, "module-ffsim.gates.num_op_sum"], [2, "module-ffsim.gates.orbital_rotation"], [3, "module-ffsim.hamiltonians"], [3, "module-ffsim.hamiltonians.double_factorized_hamiltonian"], [3, "module-ffsim.hamiltonians.molecular_hamiltonian"], [4, "module-ffsim.linalg"], [4, "module-ffsim.linalg.double_factorized"], [4, "module-ffsim.linalg.givens"], [4, "module-ffsim.linalg.linalg"], [4, "module-ffsim.linalg.predicates"], [5, "module-ffsim.protocols"], [5, "module-ffsim.protocols.linear_operator"], [5, "module-ffsim.protocols.trace"], [6, "module-ffsim.slow"], [7, "module-ffsim.slow.contract"], [7, "module-ffsim.slow.contract.diag_coulomb"], [7, "module-ffsim.slow.contract.num_op_sum"], [8, "module-ffsim.slow.gates"], [8, "module-ffsim.slow.gates.diag_coulomb"], [8, "module-ffsim.slow.gates.num_op_sum"], [8, "module-ffsim.slow.gates.orbital_rotation"], [9, "module-ffsim.trotter"], [9, "module-ffsim.trotter.qdrift"], [9, "module-ffsim.trotter.trotter"], [10, "module-ffsim.variational"], [10, "module-ffsim.variational.lucj"]], "one_hot() (in module ffsim.states)": [[0, "ffsim.states.one_hot"]], "random_antihermitian() (in module ffsim.random)": [[0, "ffsim.random.random_antihermitian"]], "random_hermitian() (in module ffsim.random)": [[0, "ffsim.random.random_hermitian"]], "random_nelec() (in module ffsim.testing)": [[0, "ffsim.testing.random_nelec"]], "random_occupied_orbitals() (in module ffsim.testing)": [[0, "ffsim.testing.random_occupied_orbitals"]], "random_orthogonal() (in module ffsim.random)": [[0, "ffsim.random.random_orthogonal"]], "random_real_symmetric_matrix() (in module ffsim.random)": [[0, "ffsim.random.random_real_symmetric_matrix"]], "random_special_orthogonal() (in module ffsim.random)": [[0, "ffsim.random.random_special_orthogonal"]], "random_statevector() (in module ffsim.random)": [[0, "ffsim.random.random_statevector"]], "random_t2_amplitudes() (in module ffsim.random)": [[0, "ffsim.random.random_t2_amplitudes"]], "random_two_body_tensor_real() (in module ffsim.random)": [[0, "ffsim.random.random_two_body_tensor_real"]], "random_unitary() (in module ffsim.random)": [[0, "ffsim.random.random_unitary"]], "slater_determinant() (in module ffsim.states)": [[0, "ffsim.states.slater_determinant"]], "slater_determinant_one_rdm() (in module ffsim.states)": [[0, "ffsim.states.slater_determinant_one_rdm"]], "contract_diag_coulomb() (in module ffsim.contract.diag_coulomb)": [[1, "ffsim.contract.diag_coulomb.contract_diag_coulomb"]], "contract_num_op_sum() (in module ffsim.contract.num_op_sum)": [[1, "ffsim.contract.num_op_sum.contract_num_op_sum"]], "diag_coulomb_linop() (in module ffsim.contract.diag_coulomb)": [[1, "ffsim.contract.diag_coulomb.diag_coulomb_linop"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "ffsim.contract.diag_coulomb": [[1, "module-ffsim.contract.diag_coulomb"]], "ffsim.contract.hamiltonian": [[1, "module-ffsim.contract.hamiltonian"]], "ffsim.contract.num_op_sum": [[1, "module-ffsim.contract.num_op_sum"]], "hamiltonian_linop() (in module ffsim.contract.hamiltonian)": [[1, "ffsim.contract.hamiltonian.hamiltonian_linop"]], "hamiltonian_trace() (in module ffsim.contract.hamiltonian)": [[1, "ffsim.contract.hamiltonian.hamiltonian_trace"]], "num_op_sum_linop() (in module ffsim.contract.num_op_sum)": [[1, "ffsim.contract.num_op_sum.num_op_sum_linop"]], "apply_diag_coulomb_evolution() (in module ffsim.gates.diag_coulomb)": [[2, "ffsim.gates.diag_coulomb.apply_diag_coulomb_evolution"]], "apply_givens_rotation() (in module ffsim.gates.gates)": [[2, "ffsim.gates.gates.apply_givens_rotation"]], "apply_num_interaction() (in module ffsim.gates.gates)": [[2, "ffsim.gates.gates.apply_num_interaction"]], "apply_num_op_prod_interaction() (in module ffsim.gates.gates)": [[2, "ffsim.gates.gates.apply_num_op_prod_interaction"]], "apply_num_op_sum_evolution() (in module ffsim.gates.num_op_sum)": [[2, "ffsim.gates.num_op_sum.apply_num_op_sum_evolution"]], "apply_orbital_rotation() (in module ffsim.gates.orbital_rotation)": [[2, "ffsim.gates.orbital_rotation.apply_orbital_rotation"]], "apply_tunneling_interaction() (in module ffsim.gates.gates)": [[2, "ffsim.gates.gates.apply_tunneling_interaction"]], "ffsim.gates": [[2, "module-ffsim.gates"]], "ffsim.gates.diag_coulomb": [[2, "module-ffsim.gates.diag_coulomb"]], "ffsim.gates.gates": [[2, "module-ffsim.gates.gates"]], "ffsim.gates.num_op_sum": [[2, "module-ffsim.gates.num_op_sum"]], "ffsim.gates.orbital_rotation": [[2, "module-ffsim.gates.orbital_rotation"]], "gen_orbital_rotation_index() (in module ffsim.gates.orbital_rotation)": [[2, "ffsim.gates.orbital_rotation.gen_orbital_rotation_index"]], "doublefactorizedhamiltonian (class in ffsim.hamiltonians.double_factorized_hamiltonian)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian"]], "molecularhamiltonian (class in ffsim.hamiltonians.molecular_hamiltonian)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian"]], "constant (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.constant"]], "constant (ffsim.hamiltonians.molecular_hamiltonian.molecularhamiltonian attribute)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian.constant"]], "diag_coulomb_mats (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.diag_coulomb_mats"]], "double_factorized_hamiltonian() (in module ffsim.hamiltonians.double_factorized_hamiltonian)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.double_factorized_hamiltonian"]], "ffsim.hamiltonians": [[3, "module-ffsim.hamiltonians"]], "ffsim.hamiltonians.double_factorized_hamiltonian": [[3, "module-ffsim.hamiltonians.double_factorized_hamiltonian"]], "ffsim.hamiltonians.molecular_hamiltonian": [[3, "module-ffsim.hamiltonians.molecular_hamiltonian"]], "norb (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian property)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.norb"]], "norb (ffsim.hamiltonians.molecular_hamiltonian.molecularhamiltonian property)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian.norb"]], "one_body_tensor (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.one_body_tensor"]], "one_body_tensor (ffsim.hamiltonians.molecular_hamiltonian.molecularhamiltonian attribute)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian.one_body_tensor"]], "orbital_rotations (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.orbital_rotations"]], "to_number_representation() (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian method)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.to_number_representation"]], "to_z_representation() (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian method)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.to_z_representation"]], "two_body_tensor (ffsim.hamiltonians.molecular_hamiltonian.molecularhamiltonian attribute)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian.two_body_tensor"]], "z_representation (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.z_representation"]], "apply_matrix_to_slices() (in module ffsim.linalg.givens)": [[4, "ffsim.linalg.givens.apply_matrix_to_slices"]], "double_factorized() (in module ffsim.linalg.double_factorized)": [[4, "ffsim.linalg.double_factorized.double_factorized"]], "double_factorized_t2() (in module ffsim.linalg.double_factorized)": [[4, "ffsim.linalg.double_factorized.double_factorized_t2"]], "expm_multiply_taylor() (in module ffsim.linalg.linalg)": [[4, "ffsim.linalg.linalg.expm_multiply_taylor"]], "ffsim.linalg": [[4, "module-ffsim.linalg"]], "ffsim.linalg.double_factorized": [[4, "module-ffsim.linalg.double_factorized"]], "ffsim.linalg.givens": [[4, "module-ffsim.linalg.givens"]], "ffsim.linalg.linalg": [[4, "module-ffsim.linalg.linalg"]], "ffsim.linalg.predicates": [[4, "module-ffsim.linalg.predicates"]], "givens_decomposition() (in module ffsim.linalg.givens)": [[4, "ffsim.linalg.givens.givens_decomposition"]], "givens_matrix() (in module ffsim.linalg.givens)": [[4, "ffsim.linalg.givens.givens_matrix"]], "is_antihermitian() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_antihermitian"]], "is_hermitian() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_hermitian"]], "is_orthogonal() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_orthogonal"]], "is_real_symmetric() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_real_symmetric"]], "is_special_orthogonal() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_special_orthogonal"]], "is_unitary() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_unitary"]], "lup() (in module ffsim.linalg.linalg)": [[4, "ffsim.linalg.linalg.lup"]], "modified_cholesky() (in module ffsim.linalg.double_factorized)": [[4, "ffsim.linalg.double_factorized.modified_cholesky"]], "optimal_diag_coulomb_mats() (in module ffsim.linalg.double_factorized)": [[4, "ffsim.linalg.double_factorized.optimal_diag_coulomb_mats"]], "supportslinearoperator (class in ffsim.protocols.linear_operator)": [[5, "ffsim.protocols.linear_operator.SupportsLinearOperator"]], "supportstrace (class in ffsim.protocols.trace)": [[5, "ffsim.protocols.trace.SupportsTrace"]], "ffsim.protocols": [[5, "module-ffsim.protocols"]], "ffsim.protocols.linear_operator": [[5, "module-ffsim.protocols.linear_operator"]], "ffsim.protocols.trace": [[5, "module-ffsim.protocols.trace"]], "linear_operator() (in module ffsim.protocols.linear_operator)": [[5, "ffsim.protocols.linear_operator.linear_operator"]], "trace() (in module ffsim.protocols.trace)": [[5, "ffsim.protocols.trace.trace"]], "ffsim.slow": [[6, "module-ffsim.slow"]], "ffsim.slow.contract": [[7, "module-ffsim.slow.contract"]], "ffsim.slow.contract.diag_coulomb": [[7, "module-ffsim.slow.contract.diag_coulomb"]], "ffsim.slow.contract.num_op_sum": [[7, "module-ffsim.slow.contract.num_op_sum"]], "apply_diag_coulomb_evolution_in_place_num_rep_numpy() (in module ffsim.slow.gates.diag_coulomb)": [[8, "ffsim.slow.gates.diag_coulomb.apply_diag_coulomb_evolution_in_place_num_rep_numpy"]], "apply_diag_coulomb_evolution_in_place_num_rep_slow() (in module ffsim.slow.gates.diag_coulomb)": [[8, "ffsim.slow.gates.diag_coulomb.apply_diag_coulomb_evolution_in_place_num_rep_slow"]], "apply_diag_coulomb_evolution_in_place_z_rep_slow() (in module ffsim.slow.gates.diag_coulomb)": [[8, "ffsim.slow.gates.diag_coulomb.apply_diag_coulomb_evolution_in_place_z_rep_slow"]], "apply_givens_rotation_in_place_slow() (in module ffsim.slow.gates.orbital_rotation)": [[8, "ffsim.slow.gates.orbital_rotation.apply_givens_rotation_in_place_slow"]], "apply_num_op_sum_evolution_in_place_slow() (in module ffsim.slow.gates.num_op_sum)": [[8, "ffsim.slow.gates.num_op_sum.apply_num_op_sum_evolution_in_place_slow"]], "apply_single_column_transformation_in_place_slow() (in module ffsim.slow.gates.orbital_rotation)": [[8, "ffsim.slow.gates.orbital_rotation.apply_single_column_transformation_in_place_slow"]], "ffsim.slow.gates": [[8, "module-ffsim.slow.gates"]], "ffsim.slow.gates.diag_coulomb": [[8, "module-ffsim.slow.gates.diag_coulomb"]], "ffsim.slow.gates.num_op_sum": [[8, "module-ffsim.slow.gates.num_op_sum"]], "ffsim.slow.gates.orbital_rotation": [[8, "module-ffsim.slow.gates.orbital_rotation"]], "gen_orbital_rotation_index_in_place_slow() (in module ffsim.slow.gates.orbital_rotation)": [[8, "ffsim.slow.gates.orbital_rotation.gen_orbital_rotation_index_in_place_slow"]], "expectation_squared_diag_coulomb() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.expectation_squared_diag_coulomb"]], "ffsim.trotter": [[9, "module-ffsim.trotter"]], "ffsim.trotter.qdrift": [[9, "module-ffsim.trotter.qdrift"]], "ffsim.trotter.trotter": [[9, "module-ffsim.trotter.trotter"]], "one_body_square_decomposition() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.one_body_square_decomposition"]], "qdrift_probabilities() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.qdrift_probabilities"]], "simulate_qdrift_double_factorized() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.simulate_qdrift_double_factorized"]], "simulate_trotter_double_factorized() (in module ffsim.trotter.trotter)": [[9, "ffsim.trotter.trotter.simulate_trotter_double_factorized"]], "spectral_norm_diag_coulomb() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.spectral_norm_diag_coulomb"]], "spectral_norm_one_body_tensor() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.spectral_norm_one_body_tensor"]], "variance_diag_coulomb() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.variance_diag_coulomb"]], "variance_one_body_tensor() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.variance_one_body_tensor"]], "ucjoperator (class in ffsim.variational.lucj)": [[10, "ffsim.variational.lucj.UCJOperator"]], "apply_ucj_operator() (in module ffsim.variational.lucj)": [[10, "ffsim.variational.lucj.apply_ucj_operator"]], "diag_coulomb_mats_alpha_alpha (ffsim.variational.lucj.ucjoperator attribute)": [[10, "ffsim.variational.lucj.UCJOperator.diag_coulomb_mats_alpha_alpha"]], "diag_coulomb_mats_alpha_beta (ffsim.variational.lucj.ucjoperator attribute)": [[10, "ffsim.variational.lucj.UCJOperator.diag_coulomb_mats_alpha_beta"]], "ffsim.variational": [[10, "module-ffsim.variational"]], "ffsim.variational.lucj": [[10, "module-ffsim.variational.lucj"]], "final_orbital_rotation (ffsim.variational.lucj.ucjoperator attribute)": [[10, "ffsim.variational.lucj.UCJOperator.final_orbital_rotation"]], "from_parameters() (ffsim.variational.lucj.ucjoperator static method)": [[10, "ffsim.variational.lucj.UCJOperator.from_parameters"]], "from_t_amplitudes() (ffsim.variational.lucj.ucjoperator static method)": [[10, "ffsim.variational.lucj.UCJOperator.from_t_amplitudes"]], "n_reps (ffsim.variational.lucj.ucjoperator property)": [[10, "ffsim.variational.lucj.UCJOperator.n_reps"]], "norb (ffsim.variational.lucj.ucjoperator property)": [[10, "ffsim.variational.lucj.UCJOperator.norb"]], "orbital_rotations (ffsim.variational.lucj.ucjoperator attribute)": [[10, "ffsim.variational.lucj.UCJOperator.orbital_rotations"]], "to_parameters() (ffsim.variational.lucj.ucjoperator method)": [[10, "ffsim.variational.lucj.UCJOperator.to_parameters"]], "to_t_amplitudes() (ffsim.variational.lucj.ucjoperator method)": [[10, "ffsim.variational.lucj.UCJOperator.to_t_amplitudes"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/generated/ffsim", "api/generated/ffsim.contract", "api/generated/ffsim.gates", "api/generated/ffsim.hamiltonians", "api/generated/ffsim.linalg", "api/generated/ffsim.protocols", "api/generated/ffsim.slow", "api/generated/ffsim.slow.contract", "api/generated/ffsim.slow.gates", "api/generated/ffsim.trotter", "api/generated/ffsim.variational", "api/generated/modules", "api/index", "index", "tutorials/01-introduction", "tutorials/02-orbital-rotation", "tutorials/03-double-factorized", "tutorials/04-lucj", "tutorials/index"], "filenames": ["api/generated/ffsim.rst", "api/generated/ffsim.contract.rst", "api/generated/ffsim.gates.rst", "api/generated/ffsim.hamiltonians.rst", "api/generated/ffsim.linalg.rst", "api/generated/ffsim.protocols.rst", "api/generated/ffsim.slow.rst", "api/generated/ffsim.slow.contract.rst", "api/generated/ffsim.slow.gates.rst", "api/generated/ffsim.trotter.rst", "api/generated/ffsim.variational.rst", "api/generated/modules.rst", "api/index.rst", "index.rst", "tutorials/01-introduction.ipynb", "tutorials/02-orbital-rotation.ipynb", "tutorials/03-double-factorized.ipynb", "tutorials/04-lucj.ipynb", "tutorials/index.rst"], "titles": ["ffsim package", "ffsim.contract package", "ffsim.gates package", "ffsim.hamiltonians package", "ffsim.linalg package", "ffsim.protocols package", "ffsim.slow package", "ffsim.slow.contract package", "ffsim.slow.gates package", "ffsim.trotter package", "ffsim.variational package", "ffsim", "API reference", "ffsim documentation", "Introduction to ffsim", "Orbital rotations and quadratic Hamiltonians", "Diagonal Coulomb operators and double-factorized Trotter simulation", "The local unitary cluster Jastrow (LUCJ) ansatz", "Tutorials"], "terms": {"contract": [0, 6, 11, 12, 15], "diag_coulomb": [0, 6, 11], "contract_diag_coulomb": [0, 1], "diag_coulomb_linop": [0, 1], "hamiltonian": [0, 9, 11, 12, 17, 18], "hamiltonian_linop": [0, 1, 15], "hamiltonian_trac": [0, 1], "num_op_sum": [0, 6, 11], "contract_num_op_sum": [0, 1], "num_op_sum_linop": [0, 1], "gate": [0, 6, 11, 12, 17], "apply_diag_coulomb_evolut": [0, 2, 16], "apply_givens_rot": [0, 2], "apply_num_interact": [0, 2], "apply_num_op_prod_interact": [0, 2], "apply_tunneling_interact": [0, 2], "apply_num_op_sum_evolut": [0, 2, 15, 16], "orbital_rot": [0, 1, 3, 4, 6, 9, 10, 11, 14, 15, 16], "apply_orbital_rot": [0, 2, 14, 15], "gen_orbital_rotation_index": [0, 2], "double_factorized_hamiltonian": [0, 11, 16], "doublefactorizedhamiltonian": [0, 3, 9, 16], "one_body_tensor": [0, 1, 3, 9, 15, 16], "diag_coulomb_mat": [0, 3, 9, 16], "constant": [0, 1, 3, 16, 17], "z_represent": [0, 1, 2, 3, 9], "norb": [0, 1, 2, 3, 5, 8, 9, 10, 14, 15, 16, 17], "to_number_represent": [0, 3], "to_z_represent": [0, 3], "molecular_hamiltonian": [0, 11], "molecularhamiltonian": [0, 3], "two_body_tensor": [0, 1, 3, 4, 16], "linalg": [0, 11, 12, 15, 16], "double_factor": [0, 11], "double_factorized_t2": [0, 4], "modified_choleski": [0, 4], "optimal_diag_coulomb_mat": [0, 4], "given": [0, 1, 2, 8, 9, 11, 15, 16], "apply_matrix_to_slic": [0, 4], "givens_decomposit": [0, 4], "givens_matrix": [0, 4], "expm_multiply_taylor": [0, 4], "lup": [0, 4], "predic": [0, 11], "is_antihermitian": [0, 4], "is_hermitian": [0, 4], "is_orthogon": [0, 4], "is_real_symmetr": [0, 4], "is_special_orthogon": [0, 4], "is_unitari": [0, 4], "protocol": [0, 11, 12], "linear_oper": [0, 11, 16, 17], "supportslinearoper": [0, 5], "trace": [0, 1, 11, 16], "supportstrac": [0, 5], "slow": [0, 11, 12], "trotter": [0, 11, 12, 18], "qdrift": [0, 11], "expectation_squared_diag_coulomb": [0, 9], "one_body_square_decomposit": [0, 9], "qdrift_prob": [0, 9], "simulate_qdrift_double_factor": [0, 9], "spectral_norm_diag_coulomb": [0, 9], "spectral_norm_one_body_tensor": [0, 9], "variance_diag_coulomb": [0, 9], "variance_one_body_tensor": [0, 9], "simulate_trotter_double_factor": [0, 9, 16], "variat": [0, 11, 12, 17], "lucj": [0, 11, 18], "ucjoper": [0, 10, 17], "diag_coulomb_mats_alpha_alpha": [0, 10], "diag_coulomb_mats_alpha_beta": [0, 10], "final_orbital_rot": [0, 10], "from_paramet": [0, 10, 17], "from_t_amplitud": [0, 10, 17], "n_rep": [0, 10, 17], "to_paramet": [0, 10, 17], "to_t_amplitud": [0, 10], "apply_ucj_oper": [0, 10, 17], "class": [0, 3, 5, 10, 14, 17], "moleculardata": [0, 11, 12, 16, 17], "nelec": [0, 1, 2, 5, 8, 9, 10, 14, 15, 16, 17], "core_energi": 0, "dipole_integr": 0, "none": [0, 1, 2, 3, 4, 8, 9, 10], "orbital_symmetri": 0, "sourc": [0, 1, 2, 3, 4, 5, 8, 9, 10], "base": [0, 3, 4, 5, 10], "object": [0, 3, 4, 5, 10, 16, 17], "random_antihermitian": [0, 11, 12], "dim": [0, 9, 11, 12, 14], "seed": [0, 9, 14, 15], "dtype": 0, "complex": [0, 4], "return": [0, 1, 2, 3, 4, 5, 8, 9, 10, 16, 17], "anti": [0, 4], "hermitian": [0, 4, 15], "matrix": [0, 1, 2, 3, 4, 9, 14, 15, 16, 17], "paramet": [0, 1, 2, 3, 4, 9, 10, 17], "int": [0, 1, 2, 3, 4, 9, 10, 16], "The": [0, 1, 2, 3, 4, 9, 10, 14, 15, 16, 18], "width": 0, "height": 0, "rank": [0, 3, 4], "If": [0, 1, 2, 3, 4, 9, 10], "maximum": [0, 3, 4], "i": [0, 1, 2, 3, 4, 9, 10, 14, 15, 16, 17], "us": [0, 1, 2, 3, 4, 9, 14, 15, 16, 17], "A": [0, 1, 2, 3, 4, 5, 9, 10, 15, 16, 17], "initi": [0, 9, 10, 16, 17], "pseudorandom": [0, 9], "number": [0, 1, 2, 3, 4, 8, 9, 10, 14, 15, 16, 17], "gener": [0, 2, 8, 9, 14, 15, 16, 17], "should": [0, 2, 9, 15, 16], "valid": [0, 9], "input": [0, 1, 9, 17], "np": [0, 2, 9, 15, 16, 17], "default_rng": [0, 9], "dype": 0, "data": [0, 2, 9, 10, 16, 17], "type": [0, 1, 2, 3, 4, 5, 8, 9, 10, 16], "result": [0, 1, 4, 10, 15, 16, 17], "ndarrai": [0, 1, 2, 3, 4, 9, 10, 16], "sampl": [0, 9], "random_hermitian": [0, 11, 12, 15], "random_orthogon": [0, 11, 12], "float": [0, 1, 2, 3, 4, 5, 9, 16], "orthogon": [0, 4], "distribut": 0, "haar": 0, "measur": 0, "an": [0, 1, 2, 3, 4, 5, 9, 10, 14, 15, 16, 17], "instanc": [0, 15], "els": [0, 9], "refer": [0, 3, 4, 13, 17], "arxiv": [0, 3, 4], "math": 0, "ph": 0, "0609050": 0, "random_real_symmetric_matrix": [0, 11, 12], "real": [0, 1, 2, 3, 4, 10, 15, 16, 17], "symmetr": [0, 1, 2, 3, 4, 9, 16, 17], "option": [0, 1, 2, 3, 4, 9, 10], "random_special_orthogon": [0, 11, 12], "special": [0, 4, 14], "random_statevector": [0, 11, 12], "vector": [0, 1, 2, 4, 8, 9, 10, 14, 15, 17], "from": [0, 10, 14, 15, 17], "uniform": [0, 9], "dimens": [0, 9, 14], "random_t2_amplitud": [0, 11, 12], "nocc": [0, 2, 8, 10], "t2": [0, 4, 10, 17], "amplitud": [0, 4, 10, 17], "tensor": [0, 1, 3, 4, 9, 16, 17], "orbit": [0, 1, 2, 3, 4, 8, 9, 10, 14, 16, 17, 18], "ar": [0, 1, 2, 3, 4, 9, 14, 15, 16, 17], "occupi": [0, 1, 2, 16], "electron": [0, 1, 2, 9, 10, 14, 16], "random_two_body_tensor_r": [0, 11, 12], "two": [0, 1, 2, 3, 4, 9, 10, 16, 17], "bodi": [0, 1, 3, 4, 9, 16, 17], "valu": [0, 3, 4, 9, 10, 16, 17], "shape": [0, 4, 9, 14, 17], "default": [0, 3, 4], "behavior": [0, 3, 4], "which": [0, 2, 3, 4, 14, 15, 16, 17], "1": [0, 2, 3, 4, 9, 10, 14, 15, 16, 17], "2": [0, 1, 2, 3, 4, 14, 15, 16, 17], "random_unitari": [0, 11, 12, 14, 15], "unitari": [0, 1, 2, 3, 4, 10, 15, 16, 18], "get": [0, 1, 15, 16, 17], "fci": [0, 1, 14], "space": 0, "spatial": [0, 1, 2, 3, 10, 14, 16, 17], "tupl": [0, 1, 2, 4, 9, 10, 16], "alpha": [0, 1, 2, 9, 10, 14, 17], "beta": [0, 1, 2, 9, 10, 14, 17], "pair": [0, 2], "integ": 0, "dim_a": [0, 14], "dim_b": [0, 14], "repres": [0, 3, 4, 5, 9, 14, 17], "one_hot": [0, 11, 12], "index": [0, 2, 8, 13, 14, 17], "arrai": [0, 2, 4, 9, 14], "all": [0, 2, 17], "zero": [0, 4], "except": 0, "one": [0, 1, 2, 3, 4, 9, 14, 16, 17], "specifi": [0, 3, 4, 9, 17], "desir": 0, "place": [0, 1, 2, 8, 9, 10, 17], "hot": 0, "slater_determin": [0, 11, 12, 14, 15, 16, 17], "occupied_orbit": [0, 14, 15, 16, 17], "slater": [0, 9, 14, 15, 16], "determin": [0, 4, 9, 14, 15, 16], "sequenc": 0, "list": [0, 1, 2, 4, 9, 17], "first": [0, 2, 4, 9, 15, 16, 17], "second": [0, 4, 16], "rotat": [0, 1, 2, 3, 4, 8, 9, 10, 14, 16, 17, 18], "appli": [0, 1, 2, 4, 8, 10, 14, 15, 16, 17], "configur": [0, 14], "In": [0, 10, 15, 16, 17], "other": [0, 17], "word": [0, 17], "thi": [0, 2, 3, 4, 9, 10, 14, 15, 16, 17], "describ": [0, 1, 2, 10, 14, 15, 16, 17], "slater_determinant_one_rdm": [0, 11, 12], "particl": [0, 9, 14, 15], "reduc": [0, 9], "densiti": [0, 9], "contain": [0, 2, 4, 10, 17], "indic": [0, 3, 4, 17], "similarli": [0, 16], "util": [0, 4], "random_nelec": [0, 11, 12], "n_alpha": [0, 14, 15, 16, 17], "n_beta": [0, 14, 15, 16, 17], "random_occupied_orbit": [0, 11, 12], "occ_a": 0, "occ_b": 0, "expectation_pow": [0, 11, 12], "one_rdm": [0, 9], "power": 0, "expect": [0, 9, 15], "oper": [0, 1, 2, 3, 5, 8, 9, 10, 15, 17, 18], "w": [0, 15, 16], "r": [0, 1, 3, 4, 16], "t": [0, 2, 3, 4, 15, 16], "o": 0, "ha": [0, 1, 4, 10, 14, 15, 16, 17], "form": [0, 1, 2, 3, 4, 10, 15, 16, 17], "sum_": [0, 1, 2, 3, 4, 10, 15, 16, 17], "pq": [0, 1, 3, 4, 16], "m_": 0, "a_p": 0, "dagger": [0, 1, 2, 4, 10, 15, 16, 17], "a_q": 0, "function": [0, 1, 2, 3, 4, 6, 9, 10, 14, 15, 16, 17], "take": [0, 3, 14, 17], "m": [0, 4, 15], "its": [0, 2, 3, 4, 9, 10, 15, 16], "argument": [0, 3, 4, 9, 15], "let": [0, 16], "lvert": [0, 17], "psi": [0, 17], "rangl": [0, 17], "Then": 0, "quantiti": 0, "langl": 0, "rvert": 0, "k": [0, 4, 10, 15, 16, 17], "expectation_product": [0, 11, 12], "product": [0, 2, 16], "matric": [0, 1, 3, 4, 10, 15, 16, 17], "o_1": 0, "o_2": 0, "dot": 0, "o_k": 0, "softwar": [0, 14], "librari": [0, 14], "fast": 0, "simul": [0, 9, 13, 14, 15, 17, 18], "fermion": [0, 2, 13, 14, 15, 17], "quantum": [0, 2, 3, 13, 14, 16, 17], "circuit": [0, 3, 13, 14], "diagon": [1, 2, 3, 4, 8, 9, 10, 15, 17, 18], "coulomb": [1, 2, 3, 4, 8, 9, 10, 17, 18], "vec": [1, 2, 4, 8, 9, 10, 14, 15, 16], "mat": [1, 2, 4], "mat_alpha_beta": [1, 2], "fals": [1, 2, 3, 4, 9, 10], "occupations_a": [1, 2, 8], "occupations_b": [1, 2, 8], "strings_a": [1, 2, 8], "strings_b": [1, 2, 8], "j": [1, 2, 3, 10, 15, 16, 17], "sigma": [1, 2, 3, 10, 15, 16, 17], "tau": [1, 2, 3, 10, 16, 17], "z_": [1, 2], "ij": [1, 2, 3, 10, 15, 16, 17], "n_": [1, 2, 10, 14, 15, 16, 17], "where": [1, 2, 3, 4, 9, 10, 15, 16, 17], "denot": [1, 2, 3, 15], "spin": [1, 2, 10, 14, 15, 17], "z": [1, 2, 3, 4, 9, 14], "also": [1, 2, 9, 10, 15], "term": [1, 2, 3, 4, 9, 10, 16, 17], "sum": [1, 2, 8, 9, 16], "differ": [1, 2, 3, 4, 10, 17], "neq": [1, 2, 3], "state": [1, 2, 8, 9, 10, 11, 12, 15, 16, 17], "transform": [1, 2, 3, 10, 14, 15], "coeffici": [1, 2, 3, 4, 10, 15, 17], "interact": [1, 2, 14], "between": [1, 2, 3, 4, 17], "bool": [1, 2, 3, 4, 9, 10], "whether": [1, 2, 3, 4, 9, 10], "represent": [1, 3, 4, 9, 14], "string": [1, 2, 9, 14], "convert": [1, 5, 10, 14, 15, 16], "linear": [1, 2, 4, 5, 15], "mathcal": [1, 2, 10, 15, 16, 17], "u": [1, 2, 3, 4], "linearoper": [1, 5, 15, 16], "implement": [1, 14, 15, 17], "action": [1, 15], "molecular": [1, 3, 17], "0": [1, 3, 4, 9, 15, 16, 17], "h": [1, 3, 16, 17], "h_": [1, 3, 4, 16], "dagger_": [1, 2, 3, 15, 16], "p": [1, 2, 3, 4, 16, 17], "a_": [1, 2, 3, 15, 16], "q": [1, 3, 16], "frac12": [1, 3, 10, 16, 17], "pqr": [1, 3, 4, 16], "": [1, 3, 4, 8, 12, 14, 16], "here": [1, 3, 4, 14, 15, 16], "call": [1, 3, 14, 15, 16], "basi": [1, 3, 10, 15, 16, 17], "combin": [1, 2, 15], "coeff": [1, 2], "lambda_i": [1, 2, 15], "construct": [1, 16, 17], "time": [2, 3, 4, 8, 9, 14, 16], "evolut": [2, 8, 9, 16], "orbital_rotation_index_a": 2, "orbital_rotation_index_b": 2, "copi": [2, 9, 10], "true": [2, 3, 4, 9, 10, 14, 17], "exp": [2, 15], "befor": [2, 9, 10, 17], "alwai": [2, 4, 9, 10, 15], "newli": [2, 9, 10], "alloc": [2, 9, 10], "origin": [2, 3, 4, 9, 10, 16], "left": [2, 9, 10, 15], "untouch": [2, 9, 10], "mai": [2, 4, 9, 10, 17], "still": [2, 9, 10, 17], "have": [2, 3, 4, 9, 10, 14, 15, 17], "overwritten": [2, 9, 10], "It": [2, 3, 4, 9, 10, 14, 16], "possibl": [2, 3, 4, 9, 10], "modifi": [2, 3, 4, 9, 10], "evolv": [2, 9, 16], "comput": [2, 4, 5, 9, 15, 17], "theta": 2, "target_orb": 2, "g": [2, 4, 9, 17], "dagger_i": 2, "a_j": 2, "dagger_j": 2, "a_i": 2, "angl": 2, "n": [2, 3, 4, 14, 15, 16, 17], "prod": 2, "tunnel": 2, "rais": 2, "valueerror": 2, "must": [2, 4], "dimension": [2, 4, 9, 14], "length": [2, 14, 16, 17], "allow_row_permut": 2, "allow_col_permut": 2, "map": [2, 15], "creation": [2, 15], "mapsto": [2, 15], "u_": 2, "ji": [2, 15], "equival": 2, "log": 2, "_": [2, 3, 4, 10, 15, 16, 17], "allow": [2, 3, 4, 17], "permut": [2, 4], "row": [2, 4, 14], "column": [2, 4, 8, 14, 15], "wa": 2, "well": 2, "actual": [2, 15, 17], "effect": 2, "both": [2, 3, 4], "set": [2, 3, 4, 10, 14, 15, 16, 17], "onli": [2, 3, 4, 14, 15, 17], "linkstr_index": [2, 8], "perform": [2, 3, 4, 10, 15, 16], "diag_str": [2, 8], "off_diag_str": [2, 8], "off_diag_index": [2, 8], "three": 2, "numpi": [2, 4, 9, 14, 15, 16, 17], "x": [2, 17], "binom": 2, "th": [2, 15], "unoccupi": 2, "3": [2, 14, 15, 16, 17], "ax": 2, "correspond": [2, 3, 4, 9, 15, 16], "For": [2, 14, 15, 17], "fix": [2, 4, 14], "choic": [2, 14], "str0": 2, "last": 2, "each": [2, 3, 4, 9, 10, 14, 16, 17], "str1": 2, "sign": 2, "annihil": 2, "creat": [2, 14, 15, 16, 17], "give": [2, 15], "pariti": 2, "doubl": [3, 4, 9, 17, 18], "factor": [3, 4, 9, 17, 18], "low": [3, 4, 14], "decomposit": [3, 4, 9], "kappa_": 3, "sum_t": 3, "text": [3, 16], "pi": 3, "qi": 3, "altern": [3, 16], "sometim": 3, "yield": [3, 4, 16, 17], "simpler": 3, "under": 3, "jordan": 3, "wigner": 3, "frac": 3, "pauli": 3, "obtain": [3, 15, 16, 17], "rewrit": 3, "part": [3, 4], "updat": [3, 16], "appropri": 3, "kappa": 3, "frac18": 3, "asterisk": 3, "summat": 3, "over": 3, "rather": [3, 14], "than": [3, 9, 14, 17], "properti": [3, 10, 15], "tol": [3, 4, 10], "1e": [3, 4, 9, 10], "08": [3, 4, 10, 17], "max_vec": [3, 4], "optim": [3, 4, 9, 10, 17], "method": [3, 4, 9, 17], "l": [3, 4, 10, 16, 17], "bfg": [3, 4], "b": [3, 4, 15], "diag_coulomb_mask": [3, 4], "choleski": [3, 4], "act": 3, "decompos": [3, 4, 9, 16], "output": [3, 16, 17], "guarante": 3, "so": [3, 4, 15, 16, 17], "depend": [3, 4, 9, 14], "error": [3, 4], "threshold": [3, 4], "larger": [3, 4], "lead": 3, "smaller": [3, 4, 16], "furthermor": [3, 4], "max_rank": 3, "upper": [3, 4, 9, 17], "bound": [3, 4, 9], "routin": [3, 4, 14], "straightforward": [3, 4], "exact": [3, 4, 14, 16], "nest": [3, 4], "eigenvalu": [3, 4, 9, 15], "addition": [3, 4], "can": [3, 4, 5, 10, 14, 15, 16, 17], "choos": [3, 4, 14, 17], "store": [3, 4, 9, 16, 17], "achiev": [3, 4, 16], "compress": [3, 4], "enabl": [3, 4], "attempt": [3, 4], "minim": [3, 4, 17], "least": [3, 4], "squar": [3, 4, 9, 17], "quantifi": [3, 4], "scipi": [3, 4, 5, 14, 15, 16, 17], "pass": [3, 4, 15], "gradient": [3, 4], "core": [3, 4], "constrain": [3, 4], "certain": [3, 4], "element": [3, 4], "nonzero": [3, 4, 17], "boolean": [3, 4], "triangular": [3, 4], "becaus": [3, 4, 14, 16, 17], "note": [3, 17], "current": 3, "support": [3, 9, 10], "toler": [3, 4, 17], "defin": [3, 4, 17], "absolut": [3, 4, 9], "reconstruct": [3, 4], "limit": [3, 4, 17], "keep": [3, 4], "overrid": [3, 4], "str": [3, 4, 9], "see": [3, 4], "document": [3, 4], "callback": [3, 4], "usag": [3, 4], "dict": [3, 4], "mask": [3, 4], "full": [3, 4, 14], "instead": [3, 4], "much": [3, 4, 14], "more": [3, 4, 14, 17], "expens": [3, 4], "ignor": [3, 4, 16], "1808": [3, 4], "02625": [3, 4], "2104": [3, 4], "08957": [3, 4], "ell": 4, "pk": 4, "qk": 4, "respect": 4, "too": 4, "small": 4, "exce": 4, "collect": 4, "t2_amplitud": [4, 10], "t_": 4, "ijab": 4, "ap": 4, "ip": 4, "bq": 4, "jq": 4, "v_i": 4, "posit": 4, "definit": 4, "No": 4, "check": [4, 15, 16], "verifi": 4, "1711": 4, "02242": 4, "includ": [4, 10, 14, 15, 16], "assembl": 4, "whose": [4, 5, 14], "target": 4, "slice": [4, 8], "out": [4, 16], "entri": [4, 17], "satisfi": [4, 15], "begin": [4, 15, 17], "pmatrix": 4, "end": [4, 10, 15, 17], "http": 4, "en": 4, "wikipedia": 4, "org": 4, "wiki": 4, "givens_rot": 4, "stable_calcul": 4, "www": 4, "netlib": 4, "lapack": 4, "lawnspdf": 4, "lawn148": 4, "pdf": 4, "algebra": 4, "12": [4, 9, 17], "expm": 4, "taylor": 4, "seri": 4, "expans": 4, "pivot": 4, "lu": 4, "rtype": 4, "lower": 4, "unit": 4, "rtol": 4, "05": 4, "atol": 4, "approxim": [4, 16], "rel": 4, "numer": 4, "within": 4, "union": 4, "bool_": 4, "arg": 5, "kwarg": 5, "obj": 5, "submodul": [6, 11, 12], "apply_diag_coulomb_evolution_in_place_num_rep_numpi": [6, 8], "apply_diag_coulomb_evolution_in_place_num_rep_slow": [6, 8], "apply_diag_coulomb_evolution_in_place_z_rep_slow": [6, 8], "apply_num_op_sum_evolution_in_place_slow": [6, 8], "apply_givens_rotation_in_place_slow": [6, 8], "apply_single_column_transformation_in_place_slow": [6, 8], "gen_orbital_rotation_index_in_place_slow": [6, 8], "python": 6, "version": 6, "were": 6, "rewritten": [6, 15], "rust": 6, "mat_exp": 8, "mat_alpha_beta_exp": 8, "mat_exp_conj": 8, "mat_alpha_beta_exp_conj": 8, "phase": [8, 15], "occup": [8, 14, 15, 16], "c": 8, "slice1": 8, "slice2": 8, "diag_val": 8, "singl": [8, 16], "off_diag_strings_index": 8, "diag": 9, "op": 9, "truncation_threshold": 9, "less": [9, 17], "truncat": [9, 17], "sampling_method": 9, "probabl": 9, "rest": [9, 16], "same": [9, 10, 14, 17], "order": [9, 10, 14, 16, 17], "thei": [9, 15, 17], "e": [9, 10, 16, 17], "follow": [9, 14, 15, 16, 17], "norm": 9, "proport": [9, 15], "spectral": 9, "requir": [9, 17], "incoher": 9, "channel": 9, "n_particl": 9, "total": [9, 10, 16, 17], "n_step": [9, 16], "n_sampl": 9, "via": [9, 16], "step": [9, 15, 16], "explicit": 9, "whenev": 9, "complet": 9, "character": 9, "trajectori": 9, "random": [9, 11, 12, 14, 15], "final": [9, 10, 16, 17], "just": [9, 16, 17], "statevector": [9, 14, 15], "otherwis": 9, "largest": 9, "singular": 9, "varianc": 9, "rdm": 9, "suzuki": 9, "formula": 9, "local": [10, 18], "cluster": [10, 18], "jastrow": [10, 18], "ansatz": [10, 18], "ucj": 10, "prod_": [10, 17], "w_k": [10, 17], "_k": [10, 16, 17], "mathbf": [10, 15, 16, 17], "commut": [10, 16, 17], "we": [10, 15, 16, 17], "enforc": [10, 17], "As": [10, 14, 15, 16, 17], "involv": [10, 17], "To": [10, 14, 15, 16, 17], "static": 10, "param": 10, "alpha_alpha_indic": [10, 17], "alpha_beta_indic": [10, 17], "with_final_orbital_rot": 10, "t1_amplitud": 10, "t1": 10, "repetit": [10, 17], "possibli": 10, "packag": [11, 12], "subpackag": [11, 12], "modul": [11, 12, 13, 14], "content": [11, 12], "molecular_data": [11, 12], "test": [11, 12, 15, 16], "wick": [11, 12], "ffsim": [12, 15, 16, 17, 18], "faster": 13, "tutori": [13, 15, 16, 17], "api": 13, "search": 13, "page": 13, "conserv": 14, "compon": 14, "By": 14, "advantag": 14, "symmetri": [14, 15], "effici": 14, "level": [14, 16], "doe": 14, "primari": 14, "wai": [14, 15, 17], "directli": [14, 16], "exampl": [14, 15, 17], "code": [14, 16, 17], "show": [14, 15, 16, 17], "how": [14, 15, 16, 17], "import": [14, 15, 16, 17], "6": [14, 15, 16], "rang": [14, 15, 16, 17], "1234": [14, 15], "rotated_vec": [14, 15], "plain": 14, "Its": 14, "system": [14, 15], "conveni": 14, "calcul": [14, 16, 17], "comb": 14, "assert": 14, "standard": 14, "often": [14, 17], "simpli": [14, 15], "reshap": 14, "reshaped_vec": 14, "pyscf": [14, 16, 17], "fundament": 15, "mode": 15, "sum_j": 15, "That": 15, "new": 15, "anticommut": 15, "relat": [15, 17], "align": [15, 17], "_1": 15, "_2": 15, "ani": [15, 17], "section": 15, "ll": [15, 16, 17], "demonstr": [15, 16, 17], "task": 15, "consid": [15, 17], "right": 15, "introduc": [15, 17], "eigendecomposit": 15, "sum_k": [15, 16], "lambda_k": 15, "ik": 15, "jk": 15, "our": [15, 16, 17], "ground": [15, 17], "pick": 15, "up": 15, "energi": [15, 16, 17], "spars": [15, 16], "lowest": [15, 16], "eigenvector": 15, "eig": 15, "eigsh": 15, "la": 15, "fact": 15, "you": 15, "illustr": 15, "purpos": 15, "explicitli": 15, "eigh": [15, 16], "evolved_vec": 15, "conj": 15, "undo": 15, "expected_phas": 15, "1j": [15, 16], "assert_allclos": 15, "mention": [15, 16], "abov": [15, 16], "below": [15, 16, 17], "better": [15, 16], "4": [15, 16, 17], "evolved_vec_alt": 15, "daunt": 16, "scale": 16, "cell": [16, 17], "hydrogen": [16, 17], "molecul": [16, 17], "stretch": [16, 17], "bond": [16, 17], "build": [16, 17], "h2": [16, 17], "mol": [16, 17], "gto": [16, 17], "mole": [16, 17], "atom": [16, 17], "8": [16, 17], "sto": [16, 17], "6g": [16, 17], "hartree_fock": [16, 17], "scf": [16, 17], "rhf": [16, 17], "kernel": [16, 17], "mol_data": [16, 17], "from_hartree_fock": [16, 17], "mol_hamiltonian": [16, 17], "df_hamiltonian": 16, "converg": [16, 17], "837796382593709": [16, 17], "dataclass": [16, 17], "print": [16, 17], "some": 16, "inform": 16, "One": 16, "27478830e": 16, "01": [16, 17], "66405155e": 16, "16": 16, "07220771e": 16, "77238770e": 16, "5": [16, 17], "23173938e": 16, "94289029e": 16, "33545754e": 16, "48240570e": 16, "32667268e": 16, "17": 16, "11022302e": 16, "53132024e": 16, "21318608e": 16, "00": [16, 17], "05183033e": 16, "59876437e": 16, "07792507e": 16, "14653029e": 16, "001": 16, "96958401e": 16, "121": 16, "7": [16, 17], "13206008e": 16, "062": 16, "52090881e": 16, "003": 16, "00000000e": 16, "25128053e": 16, "15": 16, "07106781e": 16, "89310728e": 16, "30": 16, "although": 16, "alreadi": 16, "built": 16, "manual": 16, "asymmetr": 16, "basic": 16, "h_k": 16, "divid": 16, "exponenti": 16, "individu": 16, "do": 16, "approx": 16, "prod_k": 16, "higher": 16, "deriv": 16, "write": 16, "recal": 16, "addit": 16, "think": 16, "compos": 16, "quadrat": [16, 18], "def": [16, 17], "simulate_trotter_step_double_factor": 16, "one_body_energi": 16, "one_body_basis_chang": 16, "zip": 16, "finish": 16, "handl": 16, "split": 16, "multipl": 16, "wrote": 16, "step_tim": 16, "hartre": [16, 17], "fock": [16, 17], "match": 16, "when": [16, 17], "initial_st": 16, "\u03c8": [16, 17], "hf_energi": 16, "vdot": [16, 17], "f": [16, 17], "now": 16, "later": 16, "compar": 16, "exact_st": 16, "expm_multipli": 16, "tracea": 16, "fidel": 16, "ab": 16, "9696296369955066": 16, "final_st": [16, 17], "9990275744083491": 16, "improv": 16, "increas": 16, "10": [16, 17], "9999906233109653": 16, "commonli": 16, "known": 16, "fourth": 16, "reproduc": 16, "9": 16, "fewer": 16, "9999999336740059": 16, "phi_0": 17, "taken": 17, "express": 17, "previou": 17, "constructor": 17, "provid": 17, "ccsd": 17, "mp2": 17, "run": 17, "cc": 17, "reference_st": 17, "ansatz_st": 17, "initiali": 17, "970773076716434": 17, "e_corr": 17, "1329766941227252": 17, "9696246123746335": 17, "facilit": 17, "convers": 17, "precis": 17, "somewhat": 17, "complic": 17, "short": 17, "non": 17, "redund": 17, "associ": 17, "fun": 17, "x0": 17, "len": 17, "20": 17, "messag": 17, "termin": 17, "successfulli": 17, "success": 17, "statu": 17, "970773075391498": 17, "678e": 17, "970e": 17, "nit": 17, "jac": 17, "960e": 17, "000e": 17, "980e": 17, "490e": 17, "07": 17, "hess_inv": 17, "364e": 17, "206e": 17, "13": 17, "818e": 17, "nfev": 17, "63": 17, "njev": 17, "either": 17, "connect": 17, "swap": 17, "network": 17, "make": 17, "challeng": 17, "noisi": 17, "pre": 17, "fault": 17, "processor": 17, "idea": 17, "impos": 17, "sparsiti": 17, "constraint": 17, "them": 17, "depth": 17, "qubit": 17, "topologi": 17, "triangl": 17, "sinc": 17, "need": 17, "lattic": 17, "parallel": 17, "line": 17, "rung": 17, "ladder": 17, "With": 17, "setup": 17, "while": 17, "share": 17, "ldot": 17, "without": 17, "Of": 17, "cours": 17, "notic": 17, "decreas": 17, "14": 17, "simpl": 17, "abl": 17, "recov": 17, "exactli": 17, "9707730754179825": 17, "196e": 17, "451e": 17, "029e": 17, "75": 17, "introduct": 18}, "objects": {"": [[0, 0, 0, "-", "ffsim"]], "ffsim": [[1, 0, 0, "-", "contract"], [2, 0, 0, "-", "gates"], [3, 0, 0, "-", "hamiltonians"], [4, 0, 0, "-", "linalg"], [0, 0, 0, "-", "molecular_data"], [5, 0, 0, "-", "protocols"], [0, 0, 0, "-", "random"], [6, 0, 0, "-", "slow"], [0, 0, 0, "-", "states"], [0, 0, 0, "-", "testing"], [9, 0, 0, "-", "trotter"], [10, 0, 0, "-", "variational"], [0, 0, 0, "-", "wick"]], "ffsim.contract": [[1, 0, 0, "-", "diag_coulomb"], [1, 0, 0, "-", "hamiltonian"], [1, 0, 0, "-", "num_op_sum"]], "ffsim.contract.diag_coulomb": [[1, 1, 1, "", "contract_diag_coulomb"], [1, 1, 1, "", "diag_coulomb_linop"]], "ffsim.contract.hamiltonian": [[1, 1, 1, "", "hamiltonian_linop"], [1, 1, 1, "", "hamiltonian_trace"]], "ffsim.contract.num_op_sum": [[1, 1, 1, "", "contract_num_op_sum"], [1, 1, 1, "", "num_op_sum_linop"]], "ffsim.gates": [[2, 0, 0, "-", "diag_coulomb"], [2, 0, 0, "-", "gates"], [2, 0, 0, "-", "num_op_sum"], [2, 0, 0, "-", "orbital_rotation"]], "ffsim.gates.diag_coulomb": [[2, 1, 1, "", "apply_diag_coulomb_evolution"]], "ffsim.gates.gates": [[2, 1, 1, "", "apply_givens_rotation"], [2, 1, 1, "", "apply_num_interaction"], [2, 1, 1, "", "apply_num_op_prod_interaction"], [2, 1, 1, "", "apply_tunneling_interaction"]], "ffsim.gates.num_op_sum": [[2, 1, 1, "", "apply_num_op_sum_evolution"]], "ffsim.gates.orbital_rotation": [[2, 1, 1, "", "apply_orbital_rotation"], [2, 1, 1, "", "gen_orbital_rotation_index"]], "ffsim.hamiltonians": [[3, 0, 0, "-", "double_factorized_hamiltonian"], [3, 0, 0, "-", "molecular_hamiltonian"]], "ffsim.hamiltonians.double_factorized_hamiltonian": [[3, 2, 1, "", "DoubleFactorizedHamiltonian"], [3, 1, 1, "", "double_factorized_hamiltonian"]], "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian": [[3, 3, 1, "", "constant"], [3, 3, 1, "", "diag_coulomb_mats"], [3, 4, 1, "", "norb"], [3, 3, 1, "", "one_body_tensor"], [3, 3, 1, "", "orbital_rotations"], [3, 5, 1, "", "to_number_representation"], [3, 5, 1, "", "to_z_representation"], [3, 3, 1, "", "z_representation"]], "ffsim.hamiltonians.molecular_hamiltonian": [[3, 2, 1, "", "MolecularHamiltonian"]], "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian": [[3, 3, 1, "", "constant"], [3, 4, 1, "", "norb"], [3, 3, 1, "", "one_body_tensor"], [3, 3, 1, "", "two_body_tensor"]], "ffsim.linalg": [[4, 0, 0, "-", "double_factorized"], [4, 0, 0, "-", "givens"], [4, 0, 0, "-", "linalg"], [4, 0, 0, "-", "predicates"]], "ffsim.linalg.double_factorized": [[4, 1, 1, "", "double_factorized"], [4, 1, 1, "", "double_factorized_t2"], [4, 1, 1, "", "modified_cholesky"], [4, 1, 1, "", "optimal_diag_coulomb_mats"]], "ffsim.linalg.givens": [[4, 1, 1, "", "apply_matrix_to_slices"], [4, 1, 1, "", "givens_decomposition"], [4, 1, 1, "", "givens_matrix"]], "ffsim.linalg.linalg": [[4, 1, 1, "", "expm_multiply_taylor"], [4, 1, 1, "", "lup"]], "ffsim.linalg.predicates": [[4, 1, 1, "", "is_antihermitian"], [4, 1, 1, "", "is_hermitian"], [4, 1, 1, "", "is_orthogonal"], [4, 1, 1, "", "is_real_symmetric"], [4, 1, 1, "", "is_special_orthogonal"], [4, 1, 1, "", "is_unitary"]], "ffsim.molecular_data": [[0, 2, 1, "", "MolecularData"]], "ffsim.protocols": [[5, 0, 0, "-", "linear_operator"], [5, 0, 0, "-", "trace"]], "ffsim.protocols.linear_operator": [[5, 2, 1, "", "SupportsLinearOperator"], [5, 1, 1, "", "linear_operator"]], "ffsim.protocols.trace": [[5, 2, 1, "", "SupportsTrace"], [5, 1, 1, "", "trace"]], "ffsim.random": [[0, 1, 1, "", "random_antihermitian"], [0, 1, 1, "", "random_hermitian"], [0, 1, 1, "", "random_orthogonal"], [0, 1, 1, "", "random_real_symmetric_matrix"], [0, 1, 1, "", "random_special_orthogonal"], [0, 1, 1, "", "random_statevector"], [0, 1, 1, "", "random_t2_amplitudes"], [0, 1, 1, "", "random_two_body_tensor_real"], [0, 1, 1, "", "random_unitary"]], "ffsim.slow": [[7, 0, 0, "-", "contract"], [8, 0, 0, "-", "gates"]], "ffsim.slow.contract": [[7, 0, 0, "-", "diag_coulomb"], [7, 0, 0, "-", "num_op_sum"]], "ffsim.slow.gates": [[8, 0, 0, "-", "diag_coulomb"], [8, 0, 0, "-", "num_op_sum"], [8, 0, 0, "-", "orbital_rotation"]], "ffsim.slow.gates.diag_coulomb": [[8, 1, 1, "", "apply_diag_coulomb_evolution_in_place_num_rep_numpy"], [8, 1, 1, "", "apply_diag_coulomb_evolution_in_place_num_rep_slow"], [8, 1, 1, "", "apply_diag_coulomb_evolution_in_place_z_rep_slow"]], "ffsim.slow.gates.num_op_sum": [[8, 1, 1, "", "apply_num_op_sum_evolution_in_place_slow"]], "ffsim.slow.gates.orbital_rotation": [[8, 1, 1, "", "apply_givens_rotation_in_place_slow"], [8, 1, 1, "", "apply_single_column_transformation_in_place_slow"], [8, 1, 1, "", "gen_orbital_rotation_index_in_place_slow"]], "ffsim.states": [[0, 1, 1, "", "dim"], [0, 1, 1, "", "dims"], [0, 1, 1, "", "one_hot"], [0, 1, 1, "", "slater_determinant"], [0, 1, 1, "", "slater_determinant_one_rdm"]], "ffsim.testing": [[0, 1, 1, "", "random_nelec"], [0, 1, 1, "", "random_occupied_orbitals"]], "ffsim.trotter": [[9, 0, 0, "-", "qdrift"], [9, 0, 0, "-", "trotter"]], "ffsim.trotter.qdrift": [[9, 1, 1, "", "expectation_squared_diag_coulomb"], [9, 1, 1, "", "one_body_square_decomposition"], [9, 1, 1, "", "qdrift_probabilities"], [9, 1, 1, "", "simulate_qdrift_double_factorized"], [9, 1, 1, "", "spectral_norm_diag_coulomb"], [9, 1, 1, "", "spectral_norm_one_body_tensor"], [9, 1, 1, "", "variance_diag_coulomb"], [9, 1, 1, "", "variance_one_body_tensor"]], "ffsim.trotter.trotter": [[9, 1, 1, "", "simulate_trotter_double_factorized"]], "ffsim.variational": [[10, 0, 0, "-", "lucj"]], "ffsim.variational.lucj": [[10, 2, 1, "", "UCJOperator"], [10, 1, 1, "", "apply_ucj_operator"]], "ffsim.variational.lucj.UCJOperator": [[10, 3, 1, "", "diag_coulomb_mats_alpha_alpha"], [10, 3, 1, "", "diag_coulomb_mats_alpha_beta"], [10, 3, 1, "", "final_orbital_rotation"], [10, 5, 1, "", "from_parameters"], [10, 5, 1, "", "from_t_amplitudes"], [10, 4, 1, "", "n_reps"], [10, 4, 1, "", "norb"], [10, 3, 1, "", "orbital_rotations"], [10, 5, 1, "", "to_parameters"], [10, 5, 1, "", "to_t_amplitudes"]], "ffsim.wick": [[0, 1, 1, "", "expectation_power"], [0, 1, 1, "", "expectation_product"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:property", "5": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "property", "Python property"], "5": ["py", "method", "Python method"]}, "titleterms": {"ffsim": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14], "packag": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "subpackag": [0, 6], "submodul": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10], "molecular_data": 0, "modul": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "random": 0, "state": 0, "test": 0, "wick": 0, "content": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 18], "contract": [1, 7], "diag_coulomb": [1, 2, 7, 8], "hamiltonian": [1, 3, 15, 16], "num_op_sum": [1, 2, 7, 8], "gate": [2, 8], "orbital_rot": [2, 8], "double_factorized_hamiltonian": 3, "molecular_hamiltonian": 3, "linalg": 4, "double_factor": 4, "given": 4, "predic": 4, "protocol": 5, "linear_oper": 5, "trace": 5, "slow": [6, 7, 8], "trotter": [9, 16], "qdrift": 9, "variat": 10, "lucj": [10, 17], "api": 12, "refer": 12, "document": 13, "indic": 13, "tabl": 13, "introduct": 14, "orbit": 15, "rotat": 15, "quadrat": 15, "time": 15, "evolut": 15, "diagon": 16, "coulomb": 16, "oper": 16, "doubl": 16, "factor": 16, "simul": 16, "represent": 16, "molecular": 16, "brief": 16, "background": 16, "suzuki": 16, "formula": 16, "implement": 16, "The": 17, "local": 17, "unitari": 17, "cluster": 17, "jastrow": 17, "ansatz": 17, "ucj": 17, "tutori": 18}, "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 package": [[0, "ffsim-package"]], "Subpackages": [[0, "subpackages"], [6, "subpackages"]], "Submodules": [[0, "submodules"], [1, "submodules"], [2, "submodules"], [3, "submodules"], [4, "submodules"], [5, "submodules"], [7, "submodules"], [8, "submodules"], [9, "submodules"], [10, "submodules"]], "ffsim.molecular_data module": [[0, "module-ffsim.molecular_data"]], "ffsim.random module": [[0, "module-ffsim.random"]], "ffsim.states module": [[0, "module-ffsim.states"]], "ffsim.testing module": [[0, "module-ffsim.testing"]], "ffsim.wick module": [[0, "module-ffsim.wick"]], "Module contents": [[0, "module-ffsim"], [1, "module-ffsim.contract"], [2, "module-ffsim.gates"], [3, "module-ffsim.hamiltonians"], [4, "module-ffsim.linalg"], [5, "module-ffsim.protocols"], [6, "module-ffsim.slow"], [7, "module-ffsim.slow.contract"], [8, "module-ffsim.slow.gates"], [9, "module-ffsim.trotter"], [10, "module-ffsim.variational"]], "ffsim.contract package": [[1, "ffsim-contract-package"]], "ffsim.contract.diag_coulomb module": [[1, "module-ffsim.contract.diag_coulomb"]], "ffsim.contract.hamiltonian module": [[1, "module-ffsim.contract.hamiltonian"]], "ffsim.contract.num_op_sum module": [[1, "module-ffsim.contract.num_op_sum"]], "ffsim.gates package": [[2, "ffsim-gates-package"]], "ffsim.gates.diag_coulomb module": [[2, "module-ffsim.gates.diag_coulomb"]], "ffsim.gates.gates module": [[2, "module-ffsim.gates.gates"]], "ffsim.gates.num_op_sum module": [[2, "module-ffsim.gates.num_op_sum"]], "ffsim.gates.orbital_rotation module": [[2, "module-ffsim.gates.orbital_rotation"]], "ffsim.hamiltonians package": [[3, "ffsim-hamiltonians-package"]], "ffsim.hamiltonians.double_factorized_hamiltonian module": [[3, "module-ffsim.hamiltonians.double_factorized_hamiltonian"]], "ffsim.hamiltonians.molecular_hamiltonian module": [[3, "module-ffsim.hamiltonians.molecular_hamiltonian"]], "ffsim.linalg package": [[4, "ffsim-linalg-package"]], "ffsim.linalg.double_factorized module": [[4, "module-ffsim.linalg.double_factorized"]], "ffsim.linalg.givens module": [[4, "module-ffsim.linalg.givens"]], "ffsim.linalg.linalg module": [[4, "module-ffsim.linalg.linalg"]], "ffsim.linalg.predicates module": [[4, "module-ffsim.linalg.predicates"]], "ffsim.protocols package": [[5, "ffsim-protocols-package"]], "ffsim.protocols.linear_operator module": [[5, "module-ffsim.protocols.linear_operator"]], "ffsim.protocols.trace module": [[5, "module-ffsim.protocols.trace"]], "ffsim.slow package": [[6, "ffsim-slow-package"]], "ffsim.slow.contract package": [[7, "ffsim-slow-contract-package"]], "ffsim.slow.contract.diag_coulomb module": [[7, "module-ffsim.slow.contract.diag_coulomb"]], "ffsim.slow.contract.num_op_sum module": [[7, "module-ffsim.slow.contract.num_op_sum"]], "ffsim.slow.gates package": [[8, "ffsim-slow-gates-package"]], "ffsim.slow.gates.diag_coulomb module": [[8, "module-ffsim.slow.gates.diag_coulomb"]], "ffsim.slow.gates.num_op_sum module": [[8, "module-ffsim.slow.gates.num_op_sum"]], "ffsim.slow.gates.orbital_rotation module": [[8, "module-ffsim.slow.gates.orbital_rotation"]], "ffsim.trotter package": [[9, "ffsim-trotter-package"]], "ffsim.trotter.qdrift module": [[9, "module-ffsim.trotter.qdrift"]], "ffsim.trotter.trotter module": [[9, "module-ffsim.trotter.trotter"]], "ffsim.variational package": [[10, "ffsim-variational-package"]], "ffsim.variational.lucj module": [[10, "module-ffsim.variational.lucj"]], "ffsim": [[11, "ffsim"]], "API reference": [[12, "api-reference"]], "ffsim documentation": [[13, "ffsim-documentation"]], "Contents:": [[13, null], [18, null]], "Indices and tables": [[13, "indices-and-tables"]], "Introduction to ffsim": [[14, "Introduction-to-ffsim"]], "Orbital rotations and quadratic Hamiltonians": [[15, "Orbital-rotations-and-quadratic-Hamiltonians"]], "Orbital rotations": [[15, "Orbital-rotations"]], "Time evolution by a quadratic Hamiltonian": [[15, "Time-evolution-by-a-quadratic-Hamiltonian"]], "Diagonal Coulomb operators and double-factorized Trotter simulation": [[16, "Diagonal-Coulomb-operators-and-double-factorized-Trotter-simulation"]], "Double-factorized representation of the molecular Hamiltonian": [[16, "Double-factorized-representation-of-the-molecular-Hamiltonian"]], "Trotter simulation of the double-factorized Hamiltonian": [[16, "Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "Brief background on Trotter-Suzuki formulas": [[16, "Brief-background-on-Trotter-Suzuki-formulas"]], "Implementing Trotter simulation of the double-factorized Hamiltonian": [[16, "Implementing-Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "The local unitary cluster Jastrow (LUCJ) ansatz": [[17, "The-local-unitary-cluster-Jastrow-(LUCJ)-ansatz"], [17, "id1"]], "The unitary cluster Jastrow (UCJ) ansatz": [[17, "The-unitary-cluster-Jastrow-(UCJ)-ansatz"]], "Tutorials": [[18, "tutorials"]]}, "indexentries": {"moleculardata (class in ffsim.molecular_data)": [[0, "ffsim.molecular_data.MolecularData"]], "dim() (in module ffsim.states)": [[0, "ffsim.states.dim"]], "dims() (in module ffsim.states)": [[0, "ffsim.states.dims"]], "expectation_power() (in module ffsim.wick)": [[0, "ffsim.wick.expectation_power"]], "expectation_product() (in module ffsim.wick)": [[0, "ffsim.wick.expectation_product"]], "ffsim": [[0, "module-ffsim"]], "ffsim.molecular_data": [[0, "module-ffsim.molecular_data"]], "ffsim.random": [[0, "module-ffsim.random"]], "ffsim.states": [[0, "module-ffsim.states"]], "ffsim.testing": [[0, "module-ffsim.testing"]], "ffsim.wick": [[0, "module-ffsim.wick"]], "module": [[0, "module-ffsim"], [0, "module-ffsim.molecular_data"], [0, "module-ffsim.random"], [0, "module-ffsim.states"], [0, "module-ffsim.testing"], [0, "module-ffsim.wick"], [1, "module-ffsim.contract"], [1, "module-ffsim.contract.diag_coulomb"], [1, "module-ffsim.contract.hamiltonian"], [1, "module-ffsim.contract.num_op_sum"], [2, "module-ffsim.gates"], [2, "module-ffsim.gates.diag_coulomb"], [2, "module-ffsim.gates.gates"], [2, "module-ffsim.gates.num_op_sum"], [2, "module-ffsim.gates.orbital_rotation"], [3, "module-ffsim.hamiltonians"], [3, "module-ffsim.hamiltonians.double_factorized_hamiltonian"], [3, "module-ffsim.hamiltonians.molecular_hamiltonian"], [4, "module-ffsim.linalg"], [4, "module-ffsim.linalg.double_factorized"], [4, "module-ffsim.linalg.givens"], [4, "module-ffsim.linalg.linalg"], [4, "module-ffsim.linalg.predicates"], [5, "module-ffsim.protocols"], [5, "module-ffsim.protocols.linear_operator"], [5, "module-ffsim.protocols.trace"], [6, "module-ffsim.slow"], [7, "module-ffsim.slow.contract"], [7, "module-ffsim.slow.contract.diag_coulomb"], [7, "module-ffsim.slow.contract.num_op_sum"], [8, "module-ffsim.slow.gates"], [8, "module-ffsim.slow.gates.diag_coulomb"], [8, "module-ffsim.slow.gates.num_op_sum"], [8, "module-ffsim.slow.gates.orbital_rotation"], [9, "module-ffsim.trotter"], [9, "module-ffsim.trotter.qdrift"], [9, "module-ffsim.trotter.trotter"], [10, "module-ffsim.variational"], [10, "module-ffsim.variational.lucj"]], "one_hot() (in module ffsim.states)": [[0, "ffsim.states.one_hot"]], "random_antihermitian() (in module ffsim.random)": [[0, "ffsim.random.random_antihermitian"]], "random_hermitian() (in module ffsim.random)": [[0, "ffsim.random.random_hermitian"]], "random_nelec() (in module ffsim.testing)": [[0, "ffsim.testing.random_nelec"]], "random_occupied_orbitals() (in module ffsim.testing)": [[0, "ffsim.testing.random_occupied_orbitals"]], "random_orthogonal() (in module ffsim.random)": [[0, "ffsim.random.random_orthogonal"]], "random_real_symmetric_matrix() (in module ffsim.random)": [[0, "ffsim.random.random_real_symmetric_matrix"]], "random_special_orthogonal() (in module ffsim.random)": [[0, "ffsim.random.random_special_orthogonal"]], "random_statevector() (in module ffsim.random)": [[0, "ffsim.random.random_statevector"]], "random_t2_amplitudes() (in module ffsim.random)": [[0, "ffsim.random.random_t2_amplitudes"]], "random_two_body_tensor_real() (in module ffsim.random)": [[0, "ffsim.random.random_two_body_tensor_real"]], "random_unitary() (in module ffsim.random)": [[0, "ffsim.random.random_unitary"]], "slater_determinant() (in module ffsim.states)": [[0, "ffsim.states.slater_determinant"]], "slater_determinant_one_rdm() (in module ffsim.states)": [[0, "ffsim.states.slater_determinant_one_rdm"]], "contract_diag_coulomb() (in module ffsim.contract.diag_coulomb)": [[1, "ffsim.contract.diag_coulomb.contract_diag_coulomb"]], "contract_num_op_sum() (in module ffsim.contract.num_op_sum)": [[1, "ffsim.contract.num_op_sum.contract_num_op_sum"]], "diag_coulomb_linop() (in module ffsim.contract.diag_coulomb)": [[1, "ffsim.contract.diag_coulomb.diag_coulomb_linop"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "ffsim.contract.diag_coulomb": [[1, "module-ffsim.contract.diag_coulomb"]], "ffsim.contract.hamiltonian": [[1, "module-ffsim.contract.hamiltonian"]], "ffsim.contract.num_op_sum": [[1, "module-ffsim.contract.num_op_sum"]], "hamiltonian_linop() (in module ffsim.contract.hamiltonian)": [[1, "ffsim.contract.hamiltonian.hamiltonian_linop"]], "hamiltonian_trace() (in module ffsim.contract.hamiltonian)": [[1, "ffsim.contract.hamiltonian.hamiltonian_trace"]], "num_op_sum_linop() (in module ffsim.contract.num_op_sum)": [[1, "ffsim.contract.num_op_sum.num_op_sum_linop"]], "apply_diag_coulomb_evolution() (in module ffsim.gates.diag_coulomb)": [[2, "ffsim.gates.diag_coulomb.apply_diag_coulomb_evolution"]], "apply_givens_rotation() (in module ffsim.gates.gates)": [[2, "ffsim.gates.gates.apply_givens_rotation"]], "apply_num_interaction() (in module ffsim.gates.gates)": [[2, "ffsim.gates.gates.apply_num_interaction"]], "apply_num_op_prod_interaction() (in module ffsim.gates.gates)": [[2, "ffsim.gates.gates.apply_num_op_prod_interaction"]], "apply_num_op_sum_evolution() (in module ffsim.gates.num_op_sum)": [[2, "ffsim.gates.num_op_sum.apply_num_op_sum_evolution"]], "apply_orbital_rotation() (in module ffsim.gates.orbital_rotation)": [[2, "ffsim.gates.orbital_rotation.apply_orbital_rotation"]], "apply_tunneling_interaction() (in module ffsim.gates.gates)": [[2, "ffsim.gates.gates.apply_tunneling_interaction"]], "ffsim.gates": [[2, "module-ffsim.gates"]], "ffsim.gates.diag_coulomb": [[2, "module-ffsim.gates.diag_coulomb"]], "ffsim.gates.gates": [[2, "module-ffsim.gates.gates"]], "ffsim.gates.num_op_sum": [[2, "module-ffsim.gates.num_op_sum"]], "ffsim.gates.orbital_rotation": [[2, "module-ffsim.gates.orbital_rotation"]], "gen_orbital_rotation_index() (in module ffsim.gates.orbital_rotation)": [[2, "ffsim.gates.orbital_rotation.gen_orbital_rotation_index"]], "doublefactorizedhamiltonian (class in ffsim.hamiltonians.double_factorized_hamiltonian)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian"]], "molecularhamiltonian (class in ffsim.hamiltonians.molecular_hamiltonian)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian"]], "constant (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.constant"]], "constant (ffsim.hamiltonians.molecular_hamiltonian.molecularhamiltonian attribute)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian.constant"]], "diag_coulomb_mats (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.diag_coulomb_mats"]], "double_factorized_hamiltonian() (in module ffsim.hamiltonians.double_factorized_hamiltonian)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.double_factorized_hamiltonian"]], "ffsim.hamiltonians": [[3, "module-ffsim.hamiltonians"]], "ffsim.hamiltonians.double_factorized_hamiltonian": [[3, "module-ffsim.hamiltonians.double_factorized_hamiltonian"]], "ffsim.hamiltonians.molecular_hamiltonian": [[3, "module-ffsim.hamiltonians.molecular_hamiltonian"]], "norb (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian property)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.norb"]], "norb (ffsim.hamiltonians.molecular_hamiltonian.molecularhamiltonian property)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian.norb"]], "one_body_tensor (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.one_body_tensor"]], "one_body_tensor (ffsim.hamiltonians.molecular_hamiltonian.molecularhamiltonian attribute)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian.one_body_tensor"]], "orbital_rotations (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.orbital_rotations"]], "to_number_representation() (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian method)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.to_number_representation"]], "to_z_representation() (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian method)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.to_z_representation"]], "two_body_tensor (ffsim.hamiltonians.molecular_hamiltonian.molecularhamiltonian attribute)": [[3, "ffsim.hamiltonians.molecular_hamiltonian.MolecularHamiltonian.two_body_tensor"]], "z_representation (ffsim.hamiltonians.double_factorized_hamiltonian.doublefactorizedhamiltonian attribute)": [[3, "ffsim.hamiltonians.double_factorized_hamiltonian.DoubleFactorizedHamiltonian.z_representation"]], "apply_matrix_to_slices() (in module ffsim.linalg.givens)": [[4, "ffsim.linalg.givens.apply_matrix_to_slices"]], "double_factorized() (in module ffsim.linalg.double_factorized)": [[4, "ffsim.linalg.double_factorized.double_factorized"]], "double_factorized_t2() (in module ffsim.linalg.double_factorized)": [[4, "ffsim.linalg.double_factorized.double_factorized_t2"]], "expm_multiply_taylor() (in module ffsim.linalg.linalg)": [[4, "ffsim.linalg.linalg.expm_multiply_taylor"]], "ffsim.linalg": [[4, "module-ffsim.linalg"]], "ffsim.linalg.double_factorized": [[4, "module-ffsim.linalg.double_factorized"]], "ffsim.linalg.givens": [[4, "module-ffsim.linalg.givens"]], "ffsim.linalg.linalg": [[4, "module-ffsim.linalg.linalg"]], "ffsim.linalg.predicates": [[4, "module-ffsim.linalg.predicates"]], "givens_decomposition() (in module ffsim.linalg.givens)": [[4, "ffsim.linalg.givens.givens_decomposition"]], "givens_matrix() (in module ffsim.linalg.givens)": [[4, "ffsim.linalg.givens.givens_matrix"]], "is_antihermitian() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_antihermitian"]], "is_hermitian() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_hermitian"]], "is_orthogonal() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_orthogonal"]], "is_real_symmetric() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_real_symmetric"]], "is_special_orthogonal() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_special_orthogonal"]], "is_unitary() (in module ffsim.linalg.predicates)": [[4, "ffsim.linalg.predicates.is_unitary"]], "lup() (in module ffsim.linalg.linalg)": [[4, "ffsim.linalg.linalg.lup"]], "modified_cholesky() (in module ffsim.linalg.double_factorized)": [[4, "ffsim.linalg.double_factorized.modified_cholesky"]], "optimal_diag_coulomb_mats() (in module ffsim.linalg.double_factorized)": [[4, "ffsim.linalg.double_factorized.optimal_diag_coulomb_mats"]], "supportslinearoperator (class in ffsim.protocols.linear_operator)": [[5, "ffsim.protocols.linear_operator.SupportsLinearOperator"]], "supportstrace (class in ffsim.protocols.trace)": [[5, "ffsim.protocols.trace.SupportsTrace"]], "ffsim.protocols": [[5, "module-ffsim.protocols"]], "ffsim.protocols.linear_operator": [[5, "module-ffsim.protocols.linear_operator"]], "ffsim.protocols.trace": [[5, "module-ffsim.protocols.trace"]], "linear_operator() (in module ffsim.protocols.linear_operator)": [[5, "ffsim.protocols.linear_operator.linear_operator"]], "trace() (in module ffsim.protocols.trace)": [[5, "ffsim.protocols.trace.trace"]], "ffsim.slow": [[6, "module-ffsim.slow"]], "ffsim.slow.contract": [[7, "module-ffsim.slow.contract"]], "ffsim.slow.contract.diag_coulomb": [[7, "module-ffsim.slow.contract.diag_coulomb"]], "ffsim.slow.contract.num_op_sum": [[7, "module-ffsim.slow.contract.num_op_sum"]], "apply_diag_coulomb_evolution_in_place_num_rep_numpy() (in module ffsim.slow.gates.diag_coulomb)": [[8, "ffsim.slow.gates.diag_coulomb.apply_diag_coulomb_evolution_in_place_num_rep_numpy"]], "apply_diag_coulomb_evolution_in_place_num_rep_slow() (in module ffsim.slow.gates.diag_coulomb)": [[8, "ffsim.slow.gates.diag_coulomb.apply_diag_coulomb_evolution_in_place_num_rep_slow"]], "apply_diag_coulomb_evolution_in_place_z_rep_slow() (in module ffsim.slow.gates.diag_coulomb)": [[8, "ffsim.slow.gates.diag_coulomb.apply_diag_coulomb_evolution_in_place_z_rep_slow"]], "apply_givens_rotation_in_place_slow() (in module ffsim.slow.gates.orbital_rotation)": [[8, "ffsim.slow.gates.orbital_rotation.apply_givens_rotation_in_place_slow"]], "apply_num_op_sum_evolution_in_place_slow() (in module ffsim.slow.gates.num_op_sum)": [[8, "ffsim.slow.gates.num_op_sum.apply_num_op_sum_evolution_in_place_slow"]], "apply_single_column_transformation_in_place_slow() (in module ffsim.slow.gates.orbital_rotation)": [[8, "ffsim.slow.gates.orbital_rotation.apply_single_column_transformation_in_place_slow"]], "ffsim.slow.gates": [[8, "module-ffsim.slow.gates"]], "ffsim.slow.gates.diag_coulomb": [[8, "module-ffsim.slow.gates.diag_coulomb"]], "ffsim.slow.gates.num_op_sum": [[8, "module-ffsim.slow.gates.num_op_sum"]], "ffsim.slow.gates.orbital_rotation": [[8, "module-ffsim.slow.gates.orbital_rotation"]], "gen_orbital_rotation_index_in_place_slow() (in module ffsim.slow.gates.orbital_rotation)": [[8, "ffsim.slow.gates.orbital_rotation.gen_orbital_rotation_index_in_place_slow"]], "expectation_squared_diag_coulomb() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.expectation_squared_diag_coulomb"]], "ffsim.trotter": [[9, "module-ffsim.trotter"]], "ffsim.trotter.qdrift": [[9, "module-ffsim.trotter.qdrift"]], "ffsim.trotter.trotter": [[9, "module-ffsim.trotter.trotter"]], "one_body_square_decomposition() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.one_body_square_decomposition"]], "qdrift_probabilities() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.qdrift_probabilities"]], "simulate_qdrift_double_factorized() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.simulate_qdrift_double_factorized"]], "simulate_trotter_double_factorized() (in module ffsim.trotter.trotter)": [[9, "ffsim.trotter.trotter.simulate_trotter_double_factorized"]], "spectral_norm_diag_coulomb() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.spectral_norm_diag_coulomb"]], "spectral_norm_one_body_tensor() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.spectral_norm_one_body_tensor"]], "variance_diag_coulomb() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.variance_diag_coulomb"]], "variance_one_body_tensor() (in module ffsim.trotter.qdrift)": [[9, "ffsim.trotter.qdrift.variance_one_body_tensor"]], "ucjoperator (class in ffsim.variational.lucj)": [[10, "ffsim.variational.lucj.UCJOperator"]], "apply_ucj_operator() (in module ffsim.variational.lucj)": [[10, "ffsim.variational.lucj.apply_ucj_operator"]], "diag_coulomb_mats_alpha_alpha (ffsim.variational.lucj.ucjoperator attribute)": [[10, "ffsim.variational.lucj.UCJOperator.diag_coulomb_mats_alpha_alpha"]], "diag_coulomb_mats_alpha_beta (ffsim.variational.lucj.ucjoperator attribute)": [[10, "ffsim.variational.lucj.UCJOperator.diag_coulomb_mats_alpha_beta"]], "ffsim.variational": [[10, "module-ffsim.variational"]], "ffsim.variational.lucj": [[10, "module-ffsim.variational.lucj"]], "final_orbital_rotation (ffsim.variational.lucj.ucjoperator attribute)": [[10, "ffsim.variational.lucj.UCJOperator.final_orbital_rotation"]], "from_parameters() (ffsim.variational.lucj.ucjoperator static method)": [[10, "ffsim.variational.lucj.UCJOperator.from_parameters"]], "from_t_amplitudes() (ffsim.variational.lucj.ucjoperator static method)": [[10, "ffsim.variational.lucj.UCJOperator.from_t_amplitudes"]], "n_reps (ffsim.variational.lucj.ucjoperator property)": [[10, "ffsim.variational.lucj.UCJOperator.n_reps"]], "norb (ffsim.variational.lucj.ucjoperator property)": [[10, "ffsim.variational.lucj.UCJOperator.norb"]], "orbital_rotations (ffsim.variational.lucj.ucjoperator attribute)": [[10, "ffsim.variational.lucj.UCJOperator.orbital_rotations"]], "to_parameters() (ffsim.variational.lucj.ucjoperator method)": [[10, "ffsim.variational.lucj.UCJOperator.to_parameters"]], "to_t_amplitudes() (ffsim.variational.lucj.ucjoperator method)": [[10, "ffsim.variational.lucj.UCJOperator.to_t_amplitudes"]]}}) \ No newline at end of file diff --git a/tutorials/01-introduction.ipynb b/tutorials/01-introduction.ipynb index b793f492f..da461b7a9 100644 --- a/tutorials/01-introduction.ipynb +++ b/tutorials/01-introduction.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:00.720118Z", - "iopub.status.busy": "2023-09-20T00:05:00.719692Z", - "iopub.status.idle": "2023-09-20T00:05:01.106493Z", - "shell.execute_reply": "2023-09-20T00:05:01.105581Z" + "iopub.execute_input": "2023-09-20T01:34:52.136968Z", + "iopub.status.busy": "2023-09-20T01:34:52.136627Z", + "iopub.status.idle": "2023-09-20T01:34:52.429111Z", + "shell.execute_reply": "2023-09-20T01:34:52.428582Z" } }, "outputs": [], @@ -62,10 +62,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:01.111714Z", - "iopub.status.busy": "2023-09-20T00:05:01.110229Z", - "iopub.status.idle": "2023-09-20T00:05:01.116809Z", - "shell.execute_reply": "2023-09-20T00:05:01.116084Z" + "iopub.execute_input": "2023-09-20T01:34:52.432828Z", + "iopub.status.busy": "2023-09-20T01:34:52.431752Z", + "iopub.status.idle": "2023-09-20T01:34:52.436656Z", + "shell.execute_reply": "2023-09-20T01:34:52.436203Z" } }, "outputs": [], @@ -92,10 +92,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:01.121897Z", - "iopub.status.busy": "2023-09-20T00:05:01.120737Z", - "iopub.status.idle": "2023-09-20T00:05:01.125776Z", - "shell.execute_reply": "2023-09-20T00:05:01.125120Z" + "iopub.execute_input": "2023-09-20T01:34:52.440313Z", + "iopub.status.busy": "2023-09-20T01:34:52.439379Z", + "iopub.status.idle": "2023-09-20T01:34:52.443177Z", + "shell.execute_reply": "2023-09-20T01:34:52.442736Z" } }, "outputs": [], diff --git a/tutorials/02-orbital-rotation.ipynb b/tutorials/02-orbital-rotation.ipynb index 5c842a451..9453e4632 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-09-20T00:05:03.069372Z", - "iopub.status.busy": "2023-09-20T00:05:03.069107Z", - "iopub.status.idle": "2023-09-20T00:05:03.452353Z", - "shell.execute_reply": "2023-09-20T00:05:03.451534Z" + "iopub.execute_input": "2023-09-20T01:34:54.037186Z", + "iopub.status.busy": "2023-09-20T01:34:54.036843Z", + "iopub.status.idle": "2023-09-20T01:34:54.310698Z", + "shell.execute_reply": "2023-09-20T01:34:54.310166Z" } }, "outputs": [], @@ -111,10 +111,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:03.457501Z", - "iopub.status.busy": "2023-09-20T00:05:03.456811Z", - "iopub.status.idle": "2023-09-20T00:05:03.494792Z", - "shell.execute_reply": "2023-09-20T00:05:03.493843Z" + "iopub.execute_input": "2023-09-20T01:34:54.314980Z", + "iopub.status.busy": "2023-09-20T01:34:54.313975Z", + "iopub.status.idle": "2023-09-20T01:34:54.338879Z", + "shell.execute_reply": "2023-09-20T01:34:54.338397Z" } }, "outputs": [], @@ -160,10 +160,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:03.500071Z", - "iopub.status.busy": "2023-09-20T00:05:03.499506Z", - "iopub.status.idle": "2023-09-20T00:05:03.516057Z", - "shell.execute_reply": "2023-09-20T00:05:03.515261Z" + "iopub.execute_input": "2023-09-20T01:34:54.342618Z", + "iopub.status.busy": "2023-09-20T01:34:54.341703Z", + "iopub.status.idle": "2023-09-20T01:34:54.353128Z", + "shell.execute_reply": "2023-09-20T01:34:54.352653Z" } }, "outputs": [], @@ -203,10 +203,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:03.522207Z", - "iopub.status.busy": "2023-09-20T00:05:03.520026Z", - "iopub.status.idle": "2023-09-20T00:05:03.529057Z", - "shell.execute_reply": "2023-09-20T00:05:03.528223Z" + "iopub.execute_input": "2023-09-20T01:34:54.357099Z", + "iopub.status.busy": "2023-09-20T01:34:54.355798Z", + "iopub.status.idle": "2023-09-20T01:34:54.361562Z", + "shell.execute_reply": "2023-09-20T01:34:54.361093Z" } }, "outputs": [], diff --git a/tutorials/03-double-factorized.html b/tutorials/03-double-factorized.html index f4dd9cae4..6f79bc4a0 100644 --- a/tutorials/03-double-factorized.html +++ b/tutorials/03-double-factorized.html @@ -132,48 +132,48 @@

Double-factorized representation of the molecular Hamiltonian
-Hartree Fock energy: -0.8377963825937086
+Hartree Fock energy: -0.837796382593709
 

Now, we set the evolution time and calculate the exact result of time evolution by directly exponentiating the Hamiltonian using SciPy. Later, we will compare the result of our approximate time evolution with this exact result.

@@ -325,7 +325,7 @@

Implementing Trotter simulation of the double-factorized Hamiltonian
-Fidelity of evolved state w.r.t. initial state: 0.9696296369955067
+Fidelity of evolved state w.r.t. initial state: 0.9696296369955066
 

Now, let’s test our implementation.

@@ -352,7 +352,7 @@

Implementing Trotter simulation of the double-factorized Hamiltonian
-Fidelity of Trotter-evolved state with exact state: 0.9990275744083494
+Fidelity of Trotter-evolved state with exact state: 0.9990275744083491
 

The fidelity of the final result can be improved by increasing the number of Trotter steps.

@@ -379,7 +379,7 @@

Implementing Trotter simulation of the double-factorized Hamiltonian
-Fidelity of Trotter-evolved state with exact state: 0.9999906233109681
+Fidelity of Trotter-evolved state with exact state: 0.9999906233109653
 

As mentioned above, ffsim already includes functionality for Trotter simulation of double-factorized Hamiltonians. The implementation in ffsim includes higher-order Trotter-Suzuki formulas. The first-order asymmetric formula that we just implemented corresponds to order=0 in ffsim’s implementation. order=1 corresponds to the first-order symmetric (commonly known as the second-order) formula, order=2 corresponds to the second-order symmetric (fourth-order) formula, and so on.

@@ -408,7 +408,7 @@

Implementing Trotter simulation of the double-factorized Hamiltonian
-Fidelity of Trotter-evolved state with exact state: 0.9999906233109681
+Fidelity of Trotter-evolved state with exact state: 0.9999906233109653
 

A higher order formula achieves a higher fidelity with fewer Trotter steps:

@@ -436,7 +436,7 @@

Implementing Trotter simulation of the double-factorized Hamiltonian
-Fidelity of Trotter-evolved state with exact state: 0.9999999336740071
+Fidelity of Trotter-evolved state with exact state: 0.9999999336740059
 
diff --git a/tutorials/03-double-factorized.ipynb b/tutorials/03-double-factorized.ipynb index 0fc621fd0..00097a483 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-09-20T00:05:05.425574Z", - "iopub.status.busy": "2023-09-20T00:05:05.425235Z", - "iopub.status.idle": "2023-09-20T00:05:05.925194Z", - "shell.execute_reply": "2023-09-20T00:05:05.924352Z" + "iopub.execute_input": "2023-09-20T01:34:55.840954Z", + "iopub.status.busy": "2023-09-20T01:34:55.840563Z", + "iopub.status.idle": "2023-09-20T01:34:56.218443Z", + "shell.execute_reply": "2023-09-20T01:34:56.217867Z" } }, "outputs": [ @@ -93,10 +93,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.944318Z", - "iopub.status.busy": "2023-09-20T00:05:05.943614Z", - "iopub.status.idle": "2023-09-20T00:05:05.951906Z", - "shell.execute_reply": "2023-09-20T00:05:05.951232Z" + "iopub.execute_input": "2023-09-20T01:34:56.222374Z", + "iopub.status.busy": "2023-09-20T01:34:56.221359Z", + "iopub.status.idle": "2023-09-20T01:34:56.228537Z", + "shell.execute_reply": "2023-09-20T01:34:56.228058Z" } }, "outputs": [ @@ -107,48 +107,48 @@ "Original representation\n", "-----------------------\n", "One-body tensor:\n", - "[[-8.27478830e-01 1.69963606e-16]\n", - " [ 2.27557343e-16 -6.77238770e-01]]\n", + "[[-8.27478830e-01 -2.66405155e-16]\n", + " [-3.07220771e-16 -6.77238770e-01]]\n", "\n", "Two-body tensor:\n", - "[[[[ 5.23173938e-01 -1.85221301e-16]\n", - " [-1.85221301e-16 5.33545754e-01]]\n", + "[[[[5.23173938e-01 1.94289029e-16]\n", + " [1.94289029e-16 5.33545754e-01]]\n", "\n", - " [[-1.60188973e-16 2.48240570e-01]\n", - " [ 2.48240570e-01 -4.63466523e-17]]]\n", + " [[1.94289029e-16 2.48240570e-01]\n", + " [2.48240570e-01 8.32667268e-17]]]\n", "\n", "\n", - " [[[-1.60188973e-16 2.48240570e-01]\n", - " [ 2.48240570e-01 -4.63466523e-17]]\n", + " [[[1.94289029e-16 2.48240570e-01]\n", + " [2.48240570e-01 8.32667268e-17]]\n", "\n", - " [[ 5.33545754e-01 -6.67297191e-18]\n", - " [-6.67297191e-18 5.53132024e-01]]]]\n", + " [[5.33545754e-01 1.11022302e-16]\n", + " [1.11022302e-16 5.53132024e-01]]]]\n", "\n", "Double-factorized representation\n", "--------------------------------\n", "One-body tensor:\n", - "[[-1.21318608e+00 2.85747582e-16]\n", - " [ 3.10988315e-16 -1.07792507e+00]]\n", + "[[-1.21318608e+00 -4.05183033e-16]\n", + " [-4.59876437e-16 -1.07792507e+00]]\n", "\n", "Diagonal Coulomb matrices:\n", - "[[[ 5.14653029e-01 5.33545754e-01]\n", - " [ 5.33545754e-01 5.53132024e-01]]\n", + "[[[ 5.14653029e-001 5.33545754e-001]\n", + " [ 5.33545754e-001 5.53132024e-001]]\n", "\n", - " [[ 2.48240570e-01 -2.48240570e-01]\n", - " [-2.48240570e-01 2.48240570e-01]]\n", + " [[ 2.48240570e-001 -2.48240570e-001]\n", + " [-2.48240570e-001 2.48240570e-001]]\n", "\n", - " [[ 1.44655364e-30 -1.11022302e-16]\n", - " [-1.11022302e-16 8.52090881e-03]]]\n", + " [[ 5.96958401e-121 -7.13206008e-062]\n", + " [-7.13206008e-062 8.52090881e-003]]]\n", "\n", "Orbital rotations:\n", - "[[[ 1.00000000e+00 0.00000000e+00]\n", - " [ 0.00000000e+00 1.00000000e+00]]\n", + "[[[-1.00000000e+00 4.25128053e-15]\n", + " [ 4.25128053e-15 1.00000000e+00]]\n", "\n", - " [[-7.07106781e-01 -7.07106781e-01]\n", - " [ 7.07106781e-01 -7.07106781e-01]]\n", + " [[ 7.07106781e-01 -7.07106781e-01]\n", + " [-7.07106781e-01 -7.07106781e-01]]\n", "\n", - " [[ 2.93775326e-15 -1.00000000e+00]\n", - " [-1.00000000e+00 -2.93775326e-15]]]\n" + " [[ 2.89310728e-30 -1.00000000e+00]\n", + " [-1.00000000e+00 -2.89310728e-30]]]\n" ] } ], @@ -227,10 +227,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.955072Z", - "iopub.status.busy": "2023-09-20T00:05:05.954538Z", - "iopub.status.idle": "2023-09-20T00:05:05.960683Z", - "shell.execute_reply": "2023-09-20T00:05:05.960023Z" + "iopub.execute_input": "2023-09-20T01:34:56.231096Z", + "iopub.status.busy": "2023-09-20T01:34:56.230741Z", + "iopub.status.idle": "2023-09-20T01:34:56.235201Z", + "shell.execute_reply": "2023-09-20T01:34:56.234751Z" } }, "outputs": [], @@ -285,10 +285,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.964040Z", - "iopub.status.busy": "2023-09-20T00:05:05.963597Z", - "iopub.status.idle": "2023-09-20T00:05:05.968188Z", - "shell.execute_reply": "2023-09-20T00:05:05.967549Z" + "iopub.execute_input": "2023-09-20T01:34:56.237589Z", + "iopub.status.busy": "2023-09-20T01:34:56.237231Z", + "iopub.status.idle": "2023-09-20T01:34:56.240867Z", + "shell.execute_reply": "2023-09-20T01:34:56.240424Z" } }, "outputs": [], @@ -325,10 +325,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.971193Z", - "iopub.status.busy": "2023-09-20T00:05:05.970801Z", - "iopub.status.idle": "2023-09-20T00:05:05.976950Z", - "shell.execute_reply": "2023-09-20T00:05:05.976125Z" + "iopub.execute_input": "2023-09-20T01:34:56.243205Z", + "iopub.status.busy": "2023-09-20T01:34:56.242855Z", + "iopub.status.idle": "2023-09-20T01:34:56.247340Z", + "shell.execute_reply": "2023-09-20T01:34:56.246908Z" } }, "outputs": [ @@ -336,7 +336,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Hartree Fock energy: -0.8377963825937086\n" + "Hartree Fock energy: -0.837796382593709\n" ] } ], @@ -367,10 +367,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.981755Z", - "iopub.status.busy": "2023-09-20T00:05:05.981045Z", - "iopub.status.idle": "2023-09-20T00:05:05.995444Z", - "shell.execute_reply": "2023-09-20T00:05:05.994599Z" + "iopub.execute_input": "2023-09-20T01:34:56.249736Z", + "iopub.status.busy": "2023-09-20T01:34:56.249390Z", + "iopub.status.idle": "2023-09-20T01:34:56.258321Z", + "shell.execute_reply": "2023-09-20T01:34:56.257831Z" } }, "outputs": [ @@ -378,7 +378,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of evolved state w.r.t. initial state: 0.9696296369955067\n" + "Fidelity of evolved state w.r.t. initial state: 0.9696296369955066\n" ] } ], @@ -409,10 +409,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:05.998882Z", - "iopub.status.busy": "2023-09-20T00:05:05.998635Z", - "iopub.status.idle": "2023-09-20T00:05:06.010620Z", - "shell.execute_reply": "2023-09-20T00:05:06.009917Z" + "iopub.execute_input": "2023-09-20T01:34:56.260674Z", + "iopub.status.busy": "2023-09-20T01:34:56.260322Z", + "iopub.status.idle": "2023-09-20T01:34:56.267335Z", + "shell.execute_reply": "2023-09-20T01:34:56.266865Z" } }, "outputs": [ @@ -420,7 +420,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9990275744083494\n" + "Fidelity of Trotter-evolved state with exact state: 0.9990275744083491\n" ] } ], @@ -450,10 +450,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:06.013958Z", - "iopub.status.busy": "2023-09-20T00:05:06.013670Z", - "iopub.status.idle": "2023-09-20T00:05:06.075118Z", - "shell.execute_reply": "2023-09-20T00:05:06.073850Z" + "iopub.execute_input": "2023-09-20T01:34:56.269551Z", + "iopub.status.busy": "2023-09-20T01:34:56.269374Z", + "iopub.status.idle": "2023-09-20T01:34:56.303345Z", + "shell.execute_reply": "2023-09-20T01:34:56.302913Z" } }, "outputs": [ @@ -461,7 +461,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999906233109681\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999906233109653\n" ] } ], @@ -493,10 +493,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:06.078459Z", - "iopub.status.busy": "2023-09-20T00:05:06.078233Z", - "iopub.status.idle": "2023-09-20T00:05:06.124318Z", - "shell.execute_reply": "2023-09-20T00:05:06.123220Z" + "iopub.execute_input": "2023-09-20T01:34:56.305778Z", + "iopub.status.busy": "2023-09-20T01:34:56.305495Z", + "iopub.status.idle": "2023-09-20T01:34:56.333099Z", + "shell.execute_reply": "2023-09-20T01:34:56.332671Z" } }, "outputs": [ @@ -504,7 +504,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999906233109681\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999906233109653\n" ] } ], @@ -535,10 +535,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2023-09-20T00:05:06.127511Z", - "iopub.status.busy": "2023-09-20T00:05:06.127288Z", - "iopub.status.idle": "2023-09-20T00:05:06.148661Z", - "shell.execute_reply": "2023-09-20T00:05:06.147469Z" + "iopub.execute_input": "2023-09-20T01:34:56.336145Z", + "iopub.status.busy": "2023-09-20T01:34:56.335857Z", + "iopub.status.idle": "2023-09-20T01:34:56.347760Z", + "shell.execute_reply": "2023-09-20T01:34:56.347303Z" } }, "outputs": [ @@ -546,7 +546,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999999336740071\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999999336740059\n" ] } ], diff --git a/tutorials/04-lucj.html b/tutorials/04-lucj.html index 97e5c39de..dff044635 100644 --- a/tutorials/04-lucj.html +++ b/tutorials/04-lucj.html @@ -125,8 +125,8 @@

The unitary cluster Jastrow (UCJ) ansatz
-E(CCSD) = -0.9707730767165441  E_corr = -0.1329766941228354
-Energy at initialialization: -0.9696246123746104
+E(CCSD) = -0.970773076716434  E_corr = -0.1329766941227252
+Energy at initialialization: -0.9696246123746335
 

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

@@ -165,15 +165,15 @@

The unitary cluster Jastrow (UCJ) ansatz