diff --git a/dev/.buildinfo b/dev/.buildinfo index 7769e445d..947810cdd 100644 --- a/dev/.buildinfo +++ b/dev/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. -config: dfa4d41232a878355f17989d4be82664 +config: f3394978bc4413cb6d2ebc407de147ad tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/dev/.doctrees/environment.pickle b/dev/.doctrees/environment.pickle index 9fd99cbf4..bf136d04a 100644 Binary files a/dev/.doctrees/environment.pickle and b/dev/.doctrees/environment.pickle differ diff --git a/dev/.doctrees/explanations/hamiltonians.doctree b/dev/.doctrees/explanations/hamiltonians.doctree index 7794a6514..fd954545f 100644 Binary files a/dev/.doctrees/explanations/hamiltonians.doctree and b/dev/.doctrees/explanations/hamiltonians.doctree differ diff --git a/dev/.doctrees/how-to-guides/entanglement-forging.doctree b/dev/.doctrees/how-to-guides/entanglement-forging.doctree index 801f6c172..2397c6923 100644 Binary files a/dev/.doctrees/how-to-guides/entanglement-forging.doctree and b/dev/.doctrees/how-to-guides/entanglement-forging.doctree differ diff --git a/dev/.doctrees/how-to-guides/fermion-operator.doctree b/dev/.doctrees/how-to-guides/fermion-operator.doctree index 8f592b4cc..9d834d114 100644 Binary files a/dev/.doctrees/how-to-guides/fermion-operator.doctree and b/dev/.doctrees/how-to-guides/fermion-operator.doctree differ diff --git a/dev/.doctrees/how-to-guides/lucj.doctree b/dev/.doctrees/how-to-guides/lucj.doctree index bd99e43eb..2d2d658b0 100644 Binary files a/dev/.doctrees/how-to-guides/lucj.doctree and b/dev/.doctrees/how-to-guides/lucj.doctree differ diff --git a/dev/.doctrees/how-to-guides/qiskit-circuits.doctree b/dev/.doctrees/how-to-guides/qiskit-circuits.doctree index 74afd0670..9f05a1410 100644 Binary files a/dev/.doctrees/how-to-guides/qiskit-circuits.doctree and b/dev/.doctrees/how-to-guides/qiskit-circuits.doctree differ diff --git a/dev/.doctrees/how-to-guides/qiskit-sampler.doctree b/dev/.doctrees/how-to-guides/qiskit-sampler.doctree index 782624f63..7f294d382 100644 Binary files a/dev/.doctrees/how-to-guides/qiskit-sampler.doctree and b/dev/.doctrees/how-to-guides/qiskit-sampler.doctree differ diff --git a/dev/.doctrees/nbsphinx/explanations/hamiltonians.ipynb b/dev/.doctrees/nbsphinx/explanations/hamiltonians.ipynb index 0e7650583..89488bebe 100644 --- a/dev/.doctrees/nbsphinx/explanations/hamiltonians.ipynb +++ b/dev/.doctrees/nbsphinx/explanations/hamiltonians.ipynb @@ -33,10 +33,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:16.791195Z", - "iopub.status.busy": "2024-10-13T14:00:16.791009Z", - "iopub.status.idle": "2024-10-13T14:00:17.498064Z", - "shell.execute_reply": "2024-10-13T14:00:17.497406Z" + "iopub.execute_input": "2024-10-14T00:39:42.771543Z", + "iopub.status.busy": "2024-10-14T00:39:42.771028Z", + "iopub.status.idle": "2024-10-14T00:39:43.465209Z", + "shell.execute_reply": "2024-10-14T00:39:43.464564Z" } }, "outputs": [], @@ -68,10 +68,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.500483Z", - "iopub.status.busy": "2024-10-13T14:00:17.500170Z", - "iopub.status.idle": "2024-10-13T14:00:17.503075Z", - "shell.execute_reply": "2024-10-13T14:00:17.502582Z" + "iopub.execute_input": "2024-10-14T00:39:43.467908Z", + "iopub.status.busy": "2024-10-14T00:39:43.467461Z", + "iopub.status.idle": "2024-10-14T00:39:43.470366Z", + "shell.execute_reply": "2024-10-14T00:39:43.469857Z" } }, "outputs": [], @@ -99,10 +99,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.505033Z", - "iopub.status.busy": "2024-10-13T14:00:17.504667Z", - "iopub.status.idle": "2024-10-13T14:00:17.507918Z", - "shell.execute_reply": "2024-10-13T14:00:17.507433Z" + "iopub.execute_input": "2024-10-14T00:39:43.472242Z", + "iopub.status.busy": "2024-10-14T00:39:43.471892Z", + "iopub.status.idle": "2024-10-14T00:39:43.474853Z", + "shell.execute_reply": "2024-10-14T00:39:43.474390Z" } }, "outputs": [], @@ -127,10 +127,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.509949Z", - "iopub.status.busy": "2024-10-13T14:00:17.509520Z", - "iopub.status.idle": "2024-10-13T14:00:17.513976Z", - "shell.execute_reply": "2024-10-13T14:00:17.513435Z" + "iopub.execute_input": "2024-10-14T00:39:43.476670Z", + "iopub.status.busy": "2024-10-14T00:39:43.476331Z", + "iopub.status.idle": "2024-10-14T00:39:43.480795Z", + "shell.execute_reply": "2024-10-14T00:39:43.480237Z" } }, "outputs": [], @@ -152,17 +152,17 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.516358Z", - "iopub.status.busy": "2024-10-13T14:00:17.515936Z", - "iopub.status.idle": "2024-10-13T14:00:17.541139Z", - "shell.execute_reply": "2024-10-13T14:00:17.540591Z" + "iopub.execute_input": "2024-10-14T00:39:43.483260Z", + "iopub.status.busy": "2024-10-14T00:39:43.482671Z", + "iopub.status.idle": "2024-10-14T00:39:43.508599Z", + "shell.execute_reply": "2024-10-14T00:39:43.508059Z" } }, "outputs": [ { "data": { "text/plain": [ - "np.float64(-99.55717072551565)" + "np.float64(-99.55717072551538)" ] }, "execution_count": 5, @@ -191,10 +191,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.576494Z", - "iopub.status.busy": "2024-10-13T14:00:17.576112Z", - "iopub.status.idle": "2024-10-13T14:00:18.236565Z", - "shell.execute_reply": "2024-10-13T14:00:18.235925Z" + "iopub.execute_input": "2024-10-14T00:39:43.542116Z", + "iopub.status.busy": "2024-10-14T00:39:43.541677Z", + "iopub.status.idle": "2024-10-14T00:39:44.159828Z", + "shell.execute_reply": "2024-10-14T00:39:44.159252Z" } }, "outputs": [ @@ -202,7 +202,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_4256/2190712273.py:2: UserWarning: Trace of LinearOperator not available, it will be estimated. Provide `traceA` to ensure performance.\n", + "/tmp/ipykernel_4360/2190712273.py:2: UserWarning: Trace of LinearOperator not available, it will be estimated. Provide `traceA` to ensure performance.\n", " evolved_vec = scipy.sparse.linalg.expm_multiply(-1j * time * linop, vec)\n" ] } @@ -224,10 +224,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:18.239412Z", - "iopub.status.busy": "2024-10-13T14:00:18.239050Z", - "iopub.status.idle": "2024-10-13T14:00:18.852979Z", - "shell.execute_reply": "2024-10-13T14:00:18.852353Z" + "iopub.execute_input": "2024-10-14T00:39:44.162347Z", + "iopub.status.busy": "2024-10-14T00:39:44.161893Z", + "iopub.status.idle": "2024-10-14T00:39:44.750277Z", + "shell.execute_reply": "2024-10-14T00:39:44.749700Z" } }, "outputs": [], diff --git a/dev/.doctrees/nbsphinx/explanations/orbital-rotation.ipynb b/dev/.doctrees/nbsphinx/explanations/orbital-rotation.ipynb index 8e5d85e5e..e3a27b9f0 100644 --- a/dev/.doctrees/nbsphinx/explanations/orbital-rotation.ipynb +++ b/dev/.doctrees/nbsphinx/explanations/orbital-rotation.ipynb @@ -62,10 +62,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:21.973578Z", - "iopub.status.busy": "2024-10-13T14:00:21.973344Z", - "iopub.status.idle": "2024-10-13T14:00:22.670832Z", - "shell.execute_reply": "2024-10-13T14:00:22.670296Z" + "iopub.execute_input": "2024-10-14T00:39:47.864528Z", + "iopub.status.busy": "2024-10-14T00:39:47.864088Z", + "iopub.status.idle": "2024-10-14T00:39:48.569108Z", + "shell.execute_reply": "2024-10-14T00:39:48.568441Z" } }, "outputs": [], diff --git a/dev/.doctrees/nbsphinx/explanations/qiskit-gate-decompositions.ipynb b/dev/.doctrees/nbsphinx/explanations/qiskit-gate-decompositions.ipynb index 88301fe5f..0e5dd13fe 100644 --- a/dev/.doctrees/nbsphinx/explanations/qiskit-gate-decompositions.ipynb +++ b/dev/.doctrees/nbsphinx/explanations/qiskit-gate-decompositions.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:24.275039Z", - "iopub.status.busy": "2024-10-13T14:00:24.274854Z", - "iopub.status.idle": "2024-10-13T14:00:25.901282Z", - "shell.execute_reply": "2024-10-13T14:00:25.900644Z" + "iopub.execute_input": "2024-10-14T00:39:50.087403Z", + "iopub.status.busy": "2024-10-14T00:39:50.087218Z", + "iopub.status.idle": "2024-10-14T00:39:51.647378Z", + "shell.execute_reply": "2024-10-14T00:39:51.646836Z" } }, "outputs": [ @@ -81,10 +81,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:25.903383Z", - "iopub.status.busy": "2024-10-13T14:00:25.903085Z", - "iopub.status.idle": "2024-10-13T14:00:26.102878Z", - "shell.execute_reply": "2024-10-13T14:00:26.102311Z" + "iopub.execute_input": "2024-10-14T00:39:51.649672Z", + "iopub.status.busy": "2024-10-14T00:39:51.649108Z", + "iopub.status.idle": "2024-10-14T00:39:51.837835Z", + "shell.execute_reply": "2024-10-14T00:39:51.837253Z" } }, "outputs": [ @@ -119,10 +119,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.105201Z", - "iopub.status.busy": "2024-10-13T14:00:26.104771Z", - "iopub.status.idle": "2024-10-13T14:00:26.212834Z", - "shell.execute_reply": "2024-10-13T14:00:26.212246Z" + "iopub.execute_input": "2024-10-14T00:39:51.839961Z", + "iopub.status.busy": "2024-10-14T00:39:51.839584Z", + "iopub.status.idle": "2024-10-14T00:39:51.951449Z", + "shell.execute_reply": "2024-10-14T00:39:51.950973Z" } }, "outputs": [ @@ -156,10 +156,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.215071Z", - "iopub.status.busy": "2024-10-13T14:00:26.214684Z", - "iopub.status.idle": "2024-10-13T14:00:26.325098Z", - "shell.execute_reply": "2024-10-13T14:00:26.324457Z" + "iopub.execute_input": "2024-10-14T00:39:51.953548Z", + "iopub.status.busy": "2024-10-14T00:39:51.953067Z", + "iopub.status.idle": "2024-10-14T00:39:52.063367Z", + "shell.execute_reply": "2024-10-14T00:39:52.062743Z" } }, "outputs": [ @@ -196,10 +196,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.327544Z", - "iopub.status.busy": "2024-10-13T14:00:26.327135Z", - "iopub.status.idle": "2024-10-13T14:00:26.511874Z", - "shell.execute_reply": "2024-10-13T14:00:26.511355Z" + "iopub.execute_input": "2024-10-14T00:39:52.065501Z", + "iopub.status.busy": "2024-10-14T00:39:52.065120Z", + "iopub.status.idle": "2024-10-14T00:39:52.251347Z", + "shell.execute_reply": "2024-10-14T00:39:52.250882Z" } }, "outputs": [ @@ -250,10 +250,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.513877Z", - "iopub.status.busy": "2024-10-13T14:00:26.513680Z", - "iopub.status.idle": "2024-10-13T14:00:26.736717Z", - "shell.execute_reply": "2024-10-13T14:00:26.736056Z" + "iopub.execute_input": "2024-10-14T00:39:52.253354Z", + "iopub.status.busy": "2024-10-14T00:39:52.253155Z", + "iopub.status.idle": "2024-10-14T00:39:52.487381Z", + "shell.execute_reply": "2024-10-14T00:39:52.486618Z" } }, "outputs": [ @@ -292,10 +292,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.739195Z", - "iopub.status.busy": "2024-10-13T14:00:26.738667Z", - "iopub.status.idle": "2024-10-13T14:00:26.876394Z", - "shell.execute_reply": "2024-10-13T14:00:26.875776Z" + "iopub.execute_input": "2024-10-14T00:39:52.489606Z", + "iopub.status.busy": "2024-10-14T00:39:52.489197Z", + "iopub.status.idle": "2024-10-14T00:39:52.635712Z", + "shell.execute_reply": "2024-10-14T00:39:52.635096Z" } }, "outputs": [ @@ -334,10 +334,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.878616Z", - "iopub.status.busy": "2024-10-13T14:00:26.878225Z", - "iopub.status.idle": "2024-10-13T14:00:27.402724Z", - "shell.execute_reply": "2024-10-13T14:00:27.402184Z" + "iopub.execute_input": "2024-10-14T00:39:52.637586Z", + "iopub.status.busy": "2024-10-14T00:39:52.637387Z", + "iopub.status.idle": "2024-10-14T00:39:53.155051Z", + "shell.execute_reply": "2024-10-14T00:39:53.154424Z" } }, "outputs": [ @@ -378,10 +378,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:27.404919Z", - "iopub.status.busy": "2024-10-13T14:00:27.404519Z", - "iopub.status.idle": "2024-10-13T14:00:27.587529Z", - "shell.execute_reply": "2024-10-13T14:00:27.586904Z" + "iopub.execute_input": "2024-10-14T00:39:53.157239Z", + "iopub.status.busy": "2024-10-14T00:39:53.156866Z", + "iopub.status.idle": "2024-10-14T00:39:53.352142Z", + "shell.execute_reply": "2024-10-14T00:39:53.351608Z" } }, "outputs": [ @@ -430,10 +430,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:27.589653Z", - "iopub.status.busy": "2024-10-13T14:00:27.589452Z", - "iopub.status.idle": "2024-10-13T14:00:27.757258Z", - "shell.execute_reply": "2024-10-13T14:00:27.756658Z" + "iopub.execute_input": "2024-10-14T00:39:53.354076Z", + "iopub.status.busy": "2024-10-14T00:39:53.353858Z", + "iopub.status.idle": "2024-10-14T00:39:53.521768Z", + "shell.execute_reply": "2024-10-14T00:39:53.521293Z" } }, "outputs": [ @@ -474,10 +474,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:27.759539Z", - "iopub.status.busy": "2024-10-13T14:00:27.759169Z", - "iopub.status.idle": "2024-10-13T14:00:27.891422Z", - "shell.execute_reply": "2024-10-13T14:00:27.890739Z" + "iopub.execute_input": "2024-10-14T00:39:53.523807Z", + "iopub.status.busy": "2024-10-14T00:39:53.523443Z", + "iopub.status.idle": "2024-10-14T00:39:53.653204Z", + "shell.execute_reply": "2024-10-14T00:39:53.652746Z" } }, "outputs": [ @@ -513,10 +513,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:27.893831Z", - "iopub.status.busy": "2024-10-13T14:00:27.893411Z", - "iopub.status.idle": "2024-10-13T14:00:28.073495Z", - "shell.execute_reply": "2024-10-13T14:00:28.072875Z" + "iopub.execute_input": "2024-10-14T00:39:53.655047Z", + "iopub.status.busy": "2024-10-14T00:39:53.654857Z", + "iopub.status.idle": "2024-10-14T00:39:53.833160Z", + "shell.execute_reply": "2024-10-14T00:39:53.832558Z" } }, "outputs": [ @@ -553,10 +553,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.075684Z", - "iopub.status.busy": "2024-10-13T14:00:28.075480Z", - "iopub.status.idle": "2024-10-13T14:00:28.235492Z", - "shell.execute_reply": "2024-10-13T14:00:28.234947Z" + "iopub.execute_input": "2024-10-14T00:39:53.835344Z", + "iopub.status.busy": "2024-10-14T00:39:53.834892Z", + "iopub.status.idle": "2024-10-14T00:39:53.993464Z", + "shell.execute_reply": "2024-10-14T00:39:53.992887Z" } }, "outputs": [ @@ -593,10 +593,10 @@ "execution_count": 14, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.237439Z", - "iopub.status.busy": "2024-10-13T14:00:28.237243Z", - "iopub.status.idle": "2024-10-13T14:00:28.367909Z", - "shell.execute_reply": "2024-10-13T14:00:28.367373Z" + "iopub.execute_input": "2024-10-14T00:39:53.995419Z", + "iopub.status.busy": "2024-10-14T00:39:53.995067Z", + "iopub.status.idle": "2024-10-14T00:39:54.127269Z", + "shell.execute_reply": "2024-10-14T00:39:54.126697Z" } }, "outputs": [ @@ -630,10 +630,10 @@ "execution_count": 15, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.370040Z", - "iopub.status.busy": "2024-10-13T14:00:28.369695Z", - "iopub.status.idle": "2024-10-13T14:00:28.529494Z", - "shell.execute_reply": "2024-10-13T14:00:28.528866Z" + "iopub.execute_input": "2024-10-14T00:39:54.129329Z", + "iopub.status.busy": "2024-10-14T00:39:54.128976Z", + "iopub.status.idle": "2024-10-14T00:39:54.287210Z", + "shell.execute_reply": "2024-10-14T00:39:54.286733Z" } }, "outputs": [ @@ -677,10 +677,10 @@ "execution_count": 16, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.531727Z", - "iopub.status.busy": "2024-10-13T14:00:28.531359Z", - "iopub.status.idle": "2024-10-13T14:00:28.721378Z", - "shell.execute_reply": "2024-10-13T14:00:28.720737Z" + "iopub.execute_input": "2024-10-14T00:39:54.289228Z", + "iopub.status.busy": "2024-10-14T00:39:54.288881Z", + "iopub.status.idle": "2024-10-14T00:39:54.459440Z", + "shell.execute_reply": "2024-10-14T00:39:54.458871Z" } }, "outputs": [ @@ -736,16 +736,16 @@ "execution_count": 17, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.723537Z", - "iopub.status.busy": "2024-10-13T14:00:28.723192Z", - "iopub.status.idle": "2024-10-13T14:00:29.172032Z", - "shell.execute_reply": "2024-10-13T14:00:29.171395Z" + "iopub.execute_input": "2024-10-14T00:39:54.461459Z", + "iopub.status.busy": "2024-10-14T00:39:54.461263Z", + "iopub.status.idle": "2024-10-14T00:39:54.912249Z", + "shell.execute_reply": "2024-10-14T00:39:54.911642Z" } }, "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABLsAAAMkCAYAAABQkSLjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADTPklEQVR4nOzdeVyVZf7/8ddZWERABDdUZBFFXFhG09zyaFhZk+aYrZaVzrQ3zpQtLv2cSsscm5k2m0Yrc9IWp7L62qIlakbuuIvggvsuAoKAnPP74+RRBEEFzsb7+XjwkPu6r3Nfn/v25pz7fO7rum6DzWazISIiIiIiIiIi4gWMrg5ARERERERERESkpijZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNdQsktERERERERERLyGkl0iIiIiIiIiIuI1lOwSERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNdQsktERERERERERLyGkl0iIiIiIiIiIuI1lOwSERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNdQsktERERERERERLyGkl0iIiIiIiIiIuI1lOwSERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNdQsktERERERERERLyG2dUBuLPivAJObNnt6jC8RsP4VvgGBVRZL78EsnKdEFAFYoMh0Mc1bYuIiIiIiIhI9SnZVYkTW3bz7aBxrg7DawyY9xJNu7arsl5WLoxc5oSAKjC9JySFuaZtEREREREREak+DWMUERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkMT1ItXyBhr4dTWNAxmHwwmM/4t2tF82ESCE691dWgiIiIiIiIi4kTq2SVeo/mwiSR/kk/CzEPUj+vO9km3UHrqpKvDEhEREREREREnUrJLvI7Rx49G/UdgPZ3P6QNZrg5HRERERERERJxIyS7xOtaiQo4umI4xIBj/5m1cHY6IiIiIiIiIOJHH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RETEayjZJSIiIiIiIiIiXkMT1IvbiQ2G6T1d17aIiIiIiIiIeC4lu8TtBPpAUpiroxARERERERERT6RhjCJ1VGpqKtHR0VgsFoYPH15u/cSJE8nMzKx0G48//ji9e/dm0qRJF63zz3/+k5SUFI4fP07nzp0JDAx0rNuyZQuTJ0++8p0QERERERERuYCSXSJ12IgRI0hNTaVBgwakpaU5yq1WK+vXr6dNmzYXfe2qVaswm80sXbqUNWvWcOjQoXJ1SkpKSE9PByAoKIgFCxZw9dVXO9bHx8ezZs0abDZbze2UiIiIiIiI1GlKdokIHTt2ZN++fY7ldevW0bZt20pfs3z5cvr16wdAnz59WL16dbk6s2bN4s477wTAx8eH0NDQcnViYmLYtGlTdcIXERERERERcVCyS0RIS0sjNjbWsZyZmUlUVFSlr8nJySE42D6jf1BQEDk5OWXWW61Wvv/+e66//vpKtxMZGcm2bduuKG4RERERERGRC2mCepE6bMaMGSxcuJBevXqRlJRUYZ3NmzfzyCOPlCm74YYbCAkJITc3F4C8vDxat25dps7nn3/OwIEDayVuERERERERkYtRskukDhsxYgTjxo0rV96mTRs+//xzANq3b09qamq5OitXrmTOnDncfPPNLFmyhNtuu63M+oyMDFJTU5k1axbp6elMnz6dkSNHlttOdnY2PXv2rJkdEhERERERkTpPwxhFpJzExEQyMjIqrXPVVVdRVFRE7969SUxMpGnTphw8eJApU6YAMHbsWBYsWMB3331HUlISI0eOJCUlhbVr15KSksLGjRsByMrKomPHjrW+TyIiIiIiIlI3qGeXSB1lsViwWCwVrjMajSQkJJCZmVnpExnfeuutMsvNmjVj9OjR5eotXLiwzL9nbdmyhc6dO2MwGC4zehEREREREZGKKdklIhWqaHhjTYuPjyc+Pr7W2xEREREREZG6Q8MYRURERERERETEayjZJSIiIiIiIiIiXkPDGMXt5JdAVq5r2o4NhkAf17QtIiIiIiIiItWnZJe4naxcGLnMNW1P7wlJYa5pW0RERERERESqT8MYRURERERERETEayjZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNfQBPXiFTLGWji1NQ2D2QeDyYx/i3Y0HzaR4MRrXR2aiIiIiIiIiDiRenaJ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p2jSpAmJiYlkZWWVWZeamuro5WWxWPj2229rd0fcVGpqKtHR0VgsFoYPH15u/cSJE8nMzLzo648fP07nzp0JDAy8aJ3HH3+c3r17M2nSJHbt2kV4eDgWi4V7770XgC1btjB58uTq74yIiIiIiFSLkl0iIk6QlpZGbGysYzkrK4vIyEgAcnJyCA62j6ENCgoiJyenzGutVmuFv5/dhq+vLwCRkZFs27attnbB7Y0YMYLU1FQaNGhAWlqao9xqtbJ+/XratGlz0dcGBQWxYMECrr766grXr1q1CrPZzNKlS1mzZg2HDh3ipptuIjU1lQ8//BCA+Ph41qxZg81mq9kdExERERGRy6Jkl4hILZoxYwYWi4UWLVqQlJRUYZ2QkBByc3MByMvLIyQkpMx6o9FY4e/z5s1j0KBBNR6zp7uwF926deto27Ztpa/x8fEhNDT0ouuXL19Ov379AOjTpw+rV6/m+++/p3fv3nz00UeOejExMWzatKmaeyAiIiIiItWhZJeISC0629vopZdeKlMeGxtLdnY2AJ07d2bJkiUALFq0iK5du5apGxAQwJEjR1i/fn2Z3mHz58/nxhtvdCxnZ2dX2nuprriwF11mZiZRUVHV2uaFve/q169PRkYGP/zwA//+9785duwYoN51IiIiIiLuQMkuEREXCA0NpaCgAIBmzZqRkJBA7969KSoqokuXLhw8eJApU6YAMH78eG655RaeeOIJnn76aQCOHj2Kj48PDRo0cGwzNTWVAQMGOH9n3MSl9KLbvHkzFoulzM8rr7xS5bYv7H3XuHFjAgICqFevHr1792b79u01uSsiIiIiIlINehqjiEgtOZtMuZiBAweycOFCUlJSGD9+POPHj3esa9asGaNHjwYgOTmZZcuWlXlto0aN+O677xzLZ86c4fDhw2V6NNU1Z598eaE2bdrw+eefA9C+fXvHkywvR9euXZkzZw4333wzS5YsYeDAgQDYbDZWrVrFY489Bth71/Xs2fPKd0JERERERKpNPbtERFzk3nvvJSUlpUa2ZTabmTFjRo1sy9skJiaSkZFRZb2UlBTWrl1LSkoKGzduLNO77qqrrqKoqIjevXs7ttelSxd69OjBddddR3h4OGB/aEDHjh1rdX9ERERERKRy6tklIiIer7JedEajkYSEBDIzMyud02zhwoXlys72rgN46623yqy7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ivPP35iYGI4cOUL//v1p3LgxTZo0qcE9ERERT6GnMYqIiMglGzFihGMS8/O1adOGzz//HID27duTmppars7KlSuZM2cON998M0uWLOG2226rtK2ioiL8/PwwGo0EBQXh7++P1Wp1DGkKDQ119FrKzs6mZ8+e1ds5N+Lq4wywY8cOWrZsia+vr6Outx1ncY7qnM9VufD8DQgIYNq0adhsNoYPH0737t0BnbsiInWNenaJiIhItSUmJpKRkVFpnauuuoqioiJ69+5NYmIiTZs25eDBg44npgGkpKSwdu1aUlJSePXVV7FYLFxzzTW0bNmSNm3acNddd/H+++9jsVhIT0+nf//+AGRlZdGxY8da3Ud34KzjDOWHMELdOc7iHJdyPkPZ83Xjxo1lzuevvvqqzPnr5+eHxWLh2muv5dZbb3XMQadzV0SkblHPLhEREbkkZ4cWVcRoNJKQkEBmZmalT1Z76623yiw3a9aM0aNHO5YXLlxYZv348ePLLDds2JAffvihTNmWLVvo3LmzYxJ1T+cOxxngL3/5S5llbzvO4hw1cT5feL4CjvN56NChDB06tMy6C3uI6dwVEal7lOwSERGRGlHRMCVniI+PJz4+3iVtu4KOs3gTZ5zPOndFROoeDWMUERERERERERGvoWSXiIiIiIiIiIh4DQ1jFLeTXwJZua5pOzYYAn1c07aIiIiIiIiIVJ+SXeJ2snJh5DLXtD29JySFuaZtEREREREREak+DWMUERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkMT1ItXyBhr4dTWNAxmHwwmM/4t2tF82ESCE691dWgiIiIiIiIi4kTq2SVeo/mwiSR/kk/CzEPUj+vO9km3UHrqpKvDEhEREREREREnUrJLvI7Rx49G/UdgPZ3P6QNZrg5HRERERERERJxIyS7xOtaiQo4umI4xIBj/5m1cHY6IiIiIiIiIOJHHJLuKi4sZP348ERER1KtXj379+rFixQoMBgPz5s1zdXjiBvbPHk/6XSFs+GMUBTvXETvuG0wBwa4OS0REREREREScyCMmqLfZbAwdOpQVK1YwYcIEYmNjmT17NoMHDwYgOTnZqfFc/fJIIvp3wSc4gJL8QrK/SWPVi//FWnLGqXFIWc3vepFmg59ydRgiIh5n4wmYvf3c8u8X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KU6fPk1BQQEhISHO2C23cynH2Waz8cADD/DCCy/QvHnzS9puXl4eYP8/iI6OBiA7O/uSeoWJSHl6GqNIHTZjxgwWLlxIr169LnpnavPmzY5u7GfdcMMNhISEkJubC9g/nFu3bl2mzueff87AgQNrJW4RERERuTShoaEUFBQA9if+3XfffQCkpKQwduxYAJ588kmmTp3Ks88+S15eHv369aNTp0688cYbjt77EyZMICUlBX9/f7777juuu+46l+yPuzr/OKempvLTTz9x9OhRAKZOnUqLFi2YNWsWo0eP5sMPP+Rf//oXJ0+eJDc3l1dffZV7772XI0eO4OfnxwcffADAokWLGDBggKt2ScSjKdklUoeNGDHC8bjj87Vp04bPP/8cgPbt25OamlquzsqVK5kzZw4333wzS5Ys4bbbbiuzPiMjg9TUVGbNmkV6ejrTp09n5MiR5baTnZ1Nz549a2aHREREROogi8WCxWK56PqBAweycOFCUlJSHGULFy50/D516lQAFi9efNFtnO3tBfanDtbFhwxdznE+O8n8+UaPHg3Avffey7333ltm3RdffFGu/vLly/nTn/5UvaBF6igNYxSRchITE8nIyKi0zlVXXUVRURG9e/cmMTGRpk2bcvDgQaZMmQLA2LFjWbBgAd999x1JSUmMHDmSlJQU1q5dS0pKChs3bgTsk3l27Nix1vdJREREpK669957yyS6quutt94q84Rtsavp4/z+++9X+NRMEamaenaJ1FGV3ZkyGo0kJCSQmZlZ6TwBb731VpnlZs2aOe5Yne/sncPz7yACbNmyhc6dO5d7HLOIiIiIiIjIlVKyS0QqVNHwxpoWHx9PfHx8rbcjIiIiIiIidYf6RIqIiIiIiIiIiNdQsktERERERERERLyGkl0iIiIiIiIiIuI1NGeXuJ38EsjKdU3bscEQ6OOatkVERERERESk+pTsEreTlQsjl7mm7ek9ISnMNW2LiIiIiIiISPVpGKOIiIiIiIiIiHgNJbtERERERERERMRrKNklIiIiIiIiIiJeQ3N2iVfIGGvh1NY0DGYfDCYz/i3a0XzYRIITr3V1aCIiIiIiIiLiROrZJV6j+bCJJH+ST8LMQ9SP6872SbdQeuqkq8MSERERERERESdSsku8jtHHj0b9R2A9nc/pA1muDkdEREREREREnEjJLvE61qJC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", "text/plain": [ "
" ] @@ -776,10 +776,10 @@ "execution_count": 18, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:29.174327Z", - "iopub.status.busy": "2024-10-13T14:00:29.173981Z", - "iopub.status.idle": "2024-10-13T14:00:29.431676Z", - "shell.execute_reply": "2024-10-13T14:00:29.431110Z" + "iopub.execute_input": "2024-10-14T00:39:54.914594Z", + "iopub.status.busy": "2024-10-14T00:39:54.914152Z", + "iopub.status.idle": "2024-10-14T00:39:55.179634Z", + "shell.execute_reply": "2024-10-14T00:39:55.179099Z" } }, "outputs": [ diff --git a/dev/.doctrees/nbsphinx/explanations/state-vectors-and-gates.ipynb b/dev/.doctrees/nbsphinx/explanations/state-vectors-and-gates.ipynb index 62b314b27..6c57b90dd 100644 --- a/dev/.doctrees/nbsphinx/explanations/state-vectors-and-gates.ipynb +++ b/dev/.doctrees/nbsphinx/explanations/state-vectors-and-gates.ipynb @@ -26,10 +26,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:31.965958Z", - "iopub.status.busy": "2024-10-13T14:00:31.965498Z", - "iopub.status.idle": "2024-10-13T14:00:32.677091Z", - "shell.execute_reply": "2024-10-13T14:00:32.676560Z" + "iopub.execute_input": "2024-10-14T00:39:57.531429Z", + "iopub.status.busy": "2024-10-14T00:39:57.530989Z", + "iopub.status.idle": "2024-10-14T00:39:58.267655Z", + "shell.execute_reply": "2024-10-14T00:39:58.267100Z" } }, "outputs": [ @@ -74,10 +74,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.679471Z", - "iopub.status.busy": "2024-10-13T14:00:32.679005Z", - "iopub.status.idle": "2024-10-13T14:00:32.685798Z", - "shell.execute_reply": "2024-10-13T14:00:32.685313Z" + "iopub.execute_input": "2024-10-14T00:39:58.269840Z", + "iopub.status.busy": "2024-10-14T00:39:58.269369Z", + "iopub.status.idle": "2024-10-14T00:39:58.276219Z", + "shell.execute_reply": "2024-10-14T00:39:58.275637Z" } }, "outputs": [ @@ -120,10 +120,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.687546Z", - "iopub.status.busy": "2024-10-13T14:00:32.687358Z", - "iopub.status.idle": "2024-10-13T14:00:32.691539Z", - "shell.execute_reply": "2024-10-13T14:00:32.691081Z" + "iopub.execute_input": "2024-10-14T00:39:58.278264Z", + "iopub.status.busy": "2024-10-14T00:39:58.277764Z", + "iopub.status.idle": "2024-10-14T00:39:58.282028Z", + "shell.execute_reply": "2024-10-14T00:39:58.281453Z" } }, "outputs": [ @@ -157,10 +157,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.693465Z", - "iopub.status.busy": "2024-10-13T14:00:32.693107Z", - "iopub.status.idle": "2024-10-13T14:00:32.697011Z", - "shell.execute_reply": "2024-10-13T14:00:32.696553Z" + "iopub.execute_input": "2024-10-14T00:39:58.283725Z", + "iopub.status.busy": "2024-10-14T00:39:58.283527Z", + "iopub.status.idle": "2024-10-14T00:39:58.287644Z", + "shell.execute_reply": "2024-10-14T00:39:58.287182Z" } }, "outputs": [ @@ -199,10 +199,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.698965Z", - "iopub.status.busy": "2024-10-13T14:00:32.698629Z", - "iopub.status.idle": "2024-10-13T14:00:32.704802Z", - "shell.execute_reply": "2024-10-13T14:00:32.704209Z" + "iopub.execute_input": "2024-10-14T00:39:58.289472Z", + "iopub.status.busy": "2024-10-14T00:39:58.289284Z", + "iopub.status.idle": "2024-10-14T00:39:58.295017Z", + "shell.execute_reply": "2024-10-14T00:39:58.294540Z" } }, "outputs": [ @@ -245,10 +245,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.706813Z", - "iopub.status.busy": "2024-10-13T14:00:32.706394Z", - "iopub.status.idle": "2024-10-13T14:00:32.712202Z", - "shell.execute_reply": "2024-10-13T14:00:32.711638Z" + "iopub.execute_input": "2024-10-14T00:39:58.296747Z", + "iopub.status.busy": "2024-10-14T00:39:58.296563Z", + "iopub.status.idle": "2024-10-14T00:39:58.302081Z", + "shell.execute_reply": "2024-10-14T00:39:58.301585Z" } }, "outputs": [ @@ -293,10 +293,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.714141Z", - "iopub.status.busy": "2024-10-13T14:00:32.713824Z", - "iopub.status.idle": "2024-10-13T14:00:32.718681Z", - "shell.execute_reply": "2024-10-13T14:00:32.718222Z" + "iopub.execute_input": "2024-10-14T00:39:58.303915Z", + "iopub.status.busy": "2024-10-14T00:39:58.303546Z", + "iopub.status.idle": "2024-10-14T00:39:58.308544Z", + "shell.execute_reply": "2024-10-14T00:39:58.307990Z" } }, "outputs": [ diff --git a/dev/.doctrees/nbsphinx/explanations_qiskit-gate-decompositions_34_0.png b/dev/.doctrees/nbsphinx/explanations_qiskit-gate-decompositions_34_0.png index cf02180d5..fc915c803 100644 Binary files a/dev/.doctrees/nbsphinx/explanations_qiskit-gate-decompositions_34_0.png and b/dev/.doctrees/nbsphinx/explanations_qiskit-gate-decompositions_34_0.png differ diff --git a/dev/.doctrees/nbsphinx/how-to-guides/entanglement-forging.ipynb b/dev/.doctrees/nbsphinx/how-to-guides/entanglement-forging.ipynb index 95aaf3821..e4b91ff49 100644 --- a/dev/.doctrees/nbsphinx/how-to-guides/entanglement-forging.ipynb +++ b/dev/.doctrees/nbsphinx/how-to-guides/entanglement-forging.ipynb @@ -18,10 +18,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:34.436722Z", - "iopub.status.busy": "2024-10-13T14:00:34.436349Z", - "iopub.status.idle": "2024-10-13T14:00:35.436937Z", - "shell.execute_reply": "2024-10-13T14:00:35.436172Z" + "iopub.execute_input": "2024-10-14T00:40:00.022199Z", + "iopub.status.busy": "2024-10-14T00:40:00.021997Z", + "iopub.status.idle": "2024-10-14T00:40:01.000225Z", + "shell.execute_reply": "2024-10-14T00:40:00.999639Z" } }, "outputs": [ @@ -36,7 +36,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Parsing /tmp/tmp4yegu0sa\n", + "Parsing /tmp/tmpjtn9ltdu\n", "converged SCF energy = -75.6787887956314\n" ] }, @@ -59,7 +59,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Overwritten attributes get_ovlp get_hcore of \n", + "Overwritten attributes get_hcore get_ovlp of \n", "/home/runner/work/ffsim/ffsim/.tox/docs/lib/python3.12/site-packages/pyscf/gto/mole.py:1294: UserWarning: Function mol.dumps drops attribute energy_nuc because it is not JSON-serializable\n", " warnings.warn(msg)\n", "/home/runner/work/ffsim/ffsim/.tox/docs/lib/python3.12/site-packages/pyscf/gto/mole.py:1294: UserWarning: Function mol.dumps drops attribute intor_symmetric because it is not JSON-serializable\n", @@ -125,10 +125,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:35.440423Z", - "iopub.status.busy": "2024-10-13T14:00:35.439456Z", - "iopub.status.idle": "2024-10-13T14:00:35.444803Z", - "shell.execute_reply": "2024-10-13T14:00:35.444163Z" + "iopub.execute_input": "2024-10-14T00:40:01.003372Z", + "iopub.status.busy": "2024-10-14T00:40:01.002959Z", + "iopub.status.idle": "2024-10-14T00:40:01.007601Z", + "shell.execute_reply": "2024-10-14T00:40:01.007143Z" } }, "outputs": [], @@ -168,10 +168,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:35.447129Z", - "iopub.status.busy": "2024-10-13T14:00:35.446583Z", - "iopub.status.idle": "2024-10-13T14:00:35.450220Z", - "shell.execute_reply": "2024-10-13T14:00:35.449639Z" + "iopub.execute_input": "2024-10-14T00:40:01.009636Z", + "iopub.status.busy": "2024-10-14T00:40:01.009252Z", + "iopub.status.idle": "2024-10-14T00:40:01.012473Z", + "shell.execute_reply": "2024-10-14T00:40:01.012028Z" } }, "outputs": [], @@ -200,10 +200,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:35.452235Z", - "iopub.status.busy": "2024-10-13T14:00:35.451915Z", - "iopub.status.idle": "2024-10-13T14:00:35.568883Z", - "shell.execute_reply": "2024-10-13T14:00:35.568226Z" + "iopub.execute_input": "2024-10-14T00:40:01.014627Z", + "iopub.status.busy": "2024-10-14T00:40:01.014242Z", + "iopub.status.idle": "2024-10-14T00:40:01.126731Z", + "shell.execute_reply": "2024-10-14T00:40:01.126125Z" } }, "outputs": [ @@ -211,7 +211,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialialization: -75.67794403659724\n" + "Energy at initialialization: -75.67794403659725\n" ] } ], @@ -238,10 +238,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:35.570940Z", - "iopub.status.busy": "2024-10-13T14:00:35.570630Z", - "iopub.status.idle": "2024-10-13T14:00:43.507820Z", - "shell.execute_reply": "2024-10-13T14:00:43.507279Z" + "iopub.execute_input": "2024-10-14T00:40:01.128845Z", + "iopub.status.busy": "2024-10-14T00:40:01.128492Z", + "iopub.status.idle": "2024-10-14T00:40:09.018193Z", + "shell.execute_reply": "2024-10-14T00:40:09.017613Z" } }, "outputs": [ @@ -253,10 +253,10 @@ " message: STOP: TOTAL NO. of f AND g EVALUATIONS EXCEEDS LIMIT\n", " success: False\n", " status: 1\n", - " fun: -75.68381566723333\n", - " x: [-1.603e-01 6.419e-03 ... 5.748e-02 -1.005e-01]\n", + " fun: -75.68381565459354\n", + " x: [-1.603e-01 6.418e-03 ... 5.748e-02 -1.005e-01]\n", " nit: 3\n", - " jac: [ 2.132e-04 1.080e-04 ... -4.748e-03 7.381e-03]\n", + " jac: [ 2.132e-04 1.066e-04 ... -4.744e-03 7.427e-03]\n", " nfev: 112\n", " njev: 7\n", " hess_inv: <15x15 LbfgsInvHessProduct with dtype=float64>\n" diff --git a/dev/.doctrees/nbsphinx/how-to-guides/fermion-operator.ipynb b/dev/.doctrees/nbsphinx/how-to-guides/fermion-operator.ipynb index d75adfc94..6d5c4263d 100644 --- a/dev/.doctrees/nbsphinx/how-to-guides/fermion-operator.ipynb +++ b/dev/.doctrees/nbsphinx/how-to-guides/fermion-operator.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.032136Z", - "iopub.status.busy": "2024-10-13T14:00:45.031947Z", - "iopub.status.idle": "2024-10-13T14:00:45.745675Z", - "shell.execute_reply": "2024-10-13T14:00:45.745150Z" + "iopub.execute_input": "2024-10-14T00:40:10.537175Z", + "iopub.status.busy": "2024-10-14T00:40:10.536988Z", + "iopub.status.idle": "2024-10-14T00:40:11.236642Z", + "shell.execute_reply": "2024-10-14T00:40:11.236027Z" } }, "outputs": [ @@ -40,9 +40,9 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4)): 1+1j,\n", " (cre_a(0), des_a(3)): 0.5,\n", - " (cre_a(3), des_a(0)): -0.25\n", + " (cre_a(3), des_a(0)): -0.25,\n", + " (cre_b(1), des_b(5), cre_a(4)): 1+1j\n", "})" ] }, @@ -76,17 +76,17 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.748014Z", - "iopub.status.busy": "2024-10-13T14:00:45.747580Z", - "iopub.status.idle": "2024-10-13T14:00:45.751636Z", - "shell.execute_reply": "2024-10-13T14:00:45.751057Z" + "iopub.execute_input": "2024-10-14T00:40:11.239140Z", + "iopub.status.busy": "2024-10-14T00:40:11.238668Z", + "iopub.status.idle": "2024-10-14T00:40:11.242545Z", + "shell.execute_reply": "2024-10-14T00:40:11.242077Z" } }, "outputs": [ { "data": { "text/plain": [ - "'FermionOperator({((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j, ((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j})'" + "'FermionOperator({((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j, ((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j})'" ] }, "execution_count": 2, @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.753586Z", - "iopub.status.busy": "2024-10-13T14:00:45.753265Z", - "iopub.status.idle": "2024-10-13T14:00:45.757619Z", - "shell.execute_reply": "2024-10-13T14:00:45.757065Z" + "iopub.execute_input": "2024-10-14T00:40:11.244488Z", + "iopub.status.busy": "2024-10-14T00:40:11.244140Z", + "iopub.status.idle": "2024-10-14T00:40:11.248601Z", + "shell.execute_reply": "2024-10-14T00:40:11.248021Z" } }, "outputs": [ @@ -121,17 +121,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", - " (des_a(3), des_b(3)): 0.0625,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", - " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", - " (cre_b(2)): 0-0.25j,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", + " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", " (cre_a(3), des_a(0)): -0.5,\n", " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", - " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", - " (cre_a(0), des_a(3)): 1\n", + " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", + " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", + " (cre_a(0), des_a(3)): 1,\n", + " (cre_b(2)): 0-0.25j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", + " (des_a(3), des_b(3)): 0.0625,\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625\n", "})" ] }, @@ -170,10 +170,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.759466Z", - "iopub.status.busy": "2024-10-13T14:00:45.759142Z", - "iopub.status.idle": "2024-10-13T14:00:45.763047Z", - "shell.execute_reply": "2024-10-13T14:00:45.762499Z" + "iopub.execute_input": "2024-10-14T00:40:11.250475Z", + "iopub.status.busy": "2024-10-14T00:40:11.250150Z", + "iopub.status.idle": "2024-10-14T00:40:11.254006Z", + "shell.execute_reply": "2024-10-14T00:40:11.253526Z" } }, "outputs": [ @@ -181,17 +181,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", - " (des_a(3), des_b(3)): 0-1.25j,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", - " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", - " (cre_b(2)): -5,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", + " (cre_a(3), des_a(0), cre_b(2)): -1,\n", " (cre_a(3), des_a(0)): 0+3j,\n", " (cre_a(0), des_a(3), cre_b(2)): 2,\n", - " (cre_a(3), des_a(0), cre_b(2)): -1,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", - " (cre_a(0), des_a(3)): 0-6j\n", + " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", + " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_b(2)): -5,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", + " (des_a(3), des_b(3)): 0-1.25j,\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j\n", "})" ] }, @@ -220,10 +220,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.765095Z", - "iopub.status.busy": "2024-10-13T14:00:45.764734Z", - "iopub.status.idle": "2024-10-13T14:00:45.768444Z", - "shell.execute_reply": "2024-10-13T14:00:45.767944Z" + "iopub.execute_input": "2024-10-14T00:40:11.255938Z", + "iopub.status.busy": "2024-10-14T00:40:11.255488Z", + "iopub.status.idle": "2024-10-14T00:40:11.259339Z", + "shell.execute_reply": "2024-10-14T00:40:11.258739Z" } }, "outputs": [ @@ -231,15 +231,15 @@ "data": { "text/plain": [ "FermionOperator({\n", + " (cre_a(3), des_a(0)): 0+3j,\n", " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", + " (cre_b(2)): -5,\n", + " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,\n", + " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", " (cre_b(2), cre_a(0), des_a(3)): 2,\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(2), cre_a(3), des_a(0)): -1,\n", " (cre_a(0), des_a(3)): 0-6j,\n", - " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", - " (cre_b(2)): -5,\n", + " (cre_b(2), cre_a(3), des_a(0)): -1,\n", " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", - " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,\n", " (des_b(3), des_a(3)): 0+1.25j\n", "})" ] @@ -265,10 +265,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.770328Z", - "iopub.status.busy": "2024-10-13T14:00:45.769966Z", - "iopub.status.idle": "2024-10-13T14:00:45.772964Z", - "shell.execute_reply": "2024-10-13T14:00:45.772352Z" + "iopub.execute_input": "2024-10-14T00:40:11.261336Z", + "iopub.status.busy": "2024-10-14T00:40:11.261150Z", + "iopub.status.idle": "2024-10-14T00:40:11.264020Z", + "shell.execute_reply": "2024-10-14T00:40:11.263565Z" } }, "outputs": [ @@ -298,10 +298,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.774857Z", - "iopub.status.busy": "2024-10-13T14:00:45.774665Z", - "iopub.status.idle": "2024-10-13T14:00:45.778902Z", - "shell.execute_reply": "2024-10-13T14:00:45.778365Z" + "iopub.execute_input": "2024-10-14T00:40:11.265837Z", + "iopub.status.busy": "2024-10-14T00:40:11.265497Z", + "iopub.status.idle": "2024-10-14T00:40:11.269774Z", + "shell.execute_reply": "2024-10-14T00:40:11.269294Z" } }, "outputs": [ @@ -341,21 +341,21 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.805433Z", - "iopub.status.busy": "2024-10-13T14:00:45.805065Z", - "iopub.status.idle": "2024-10-13T14:00:45.810851Z", - "shell.execute_reply": "2024-10-13T14:00:45.810272Z" + "iopub.execute_input": "2024-10-14T00:40:11.287130Z", + "iopub.status.busy": "2024-10-14T00:40:11.286730Z", + "iopub.status.idle": "2024-10-14T00:40:11.292396Z", + "shell.execute_reply": "2024-10-14T00:40:11.291816Z" } }, "outputs": [ { "data": { "text/plain": [ - "array([ 0. +0.j , 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " -0.11913479-0.1768497j, 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " 0. +0.j ])" + "array([0. +0.j , 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0.01074568-0.00552022j, 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0. +0.j ])" ] }, "execution_count": 8, @@ -380,10 +380,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.812824Z", - "iopub.status.busy": "2024-10-13T14:00:45.812456Z", - "iopub.status.idle": "2024-10-13T14:00:45.823788Z", - "shell.execute_reply": "2024-10-13T14:00:45.823327Z" + "iopub.execute_input": "2024-10-14T00:40:11.294684Z", + "iopub.status.busy": "2024-10-14T00:40:11.294146Z", + "iopub.status.idle": "2024-10-14T00:40:11.304752Z", + "shell.execute_reply": "2024-10-14T00:40:11.304279Z" } }, "outputs": [ diff --git a/dev/.doctrees/nbsphinx/how-to-guides/lucj.ipynb b/dev/.doctrees/nbsphinx/how-to-guides/lucj.ipynb index 1fa07349b..f39a74241 100644 --- a/dev/.doctrees/nbsphinx/how-to-guides/lucj.ipynb +++ b/dev/.doctrees/nbsphinx/how-to-guides/lucj.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:47.768598Z", - "iopub.status.busy": "2024-10-13T14:00:47.768410Z", - "iopub.status.idle": "2024-10-13T14:00:48.769102Z", - "shell.execute_reply": "2024-10-13T14:00:48.768361Z" + "iopub.execute_input": "2024-10-14T00:40:13.137371Z", + "iopub.status.busy": "2024-10-14T00:40:13.137186Z", + "iopub.status.idle": "2024-10-14T00:40:14.132918Z", + "shell.execute_reply": "2024-10-14T00:40:14.132341Z" } }, "outputs": [ @@ -34,15 +34,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Parsing /tmp/tmpjk2lvol7\n", - "converged SCF energy = -77.8266321248745\n" + "Parsing /tmp/tmpipmpgn90\n", + "converged SCF energy = -77.8266321248744\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "CASCI E = -77.8742165643863 E(CI) = -4.02122442107772 S^2 = 0.0000000\n" + "CASCI E = -77.8742165643862 E(CI) = -4.02122442107773 S^2 = 0.0000000\n" ] }, { @@ -57,7 +57,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Overwritten attributes get_ovlp get_hcore of \n", + "Overwritten attributes get_hcore get_ovlp of \n", "/home/runner/work/ffsim/ffsim/.tox/docs/lib/python3.12/site-packages/pyscf/gto/mole.py:1294: UserWarning: Function mol.dumps drops attribute energy_nuc because it is not JSON-serializable\n", " warnings.warn(msg)\n", "/home/runner/work/ffsim/ffsim/.tox/docs/lib/python3.12/site-packages/pyscf/gto/mole.py:1294: UserWarning: Function mol.dumps drops attribute intor_symmetric because it is not JSON-serializable\n", @@ -123,10 +123,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:48.771902Z", - "iopub.status.busy": "2024-10-13T14:00:48.771348Z", - "iopub.status.idle": "2024-10-13T14:00:48.842394Z", - "shell.execute_reply": "2024-10-13T14:00:48.841838Z" + "iopub.execute_input": "2024-10-14T00:40:14.136170Z", + "iopub.status.busy": "2024-10-14T00:40:14.135625Z", + "iopub.status.idle": "2024-10-14T00:40:14.206018Z", + "shell.execute_reply": "2024-10-14T00:40:14.205383Z" } }, "outputs": [ @@ -134,14 +134,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "E(CCSD) = -77.87421536374038 E_corr = -0.0475832388658593\n" + "E(CCSD) = -77.87421536374038 E_corr = -0.04758323886585292\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialization: -77.8716002481628\n" + "Energy at initialization: -77.87160024816276\n" ] }, { @@ -189,10 +189,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:48.845165Z", - "iopub.status.busy": "2024-10-13T14:00:48.844580Z", - "iopub.status.idle": "2024-10-13T14:02:33.385445Z", - "shell.execute_reply": "2024-10-13T14:02:33.384855Z" + "iopub.execute_input": "2024-10-14T00:40:14.208416Z", + "iopub.status.busy": "2024-10-14T00:40:14.208145Z", + "iopub.status.idle": "2024-10-14T00:41:59.619519Z", + "shell.execute_reply": "2024-10-14T00:41:59.618957Z" } }, "outputs": [ @@ -204,10 +204,10 @@ " message: STOP: TOTAL NO. of ITERATIONS REACHED LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.87387392160812\n", - " x: [ 4.027e-04 -1.355e+00 ... 1.028e-04 1.286e-01]\n", + " fun: -77.87387392107806\n", + " x: [-1.152e+00 1.172e-04 ... 2.137e-04 1.286e-01]\n", " nit: 10\n", - " jac: [ 2.842e-06 3.268e-05 ... -7.105e-06 1.421e-05]\n", + " jac: [-2.132e-05 -1.705e-05 ... 9.948e-06 2.558e-05]\n", " nfev: 949\n", " njev: 13\n", " hess_inv: <72x72 LbfgsInvHessProduct with dtype=float64>\n" @@ -251,10 +251,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:02:33.388440Z", - "iopub.status.busy": "2024-10-13T14:02:33.387917Z", - "iopub.status.idle": "2024-10-13T14:03:10.131727Z", - "shell.execute_reply": "2024-10-13T14:03:10.131138Z" + "iopub.execute_input": "2024-10-14T00:41:59.621624Z", + "iopub.status.busy": "2024-10-14T00:41:59.621329Z", + "iopub.status.idle": "2024-10-14T00:42:36.376455Z", + "shell.execute_reply": "2024-10-14T00:42:36.375865Z" } }, "outputs": [ @@ -266,10 +266,10 @@ " message: CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH\n", " success: True\n", " status: 0\n", - " fun: -77.87363426349258\n", - " x: [-1.597e-05 -1.355e+00 ... 3.522e-02 2.561e-01]\n", + " fun: -77.87363426228193\n", + " x: [-1.152e+00 1.000e-04 ... 3.520e-02 2.561e-01]\n", " nit: 5\n", - " jac: [-9.948e-06 -2.558e-05 ... 5.684e-06 0.000e+00]\n", + " jac: [ 8.527e-06 5.684e-06 ... 2.842e-06 2.842e-06]\n", " nfev: 329\n", " njev: 7\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" @@ -314,10 +314,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:10.134869Z", - "iopub.status.busy": "2024-10-13T14:03:10.134392Z", - "iopub.status.idle": "2024-10-13T14:03:26.645397Z", - "shell.execute_reply": "2024-10-13T14:03:26.644794Z" + "iopub.execute_input": "2024-10-14T00:42:36.380070Z", + "iopub.status.busy": "2024-10-14T00:42:36.379256Z", + "iopub.status.idle": "2024-10-14T00:42:52.186954Z", + "shell.execute_reply": "2024-10-14T00:42:52.186293Z" } }, "outputs": [ @@ -328,29 +328,29 @@ "Number of parameters: 46\n", " message: Convergence: Relative reduction of objective function <= ftol.\n", " success: True\n", - " fun: -77.87363432511088\n", - " x: [-3.313e-04 -1.355e+00 ... 3.487e-02 2.560e-01]\n", + " fun: -77.87363433774676\n", + " x: [-1.151e+00 -4.786e-04 ... 3.460e-02 2.562e-01]\n", " nit: 3\n", - " jac: [ 1.784e-07 2.931e-07 ... -1.786e-08 -8.184e-08]\n", - " nfev: 505\n", + " jac: [ 3.337e-07 5.792e-08 ... -1.024e-06 -2.342e-06]\n", + " nfev: 499\n", " njev: 4\n", - " nlinop: 321\n", + " nlinop: 315\n", "\n", "Iteration 1\n", - " Energy: -77.87363211276133\n", - " Norm of gradient: 0.001077175434025257\n", - " Regularization hyperparameter: 0.0019643765948696573\n", - " Variation hyperparameter: 0.9998325692268615\n", + " Energy: -77.87361987555248\n", + " Norm of gradient: 0.0032781409953260296\n", + " Regularization hyperparameter: 0.0010523491138414635\n", + " Variation hyperparameter: 0.9632214497840799\n", "Iteration 2\n", - " Energy: -77.87363431877952\n", - " Norm of gradient: 4.5063930555114564e-05\n", - " Regularization hyperparameter: 0.002588354198428117\n", - " Variation hyperparameter: 0.9998350010818127\n", + " Energy: -77.87363426607693\n", + " Norm of gradient: 0.00016343445189686165\n", + " Regularization hyperparameter: 0.003816852276304379\n", + " Variation hyperparameter: 0.9644176461515346\n", "Iteration 3\n", - " Energy: -77.87363432511088\n", - " Norm of gradient: 7.076943426386996e-06\n", - " Regularization hyperparameter: 0.002588354198428117\n", - " Variation hyperparameter: 0.9998350010818127\n" + " Energy: -77.87363433774676\n", + " Norm of gradient: 1.3736011916390138e-05\n", + " Regularization hyperparameter: 0.0033881655844765417\n", + " Variation hyperparameter: 0.9645028365517818\n" ] } ], diff --git a/dev/.doctrees/nbsphinx/how-to-guides/qiskit-circuits.ipynb b/dev/.doctrees/nbsphinx/how-to-guides/qiskit-circuits.ipynb index ba7bed5f1..3b87f8b5f 100644 --- a/dev/.doctrees/nbsphinx/how-to-guides/qiskit-circuits.ipynb +++ b/dev/.doctrees/nbsphinx/how-to-guides/qiskit-circuits.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:28.203177Z", - "iopub.status.busy": "2024-10-13T14:03:28.202988Z", - "iopub.status.idle": "2024-10-13T14:03:28.895458Z", - "shell.execute_reply": "2024-10-13T14:03:28.894919Z" + "iopub.execute_input": "2024-10-14T00:42:53.772124Z", + "iopub.status.busy": "2024-10-14T00:42:53.771940Z", + "iopub.status.idle": "2024-10-14T00:42:54.462955Z", + "shell.execute_reply": "2024-10-14T00:42:54.462433Z" } }, "outputs": [], @@ -54,10 +54,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:28.898150Z", - "iopub.status.busy": "2024-10-13T14:03:28.897611Z", - "iopub.status.idle": "2024-10-13T14:03:29.469998Z", - "shell.execute_reply": "2024-10-13T14:03:29.469462Z" + "iopub.execute_input": "2024-10-14T00:42:54.465357Z", + "iopub.status.busy": "2024-10-14T00:42:54.464876Z", + "iopub.status.idle": "2024-10-14T00:42:55.034004Z", + "shell.execute_reply": "2024-10-14T00:42:55.033358Z" } }, "outputs": [ @@ -103,10 +103,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.472205Z", - "iopub.status.busy": "2024-10-13T14:03:29.471728Z", - "iopub.status.idle": "2024-10-13T14:03:29.531029Z", - "shell.execute_reply": "2024-10-13T14:03:29.530408Z" + "iopub.execute_input": "2024-10-14T00:42:55.036360Z", + "iopub.status.busy": "2024-10-14T00:42:55.035743Z", + "iopub.status.idle": "2024-10-14T00:42:55.095320Z", + "shell.execute_reply": "2024-10-14T00:42:55.094838Z" } }, "outputs": [ @@ -160,17 +160,17 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.533223Z", - "iopub.status.busy": "2024-10-13T14:03:29.532838Z", - "iopub.status.idle": "2024-10-13T14:03:29.536833Z", - "shell.execute_reply": "2024-10-13T14:03:29.536357Z" + "iopub.execute_input": "2024-10-14T00:42:55.097545Z", + "iopub.status.busy": "2024-10-14T00:42:55.096992Z", + "iopub.status.idle": "2024-10-14T00:42:55.101329Z", + "shell.execute_reply": "2024-10-14T00:42:55.100740Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -195,17 +195,17 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.538551Z", - "iopub.status.busy": "2024-10-13T14:03:29.538357Z", - "iopub.status.idle": "2024-10-13T14:03:29.543424Z", - "shell.execute_reply": "2024-10-13T14:03:29.542825Z" + "iopub.execute_input": "2024-10-14T00:42:55.103406Z", + "iopub.status.busy": "2024-10-14T00:42:55.103030Z", + "iopub.status.idle": "2024-10-14T00:42:55.107712Z", + "shell.execute_reply": "2024-10-14T00:42:55.107242Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -242,17 +242,17 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.545620Z", - "iopub.status.busy": "2024-10-13T14:03:29.545257Z", - "iopub.status.idle": "2024-10-13T14:03:29.550094Z", - "shell.execute_reply": "2024-10-13T14:03:29.549486Z" + "iopub.execute_input": "2024-10-14T00:42:55.109501Z", + "iopub.status.busy": "2024-10-14T00:42:55.109311Z", + "iopub.status.idle": "2024-10-14T00:42:55.113852Z", + "shell.execute_reply": "2024-10-14T00:42:55.113385Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -279,17 +279,17 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.552047Z", - "iopub.status.busy": "2024-10-13T14:03:29.551858Z", - "iopub.status.idle": "2024-10-13T14:03:29.556306Z", - "shell.execute_reply": "2024-10-13T14:03:29.555695Z" + "iopub.execute_input": "2024-10-14T00:42:55.115795Z", + "iopub.status.busy": "2024-10-14T00:42:55.115601Z", + "iopub.status.idle": "2024-10-14T00:42:55.119962Z", + "shell.execute_reply": "2024-10-14T00:42:55.119358Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -315,17 +315,17 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.558383Z", - "iopub.status.busy": "2024-10-13T14:03:29.558016Z", - "iopub.status.idle": "2024-10-13T14:03:29.562462Z", - "shell.execute_reply": "2024-10-13T14:03:29.561853Z" + "iopub.execute_input": "2024-10-14T00:42:55.122005Z", + "iopub.status.busy": "2024-10-14T00:42:55.121642Z", + "iopub.status.idle": "2024-10-14T00:42:55.126078Z", + "shell.execute_reply": "2024-10-14T00:42:55.125468Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -354,17 +354,17 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.564222Z", - "iopub.status.busy": "2024-10-13T14:03:29.564033Z", - "iopub.status.idle": "2024-10-13T14:03:29.569297Z", - "shell.execute_reply": "2024-10-13T14:03:29.568726Z" + "iopub.execute_input": "2024-10-14T00:42:55.127774Z", + "iopub.status.busy": "2024-10-14T00:42:55.127592Z", + "iopub.status.idle": "2024-10-14T00:42:55.132445Z", + "shell.execute_reply": "2024-10-14T00:42:55.131986Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 9, @@ -391,17 +391,17 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.571475Z", - "iopub.status.busy": "2024-10-13T14:03:29.570979Z", - "iopub.status.idle": "2024-10-13T14:03:29.576527Z", - "shell.execute_reply": "2024-10-13T14:03:29.575916Z" + "iopub.execute_input": "2024-10-14T00:42:55.134370Z", + "iopub.status.busy": "2024-10-14T00:42:55.134025Z", + "iopub.status.idle": "2024-10-14T00:42:55.139402Z", + "shell.execute_reply": "2024-10-14T00:42:55.138817Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 10, @@ -428,17 +428,17 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.578297Z", - "iopub.status.busy": "2024-10-13T14:03:29.578110Z", - "iopub.status.idle": "2024-10-13T14:03:29.584130Z", - "shell.execute_reply": "2024-10-13T14:03:29.583534Z" + "iopub.execute_input": "2024-10-14T00:42:55.141282Z", + "iopub.status.busy": "2024-10-14T00:42:55.140946Z", + "iopub.status.idle": "2024-10-14T00:42:55.146515Z", + "shell.execute_reply": "2024-10-14T00:42:55.146056Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 11, diff --git a/dev/.doctrees/nbsphinx/how-to-guides/qiskit-sampler.ipynb b/dev/.doctrees/nbsphinx/how-to-guides/qiskit-sampler.ipynb index e5bb1992a..bb1620ad1 100644 --- a/dev/.doctrees/nbsphinx/how-to-guides/qiskit-sampler.ipynb +++ b/dev/.doctrees/nbsphinx/how-to-guides/qiskit-sampler.ipynb @@ -18,10 +18,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:31.480743Z", - "iopub.status.busy": "2024-10-13T14:03:31.480546Z", - "iopub.status.idle": "2024-10-13T14:03:32.174050Z", - "shell.execute_reply": "2024-10-13T14:03:32.173413Z" + "iopub.execute_input": "2024-10-14T00:42:57.117696Z", + "iopub.status.busy": "2024-10-14T00:42:57.117242Z", + "iopub.status.idle": "2024-10-14T00:42:57.808414Z", + "shell.execute_reply": "2024-10-14T00:42:57.807890Z" } }, "outputs": [], @@ -71,10 +71,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:32.176657Z", - "iopub.status.busy": "2024-10-13T14:03:32.176209Z", - "iopub.status.idle": "2024-10-13T14:03:32.240789Z", - "shell.execute_reply": "2024-10-13T14:03:32.240270Z" + "iopub.execute_input": "2024-10-14T00:42:57.810883Z", + "iopub.status.busy": "2024-10-14T00:42:57.810389Z", + "iopub.status.idle": "2024-10-14T00:42:57.873939Z", + "shell.execute_reply": "2024-10-14T00:42:57.873468Z" } }, "outputs": [ @@ -154,10 +154,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:32.243011Z", - "iopub.status.busy": "2024-10-13T14:03:32.242635Z", - "iopub.status.idle": "2024-10-13T14:03:32.578780Z", - "shell.execute_reply": "2024-10-13T14:03:32.578250Z" + "iopub.execute_input": "2024-10-14T00:42:57.876054Z", + "iopub.status.busy": "2024-10-14T00:42:57.875704Z", + "iopub.status.idle": "2024-10-14T00:42:58.151170Z", + "shell.execute_reply": "2024-10-14T00:42:58.150544Z" } }, "outputs": [ @@ -174,7 +174,7 @@ "text": [ "norb = 14\n", "nelec = (3, 3)\n", - "E(CCSD) = -108.9630419334855 E_corr = -0.1278053627110065\n" + "E(CCSD) = -108.9630419334855 E_corr = -0.1278053627110062\n" ] }, { @@ -276,10 +276,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:32.581235Z", - "iopub.status.busy": "2024-10-13T14:03:32.580707Z", - "iopub.status.idle": "2024-10-13T14:03:33.123823Z", - "shell.execute_reply": "2024-10-13T14:03:33.123302Z" + "iopub.execute_input": "2024-10-14T00:42:58.153142Z", + "iopub.status.busy": "2024-10-14T00:42:58.152950Z", + "iopub.status.idle": "2024-10-14T00:42:58.697508Z", + "shell.execute_reply": "2024-10-14T00:42:58.696968Z" } }, "outputs": [ @@ -294,7 +294,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "SCF energy = -75.3484557074251\n" + "SCF energy = -75.3484557082523\n" ] }, { @@ -312,7 +312,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "E(UCCSD) = -75.45619739119564 E_corr = -0.1077416837705262\n" + "E(UCCSD) = -75.45619739104838 E_corr = -0.1077416827960702\n" ] }, { diff --git a/dev/.doctrees/nbsphinx/tutorials/double-factorized-trotter.ipynb b/dev/.doctrees/nbsphinx/tutorials/double-factorized-trotter.ipynb index e153556d5..a6877f265 100644 --- a/dev/.doctrees/nbsphinx/tutorials/double-factorized-trotter.ipynb +++ b/dev/.doctrees/nbsphinx/tutorials/double-factorized-trotter.ipynb @@ -18,10 +18,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:34.672179Z", - "iopub.status.busy": "2024-10-13T14:03:34.671986Z", - "iopub.status.idle": "2024-10-13T14:03:35.430109Z", - "shell.execute_reply": "2024-10-13T14:03:35.429527Z" + "iopub.execute_input": "2024-10-14T00:43:00.247638Z", + "iopub.status.busy": "2024-10-14T00:43:00.247446Z", + "iopub.status.idle": "2024-10-14T00:43:01.004447Z", + "shell.execute_reply": "2024-10-14T00:43:01.003869Z" } }, "outputs": [ @@ -80,10 +80,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.433903Z", - "iopub.status.busy": "2024-10-13T14:03:35.432770Z", - "iopub.status.idle": "2024-10-13T14:03:35.437548Z", - "shell.execute_reply": "2024-10-13T14:03:35.437103Z" + "iopub.execute_input": "2024-10-14T00:43:01.007572Z", + "iopub.status.busy": "2024-10-14T00:43:01.007062Z", + "iopub.status.idle": "2024-10-14T00:43:01.011349Z", + "shell.execute_reply": "2024-10-14T00:43:01.010884Z" } }, "outputs": [], @@ -106,10 +106,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.439333Z", - "iopub.status.busy": "2024-10-13T14:03:35.439154Z", - "iopub.status.idle": "2024-10-13T14:03:35.443165Z", - "shell.execute_reply": "2024-10-13T14:03:35.442756Z" + "iopub.execute_input": "2024-10-14T00:43:01.013297Z", + "iopub.status.busy": "2024-10-14T00:43:01.012933Z", + "iopub.status.idle": "2024-10-14T00:43:01.017246Z", + "shell.execute_reply": "2024-10-14T00:43:01.016774Z" } }, "outputs": [ @@ -172,10 +172,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.445058Z", - "iopub.status.busy": "2024-10-13T14:03:35.444622Z", - "iopub.status.idle": "2024-10-13T14:03:35.448162Z", - "shell.execute_reply": "2024-10-13T14:03:35.447751Z" + "iopub.execute_input": "2024-10-14T00:43:01.019302Z", + "iopub.status.busy": "2024-10-14T00:43:01.018946Z", + "iopub.status.idle": "2024-10-14T00:43:01.023373Z", + "shell.execute_reply": "2024-10-14T00:43:01.022785Z" } }, "outputs": [ @@ -208,10 +208,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.449886Z", - "iopub.status.busy": "2024-10-13T14:03:35.449568Z", - "iopub.status.idle": "2024-10-13T14:03:35.453274Z", - "shell.execute_reply": "2024-10-13T14:03:35.452728Z" + "iopub.execute_input": "2024-10-14T00:43:01.025216Z", + "iopub.status.busy": "2024-10-14T00:43:01.024884Z", + "iopub.status.idle": "2024-10-14T00:43:01.028948Z", + "shell.execute_reply": "2024-10-14T00:43:01.028456Z" } }, "outputs": [ @@ -242,10 +242,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.455151Z", - "iopub.status.busy": "2024-10-13T14:03:35.454818Z", - "iopub.status.idle": "2024-10-13T14:03:35.475461Z", - "shell.execute_reply": "2024-10-13T14:03:35.474859Z" + "iopub.execute_input": "2024-10-14T00:43:01.030950Z", + "iopub.status.busy": "2024-10-14T00:43:01.030595Z", + "iopub.status.idle": "2024-10-14T00:43:01.049876Z", + "shell.execute_reply": "2024-10-14T00:43:01.049405Z" } }, "outputs": [ @@ -253,7 +253,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Maximum error in a tensor entry: 0.03668541730983521\n" + "Maximum error in a tensor entry: 0.03668541730983632\n" ] } ], @@ -302,10 +302,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.477558Z", - "iopub.status.busy": "2024-10-13T14:03:35.477220Z", - "iopub.status.idle": "2024-10-13T14:03:35.481430Z", - "shell.execute_reply": "2024-10-13T14:03:35.480849Z" + "iopub.execute_input": "2024-10-14T00:43:01.051669Z", + "iopub.status.busy": "2024-10-14T00:43:01.051481Z", + "iopub.status.idle": "2024-10-14T00:43:01.055775Z", + "shell.execute_reply": "2024-10-14T00:43:01.055291Z" } }, "outputs": [], @@ -360,10 +360,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.483284Z", - "iopub.status.busy": "2024-10-13T14:03:35.482939Z", - "iopub.status.idle": "2024-10-13T14:03:35.486589Z", - "shell.execute_reply": "2024-10-13T14:03:35.486008Z" + "iopub.execute_input": "2024-10-14T00:43:01.057735Z", + "iopub.status.busy": "2024-10-14T00:43:01.057265Z", + "iopub.status.idle": "2024-10-14T00:43:01.060982Z", + "shell.execute_reply": "2024-10-14T00:43:01.060356Z" } }, "outputs": [], @@ -400,10 +400,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.488606Z", - "iopub.status.busy": "2024-10-13T14:03:35.488125Z", - "iopub.status.idle": "2024-10-13T14:03:35.586922Z", - "shell.execute_reply": "2024-10-13T14:03:35.586303Z" + "iopub.execute_input": "2024-10-14T00:43:01.062823Z", + "iopub.status.busy": "2024-10-14T00:43:01.062638Z", + "iopub.status.idle": "2024-10-14T00:43:01.160548Z", + "shell.execute_reply": "2024-10-14T00:43:01.160021Z" } }, "outputs": [], @@ -439,10 +439,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.590380Z", - "iopub.status.busy": "2024-10-13T14:03:35.589875Z", - "iopub.status.idle": "2024-10-13T14:03:35.639449Z", - "shell.execute_reply": "2024-10-13T14:03:35.638864Z" + "iopub.execute_input": "2024-10-14T00:43:01.162793Z", + "iopub.status.busy": "2024-10-14T00:43:01.162384Z", + "iopub.status.idle": "2024-10-14T00:43:01.211652Z", + "shell.execute_reply": "2024-10-14T00:43:01.211155Z" } }, "outputs": [ @@ -450,7 +450,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9402393562196085\n" + "Fidelity of Trotter-evolved state with exact state: 0.9402435115158845\n" ] } ], @@ -480,10 +480,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.641570Z", - "iopub.status.busy": "2024-10-13T14:03:35.641186Z", - "iopub.status.idle": "2024-10-13T14:03:35.855304Z", - "shell.execute_reply": "2024-10-13T14:03:35.854788Z" + "iopub.execute_input": "2024-10-14T00:43:01.213347Z", + "iopub.status.busy": "2024-10-14T00:43:01.213159Z", + "iopub.status.idle": "2024-10-14T00:43:01.426388Z", + "shell.execute_reply": "2024-10-14T00:43:01.425857Z" } }, "outputs": [ @@ -491,7 +491,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9985211214229854\n" + "Fidelity of Trotter-evolved state with exact state: 0.9985212854200908\n" ] } ], @@ -521,10 +521,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.857394Z", - "iopub.status.busy": "2024-10-13T14:03:35.857203Z", - "iopub.status.idle": "2024-10-13T14:03:35.985868Z", - "shell.execute_reply": "2024-10-13T14:03:35.985287Z" + "iopub.execute_input": "2024-10-14T00:43:01.428324Z", + "iopub.status.busy": "2024-10-14T00:43:01.427964Z", + "iopub.status.idle": "2024-10-14T00:43:01.553343Z", + "shell.execute_reply": "2024-10-14T00:43:01.552888Z" } }, "outputs": [ @@ -532,7 +532,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9985211214229489\n" + "Fidelity of Trotter-evolved state with exact state: 0.9985212854200776\n" ] } ], @@ -563,10 +563,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.987801Z", - "iopub.status.busy": "2024-10-13T14:03:35.987459Z", - "iopub.status.idle": "2024-10-13T14:03:36.090076Z", - "shell.execute_reply": "2024-10-13T14:03:36.089595Z" + "iopub.execute_input": "2024-10-14T00:43:01.555068Z", + "iopub.status.busy": "2024-10-14T00:43:01.554883Z", + "iopub.status.idle": "2024-10-14T00:43:01.660956Z", + "shell.execute_reply": "2024-10-14T00:43:01.660447Z" } }, "outputs": [ @@ -574,7 +574,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9996731166932697\n" + "Fidelity of Trotter-evolved state with exact state: 0.9996731164188856\n" ] } ], diff --git a/dev/.doctrees/tutorials/double-factorized-trotter.doctree b/dev/.doctrees/tutorials/double-factorized-trotter.doctree index 99a052589..db17a399e 100644 Binary files a/dev/.doctrees/tutorials/double-factorized-trotter.doctree and b/dev/.doctrees/tutorials/double-factorized-trotter.doctree differ diff --git a/dev/_images/explanations_qiskit-gate-decompositions_34_0.png b/dev/_images/explanations_qiskit-gate-decompositions_34_0.png index cf02180d5..fc915c803 100644 Binary files a/dev/_images/explanations_qiskit-gate-decompositions_34_0.png and b/dev/_images/explanations_qiskit-gate-decompositions_34_0.png differ diff --git a/dev/_modules/ffsim/cistring.html b/dev/_modules/ffsim/cistring.html index 77c7f6df8..f8b3c60e4 100644 --- a/dev/_modules/ffsim/cistring.html +++ b/dev/_modules/ffsim/cistring.html @@ -4,7 +4,7 @@ - + ffsim.cistring - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/contract/diag_coulomb.html b/dev/_modules/ffsim/contract/diag_coulomb.html index 3bf1dcb23..759e54da9 100644 --- a/dev/_modules/ffsim/contract/diag_coulomb.html +++ b/dev/_modules/ffsim/contract/diag_coulomb.html @@ -4,7 +4,7 @@ - + ffsim.contract.diag_coulomb - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/contract/num_op_sum.html b/dev/_modules/ffsim/contract/num_op_sum.html index dbdb7bbd1..d677291f9 100644 --- a/dev/_modules/ffsim/contract/num_op_sum.html +++ b/dev/_modules/ffsim/contract/num_op_sum.html @@ -4,7 +4,7 @@ - + ffsim.contract.num_op_sum - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/contract/one_body.html b/dev/_modules/ffsim/contract/one_body.html index c05cee8e8..a3f1f28b0 100644 --- a/dev/_modules/ffsim/contract/one_body.html +++ b/dev/_modules/ffsim/contract/one_body.html @@ -4,7 +4,7 @@ - + ffsim.contract.one_body - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/gates/basic_gates.html b/dev/_modules/ffsim/gates/basic_gates.html index 70e5048b9..75b43c100 100644 --- a/dev/_modules/ffsim/gates/basic_gates.html +++ b/dev/_modules/ffsim/gates/basic_gates.html @@ -4,7 +4,7 @@ - + ffsim.gates.basic_gates - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/gates/diag_coulomb.html b/dev/_modules/ffsim/gates/diag_coulomb.html index 21b3d95f1..08905b1e1 100644 --- a/dev/_modules/ffsim/gates/diag_coulomb.html +++ b/dev/_modules/ffsim/gates/diag_coulomb.html @@ -4,7 +4,7 @@ - + ffsim.gates.diag_coulomb - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/gates/num_op_sum.html b/dev/_modules/ffsim/gates/num_op_sum.html index 12bac9e68..881789d82 100644 --- a/dev/_modules/ffsim/gates/num_op_sum.html +++ b/dev/_modules/ffsim/gates/num_op_sum.html @@ -4,7 +4,7 @@ - + ffsim.gates.num_op_sum - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/gates/orbital_rotation.html b/dev/_modules/ffsim/gates/orbital_rotation.html index fd719c643..2fb2a06a8 100644 --- a/dev/_modules/ffsim/gates/orbital_rotation.html +++ b/dev/_modules/ffsim/gates/orbital_rotation.html @@ -4,7 +4,7 @@ - + ffsim.gates.orbital_rotation - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/hamiltonians/diagonal_coulomb_hamiltonian.html b/dev/_modules/ffsim/hamiltonians/diagonal_coulomb_hamiltonian.html index 467b909d5..81af972c4 100644 --- a/dev/_modules/ffsim/hamiltonians/diagonal_coulomb_hamiltonian.html +++ b/dev/_modules/ffsim/hamiltonians/diagonal_coulomb_hamiltonian.html @@ -4,7 +4,7 @@ - + ffsim.hamiltonians.diagonal_coulomb_hamiltonian - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/hamiltonians/double_factorized_hamiltonian.html b/dev/_modules/ffsim/hamiltonians/double_factorized_hamiltonian.html index 66f8cb9f6..a27bc2f85 100644 --- a/dev/_modules/ffsim/hamiltonians/double_factorized_hamiltonian.html +++ b/dev/_modules/ffsim/hamiltonians/double_factorized_hamiltonian.html @@ -4,7 +4,7 @@ - + ffsim.hamiltonians.double_factorized_hamiltonian - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/hamiltonians/molecular_hamiltonian.html b/dev/_modules/ffsim/hamiltonians/molecular_hamiltonian.html index d5e8a30a3..8d812f8f6 100644 --- a/dev/_modules/ffsim/hamiltonians/molecular_hamiltonian.html +++ b/dev/_modules/ffsim/hamiltonians/molecular_hamiltonian.html @@ -4,7 +4,7 @@ - + ffsim.hamiltonians.molecular_hamiltonian - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/hamiltonians/single_factorized_hamiltonian.html b/dev/_modules/ffsim/hamiltonians/single_factorized_hamiltonian.html index 600e60374..66ffe08f8 100644 --- a/dev/_modules/ffsim/hamiltonians/single_factorized_hamiltonian.html +++ b/dev/_modules/ffsim/hamiltonians/single_factorized_hamiltonian.html @@ -4,7 +4,7 @@ - + ffsim.hamiltonians.single_factorized_hamiltonian - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/linalg/double_factorized_decomposition.html b/dev/_modules/ffsim/linalg/double_factorized_decomposition.html index 7faa7bfbe..bd1054a11 100644 --- a/dev/_modules/ffsim/linalg/double_factorized_decomposition.html +++ b/dev/_modules/ffsim/linalg/double_factorized_decomposition.html @@ -4,7 +4,7 @@ - + ffsim.linalg.double_factorized_decomposition - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/linalg/givens.html b/dev/_modules/ffsim/linalg/givens.html index 08013e200..f802b178c 100644 --- a/dev/_modules/ffsim/linalg/givens.html +++ b/dev/_modules/ffsim/linalg/givens.html @@ -4,7 +4,7 @@ - + ffsim.linalg.givens - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/linalg/linalg.html b/dev/_modules/ffsim/linalg/linalg.html index 89102a382..a90e96539 100644 --- a/dev/_modules/ffsim/linalg/linalg.html +++ b/dev/_modules/ffsim/linalg/linalg.html @@ -4,7 +4,7 @@ - + ffsim.linalg.linalg - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/linalg/predicates.html b/dev/_modules/ffsim/linalg/predicates.html index 6cf43ed05..ab0ec6483 100644 --- a/dev/_modules/ffsim/linalg/predicates.html +++ b/dev/_modules/ffsim/linalg/predicates.html @@ -4,7 +4,7 @@ - + ffsim.linalg.predicates - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/molecular_data.html b/dev/_modules/ffsim/molecular_data.html index 3fc1ecf2c..c122df47b 100644 --- a/dev/_modules/ffsim/molecular_data.html +++ b/dev/_modules/ffsim/molecular_data.html @@ -4,7 +4,7 @@ - + ffsim.molecular_data - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/operators/common_operators.html b/dev/_modules/ffsim/operators/common_operators.html index 9fbb0d575..c0c10952b 100644 --- a/dev/_modules/ffsim/operators/common_operators.html +++ b/dev/_modules/ffsim/operators/common_operators.html @@ -4,7 +4,7 @@ - + ffsim.operators.common_operators - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/operators/fermi_hubbard.html b/dev/_modules/ffsim/operators/fermi_hubbard.html index 20a1ce802..64bcd4bcc 100644 --- a/dev/_modules/ffsim/operators/fermi_hubbard.html +++ b/dev/_modules/ffsim/operators/fermi_hubbard.html @@ -4,7 +4,7 @@ - + ffsim.operators.fermi_hubbard - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/operators/fermion_action.html b/dev/_modules/ffsim/operators/fermion_action.html index 1fdb86945..c8772275c 100644 --- a/dev/_modules/ffsim/operators/fermion_action.html +++ b/dev/_modules/ffsim/operators/fermion_action.html @@ -4,7 +4,7 @@ - + ffsim.operators.fermion_action - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/optimize/linear_method.html b/dev/_modules/ffsim/optimize/linear_method.html index 4d63cfd05..0926012ed 100644 --- a/dev/_modules/ffsim/optimize/linear_method.html +++ b/dev/_modules/ffsim/optimize/linear_method.html @@ -4,7 +4,7 @@ - + ffsim.optimize.linear_method - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/protocols/apply_unitary_protocol.html b/dev/_modules/ffsim/protocols/apply_unitary_protocol.html index c1f06846a..9ceb4fcc5 100644 --- a/dev/_modules/ffsim/protocols/apply_unitary_protocol.html +++ b/dev/_modules/ffsim/protocols/apply_unitary_protocol.html @@ -4,7 +4,7 @@ - + ffsim.protocols.apply_unitary_protocol - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/protocols/approximate_equality_protocol.html b/dev/_modules/ffsim/protocols/approximate_equality_protocol.html index be1b8e29a..c3d16ed16 100644 --- a/dev/_modules/ffsim/protocols/approximate_equality_protocol.html +++ b/dev/_modules/ffsim/protocols/approximate_equality_protocol.html @@ -4,7 +4,7 @@ - + ffsim.protocols.approximate_equality_protocol - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/protocols/diagonal_protocol.html b/dev/_modules/ffsim/protocols/diagonal_protocol.html index 64c218304..10124d994 100644 --- a/dev/_modules/ffsim/protocols/diagonal_protocol.html +++ b/dev/_modules/ffsim/protocols/diagonal_protocol.html @@ -4,7 +4,7 @@ - + ffsim.protocols.diagonal_protocol - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/protocols/fermion_operator_protocol.html b/dev/_modules/ffsim/protocols/fermion_operator_protocol.html index 4b51a2c90..9df6257c3 100644 --- a/dev/_modules/ffsim/protocols/fermion_operator_protocol.html +++ b/dev/_modules/ffsim/protocols/fermion_operator_protocol.html @@ -4,7 +4,7 @@ - + ffsim.protocols.fermion_operator_protocol - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/protocols/linear_operator_protocol.html b/dev/_modules/ffsim/protocols/linear_operator_protocol.html index 29a6bdce2..82a87c971 100644 --- a/dev/_modules/ffsim/protocols/linear_operator_protocol.html +++ b/dev/_modules/ffsim/protocols/linear_operator_protocol.html @@ -4,7 +4,7 @@ - + ffsim.protocols.linear_operator_protocol - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/protocols/trace_protocol.html b/dev/_modules/ffsim/protocols/trace_protocol.html index 6ca425bec..3b84d1e4f 100644 --- a/dev/_modules/ffsim/protocols/trace_protocol.html +++ b/dev/_modules/ffsim/protocols/trace_protocol.html @@ -4,7 +4,7 @@ - + ffsim.protocols.trace_protocol - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/diag_coulomb.html b/dev/_modules/ffsim/qiskit/gates/diag_coulomb.html index 3485f4a6b..85432ff72 100644 --- a/dev/_modules/ffsim/qiskit/gates/diag_coulomb.html +++ b/dev/_modules/ffsim/qiskit/gates/diag_coulomb.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.diag_coulomb - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/diag_coulomb_trotter.html b/dev/_modules/ffsim/qiskit/gates/diag_coulomb_trotter.html index 3298e9a09..dfea7bde7 100644 --- a/dev/_modules/ffsim/qiskit/gates/diag_coulomb_trotter.html +++ b/dev/_modules/ffsim/qiskit/gates/diag_coulomb_trotter.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.diag_coulomb_trotter - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/double_factorized_trotter.html b/dev/_modules/ffsim/qiskit/gates/double_factorized_trotter.html index 518cddc5a..97bbb4a90 100644 --- a/dev/_modules/ffsim/qiskit/gates/double_factorized_trotter.html +++ b/dev/_modules/ffsim/qiskit/gates/double_factorized_trotter.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.double_factorized_trotter - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/givens_ansatz.html b/dev/_modules/ffsim/qiskit/gates/givens_ansatz.html index 3939b7ac7..7a260b392 100644 --- a/dev/_modules/ffsim/qiskit/gates/givens_ansatz.html +++ b/dev/_modules/ffsim/qiskit/gates/givens_ansatz.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.givens_ansatz - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/num_num_ansatz.html b/dev/_modules/ffsim/qiskit/gates/num_num_ansatz.html index 4bd33fb75..1bdd88f3d 100644 --- a/dev/_modules/ffsim/qiskit/gates/num_num_ansatz.html +++ b/dev/_modules/ffsim/qiskit/gates/num_num_ansatz.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.num_num_ansatz - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/num_op_sum.html b/dev/_modules/ffsim/qiskit/gates/num_op_sum.html index f52013201..d3261aa29 100644 --- a/dev/_modules/ffsim/qiskit/gates/num_op_sum.html +++ b/dev/_modules/ffsim/qiskit/gates/num_op_sum.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.num_op_sum - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/orbital_rotation.html b/dev/_modules/ffsim/qiskit/gates/orbital_rotation.html index 5495cadcb..dab037bf6 100644 --- a/dev/_modules/ffsim/qiskit/gates/orbital_rotation.html +++ b/dev/_modules/ffsim/qiskit/gates/orbital_rotation.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.orbital_rotation - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/slater_determinant.html b/dev/_modules/ffsim/qiskit/gates/slater_determinant.html index f5ea3ca4e..b39c65f79 100644 --- a/dev/_modules/ffsim/qiskit/gates/slater_determinant.html +++ b/dev/_modules/ffsim/qiskit/gates/slater_determinant.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.slater_determinant - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/ucj.html b/dev/_modules/ffsim/qiskit/gates/ucj.html index 823b12010..a703349a0 100644 --- a/dev/_modules/ffsim/qiskit/gates/ucj.html +++ b/dev/_modules/ffsim/qiskit/gates/ucj.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.ucj - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/gates/ucj_operator.html b/dev/_modules/ffsim/qiskit/gates/ucj_operator.html index a72ef9730..79a38f70c 100644 --- a/dev/_modules/ffsim/qiskit/gates/ucj_operator.html +++ b/dev/_modules/ffsim/qiskit/gates/ucj_operator.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.gates.ucj_operator - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/jordan_wigner.html b/dev/_modules/ffsim/qiskit/jordan_wigner.html index f2d9df50a..876fde460 100644 --- a/dev/_modules/ffsim/qiskit/jordan_wigner.html +++ b/dev/_modules/ffsim/qiskit/jordan_wigner.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.jordan_wigner - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/sampler.html b/dev/_modules/ffsim/qiskit/sampler.html index 3ace90f0e..4ae865bd8 100644 --- a/dev/_modules/ffsim/qiskit/sampler.html +++ b/dev/_modules/ffsim/qiskit/sampler.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.sampler - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/sim.html b/dev/_modules/ffsim/qiskit/sim.html index efb2fbb85..962bd2a0a 100644 --- a/dev/_modules/ffsim/qiskit/sim.html +++ b/dev/_modules/ffsim/qiskit/sim.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.sim - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/transpiler_passes/drop_negligible.html b/dev/_modules/ffsim/qiskit/transpiler_passes/drop_negligible.html index b239de0ec..f1e8f0689 100644 --- a/dev/_modules/ffsim/qiskit/transpiler_passes/drop_negligible.html +++ b/dev/_modules/ffsim/qiskit/transpiler_passes/drop_negligible.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.transpiler_passes.drop_negligible - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/transpiler_passes/merge_orbital_rotations.html b/dev/_modules/ffsim/qiskit/transpiler_passes/merge_orbital_rotations.html index e3204d6f5..ec3119deb 100644 --- a/dev/_modules/ffsim/qiskit/transpiler_passes/merge_orbital_rotations.html +++ b/dev/_modules/ffsim/qiskit/transpiler_passes/merge_orbital_rotations.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.transpiler_passes.merge_orbital_rotations - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/transpiler_stages.html b/dev/_modules/ffsim/qiskit/transpiler_stages.html index 14490774d..7c6ef43f2 100644 --- a/dev/_modules/ffsim/qiskit/transpiler_stages.html +++ b/dev/_modules/ffsim/qiskit/transpiler_stages.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.transpiler_stages - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/qiskit/util.html b/dev/_modules/ffsim/qiskit/util.html index 1722a0065..a4645594f 100644 --- a/dev/_modules/ffsim/qiskit/util.html +++ b/dev/_modules/ffsim/qiskit/util.html @@ -4,7 +4,7 @@ - + ffsim.qiskit.util - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/random/random.html b/dev/_modules/ffsim/random/random.html index 5e7e16db1..9e2c0575b 100644 --- a/dev/_modules/ffsim/random/random.html +++ b/dev/_modules/ffsim/random/random.html @@ -4,7 +4,7 @@ - + ffsim.random.random - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/spin.html b/dev/_modules/ffsim/spin.html index f33426e41..6408aadfd 100644 --- a/dev/_modules/ffsim/spin.html +++ b/dev/_modules/ffsim/spin.html @@ -4,7 +4,7 @@ - + ffsim.spin - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/states/bitstring.html b/dev/_modules/ffsim/states/bitstring.html index c42b2b043..00760fd49 100644 --- a/dev/_modules/ffsim/states/bitstring.html +++ b/dev/_modules/ffsim/states/bitstring.html @@ -4,7 +4,7 @@ - + ffsim.states.bitstring - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/states/product_state_sum.html b/dev/_modules/ffsim/states/product_state_sum.html index ba1c0b281..423f8791c 100644 --- a/dev/_modules/ffsim/states/product_state_sum.html +++ b/dev/_modules/ffsim/states/product_state_sum.html @@ -4,7 +4,7 @@ - + ffsim.states.product_state_sum - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/states/rdm.html b/dev/_modules/ffsim/states/rdm.html index 7b461cc16..43c8f9d42 100644 --- a/dev/_modules/ffsim/states/rdm.html +++ b/dev/_modules/ffsim/states/rdm.html @@ -4,7 +4,7 @@ - + ffsim.states.rdm - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/states/slater.html b/dev/_modules/ffsim/states/slater.html index 44b857767..916e664f9 100644 --- a/dev/_modules/ffsim/states/slater.html +++ b/dev/_modules/ffsim/states/slater.html @@ -4,7 +4,7 @@ - + ffsim.states.slater - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/states/states.html b/dev/_modules/ffsim/states/states.html index 673a23c80..5df392f8e 100644 --- a/dev/_modules/ffsim/states/states.html +++ b/dev/_modules/ffsim/states/states.html @@ -4,7 +4,7 @@ - + ffsim.states.states - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/states/wick.html b/dev/_modules/ffsim/states/wick.html index c48065fe2..210c5089a 100644 --- a/dev/_modules/ffsim/states/wick.html +++ b/dev/_modules/ffsim/states/wick.html @@ -4,7 +4,7 @@ - + ffsim.states.wick - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/testing/testing.html b/dev/_modules/ffsim/testing/testing.html index 4080c19fa..7cf071c9c 100644 --- a/dev/_modules/ffsim/testing/testing.html +++ b/dev/_modules/ffsim/testing/testing.html @@ -4,7 +4,7 @@ - + ffsim.testing.testing - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/trotter/diagonal_coulomb.html b/dev/_modules/ffsim/trotter/diagonal_coulomb.html index 2ce95a2ff..b7d0d45e1 100644 --- a/dev/_modules/ffsim/trotter/diagonal_coulomb.html +++ b/dev/_modules/ffsim/trotter/diagonal_coulomb.html @@ -4,7 +4,7 @@ - + ffsim.trotter.diagonal_coulomb - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/trotter/double_factorized.html b/dev/_modules/ffsim/trotter/double_factorized.html index 0d9511d79..3b2698d98 100644 --- a/dev/_modules/ffsim/trotter/double_factorized.html +++ b/dev/_modules/ffsim/trotter/double_factorized.html @@ -4,7 +4,7 @@ - + ffsim.trotter.double_factorized - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/trotter/qdrift.html b/dev/_modules/ffsim/trotter/qdrift.html index 256c5e256..0a3dc96a3 100644 --- a/dev/_modules/ffsim/trotter/qdrift.html +++ b/dev/_modules/ffsim/trotter/qdrift.html @@ -4,7 +4,7 @@ - + ffsim.trotter.qdrift - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/variational/givens.html b/dev/_modules/ffsim/variational/givens.html index 52d840e5c..a05f95b98 100644 --- a/dev/_modules/ffsim/variational/givens.html +++ b/dev/_modules/ffsim/variational/givens.html @@ -4,7 +4,7 @@ - + ffsim.variational.givens - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/variational/hopgate.html b/dev/_modules/ffsim/variational/hopgate.html index 9d72747f3..e52d05768 100644 --- a/dev/_modules/ffsim/variational/hopgate.html +++ b/dev/_modules/ffsim/variational/hopgate.html @@ -4,7 +4,7 @@ - + ffsim.variational.hopgate - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/variational/multireference.html b/dev/_modules/ffsim/variational/multireference.html index d414b0bad..f0118cd4b 100644 --- a/dev/_modules/ffsim/variational/multireference.html +++ b/dev/_modules/ffsim/variational/multireference.html @@ -4,7 +4,7 @@ - + ffsim.variational.multireference - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/variational/num_num.html b/dev/_modules/ffsim/variational/num_num.html index 117b39721..fb2564e20 100644 --- a/dev/_modules/ffsim/variational/num_num.html +++ b/dev/_modules/ffsim/variational/num_num.html @@ -4,7 +4,7 @@ - + ffsim.variational.num_num - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/variational/uccsd.html b/dev/_modules/ffsim/variational/uccsd.html index 690f6b795..daf969d74 100644 --- a/dev/_modules/ffsim/variational/uccsd.html +++ b/dev/_modules/ffsim/variational/uccsd.html @@ -4,7 +4,7 @@ - + ffsim.variational.uccsd - ffsim 0.0.48.dev0 @@ -470,7 +470,9 @@

Source code for ffsim.variational.uccsd

             index += 1
         # Final orbital rotation
         if self.final_orbital_rotation is not None:
-            params[index:] = orbital_rotation_to_parameters(self.final_orbital_rotation)
+            params[index:] = orbital_rotation_to_parameters(
+                self.final_orbital_rotation, real=True
+            )
         return params
diff --git a/dev/_modules/ffsim/variational/ucj.html b/dev/_modules/ffsim/variational/ucj.html index cc69fb135..8d790970e 100644 --- a/dev/_modules/ffsim/variational/ucj.html +++ b/dev/_modules/ffsim/variational/ucj.html @@ -4,7 +4,7 @@ - + ffsim.variational.ucj - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/variational/ucj_spin_balanced.html b/dev/_modules/ffsim/variational/ucj_spin_balanced.html index 102b7a4be..2121630a5 100644 --- a/dev/_modules/ffsim/variational/ucj_spin_balanced.html +++ b/dev/_modules/ffsim/variational/ucj_spin_balanced.html @@ -4,7 +4,7 @@ - + ffsim.variational.ucj_spin_balanced - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/variational/ucj_spin_unbalanced.html b/dev/_modules/ffsim/variational/ucj_spin_unbalanced.html index fde1c0710..69a4c7aed 100644 --- a/dev/_modules/ffsim/variational/ucj_spin_unbalanced.html +++ b/dev/_modules/ffsim/variational/ucj_spin_unbalanced.html @@ -4,7 +4,7 @@ - + ffsim.variational.ucj_spin_unbalanced - ffsim 0.0.48.dev0 diff --git a/dev/_modules/ffsim/variational/ucj_spinless.html b/dev/_modules/ffsim/variational/ucj_spinless.html index 55f5b5e2e..9c0432583 100644 --- a/dev/_modules/ffsim/variational/ucj_spinless.html +++ b/dev/_modules/ffsim/variational/ucj_spinless.html @@ -4,7 +4,7 @@ - + ffsim.variational.ucj_spinless - ffsim 0.0.48.dev0 diff --git a/dev/_modules/index.html b/dev/_modules/index.html index b90369ae2..30f3fa18f 100644 --- a/dev/_modules/index.html +++ b/dev/_modules/index.html @@ -4,7 +4,7 @@ - + Overview: module code - ffsim 0.0.48.dev0 diff --git a/dev/api/ffsim.contract.html b/dev/api/ffsim.contract.html index ff7516e70..b6fc68ff6 100644 --- a/dev/api/ffsim.contract.html +++ b/dev/api/ffsim.contract.html @@ -5,7 +5,7 @@ - + ffsim.contract - ffsim 0.0.48.dev0 diff --git a/dev/api/ffsim.html b/dev/api/ffsim.html index c68b88684..10c4564a8 100644 --- a/dev/api/ffsim.html +++ b/dev/api/ffsim.html @@ -5,7 +5,7 @@ - + ffsim - ffsim 0.0.48.dev0 diff --git a/dev/api/ffsim.linalg.html b/dev/api/ffsim.linalg.html index 1aca2ac79..19b0a2e34 100644 --- a/dev/api/ffsim.linalg.html +++ b/dev/api/ffsim.linalg.html @@ -5,7 +5,7 @@ - + ffsim.linalg - ffsim 0.0.48.dev0 diff --git a/dev/api/ffsim.optimize.html b/dev/api/ffsim.optimize.html index 409f3e80c..6c8d2a821 100644 --- a/dev/api/ffsim.optimize.html +++ b/dev/api/ffsim.optimize.html @@ -5,7 +5,7 @@ - + ffsim.optimize - ffsim 0.0.48.dev0 diff --git a/dev/api/ffsim.qiskit.html b/dev/api/ffsim.qiskit.html index bf42a88ef..472dae943 100644 --- a/dev/api/ffsim.qiskit.html +++ b/dev/api/ffsim.qiskit.html @@ -5,7 +5,7 @@ - + ffsim.qiskit - ffsim 0.0.48.dev0 diff --git a/dev/api/ffsim.random.html b/dev/api/ffsim.random.html index dfc4a345d..a887ffdfa 100644 --- a/dev/api/ffsim.random.html +++ b/dev/api/ffsim.random.html @@ -5,7 +5,7 @@ - + ffsim.random - ffsim 0.0.48.dev0 diff --git a/dev/api/ffsim.testing.html b/dev/api/ffsim.testing.html index e1165dcbe..3a253e899 100644 --- a/dev/api/ffsim.testing.html +++ b/dev/api/ffsim.testing.html @@ -5,7 +5,7 @@ - + ffsim.testing - ffsim 0.0.48.dev0 diff --git a/dev/api/index.html b/dev/api/index.html index 4727f4d9a..ec6a3494f 100644 --- a/dev/api/index.html +++ b/dev/api/index.html @@ -5,7 +5,7 @@ - + API reference - ffsim 0.0.48.dev0 diff --git a/dev/explanations/double-factorized.html b/dev/explanations/double-factorized.html index 32ec8757f..0d042a1f8 100644 --- a/dev/explanations/double-factorized.html +++ b/dev/explanations/double-factorized.html @@ -5,7 +5,7 @@ - + Double-factorized representation of the molecular Hamiltonian - ffsim 0.0.48.dev0 diff --git a/dev/explanations/hamiltonians.html b/dev/explanations/hamiltonians.html index f77e3e0b5..8ad616b41 100644 --- a/dev/explanations/hamiltonians.html +++ b/dev/explanations/hamiltonians.html @@ -5,7 +5,7 @@ - + Hamiltonians - ffsim 0.0.48.dev0 @@ -377,7 +377,7 @@

Operator action via SciPy LinearOperators
-np.float64(-99.55717072551565)
+np.float64(-99.55717072551538)
 

Time evolution by the Hamiltonian can be computed using expm_multiply:

@@ -395,7 +395,7 @@

Operator action via SciPy LinearOperators
-/tmp/ipykernel_4256/2190712273.py:2: UserWarning: Trace of LinearOperator not available, it will be estimated. Provide `traceA` to ensure performance.
+/tmp/ipykernel_4360/2190712273.py:2: UserWarning: Trace of LinearOperator not available, it will be estimated. Provide `traceA` to ensure performance.
   evolved_vec = scipy.sparse.linalg.expm_multiply(-1j * time * linop, vec)
 
diff --git a/dev/explanations/hamiltonians.ipynb b/dev/explanations/hamiltonians.ipynb index 0e7650583..89488bebe 100644 --- a/dev/explanations/hamiltonians.ipynb +++ b/dev/explanations/hamiltonians.ipynb @@ -33,10 +33,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:16.791195Z", - "iopub.status.busy": "2024-10-13T14:00:16.791009Z", - "iopub.status.idle": "2024-10-13T14:00:17.498064Z", - "shell.execute_reply": "2024-10-13T14:00:17.497406Z" + "iopub.execute_input": "2024-10-14T00:39:42.771543Z", + "iopub.status.busy": "2024-10-14T00:39:42.771028Z", + "iopub.status.idle": "2024-10-14T00:39:43.465209Z", + "shell.execute_reply": "2024-10-14T00:39:43.464564Z" } }, "outputs": [], @@ -68,10 +68,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.500483Z", - "iopub.status.busy": "2024-10-13T14:00:17.500170Z", - "iopub.status.idle": "2024-10-13T14:00:17.503075Z", - "shell.execute_reply": "2024-10-13T14:00:17.502582Z" + "iopub.execute_input": "2024-10-14T00:39:43.467908Z", + "iopub.status.busy": "2024-10-14T00:39:43.467461Z", + "iopub.status.idle": "2024-10-14T00:39:43.470366Z", + "shell.execute_reply": "2024-10-14T00:39:43.469857Z" } }, "outputs": [], @@ -99,10 +99,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.505033Z", - "iopub.status.busy": "2024-10-13T14:00:17.504667Z", - "iopub.status.idle": "2024-10-13T14:00:17.507918Z", - "shell.execute_reply": "2024-10-13T14:00:17.507433Z" + "iopub.execute_input": "2024-10-14T00:39:43.472242Z", + "iopub.status.busy": "2024-10-14T00:39:43.471892Z", + "iopub.status.idle": "2024-10-14T00:39:43.474853Z", + "shell.execute_reply": "2024-10-14T00:39:43.474390Z" } }, "outputs": [], @@ -127,10 +127,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.509949Z", - "iopub.status.busy": "2024-10-13T14:00:17.509520Z", - "iopub.status.idle": "2024-10-13T14:00:17.513976Z", - "shell.execute_reply": "2024-10-13T14:00:17.513435Z" + "iopub.execute_input": "2024-10-14T00:39:43.476670Z", + "iopub.status.busy": "2024-10-14T00:39:43.476331Z", + "iopub.status.idle": "2024-10-14T00:39:43.480795Z", + "shell.execute_reply": "2024-10-14T00:39:43.480237Z" } }, "outputs": [], @@ -152,17 +152,17 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.516358Z", - "iopub.status.busy": "2024-10-13T14:00:17.515936Z", - "iopub.status.idle": "2024-10-13T14:00:17.541139Z", - "shell.execute_reply": "2024-10-13T14:00:17.540591Z" + "iopub.execute_input": "2024-10-14T00:39:43.483260Z", + "iopub.status.busy": "2024-10-14T00:39:43.482671Z", + "iopub.status.idle": "2024-10-14T00:39:43.508599Z", + "shell.execute_reply": "2024-10-14T00:39:43.508059Z" } }, "outputs": [ { "data": { "text/plain": [ - "np.float64(-99.55717072551565)" + "np.float64(-99.55717072551538)" ] }, "execution_count": 5, @@ -191,10 +191,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:17.576494Z", - "iopub.status.busy": "2024-10-13T14:00:17.576112Z", - "iopub.status.idle": "2024-10-13T14:00:18.236565Z", - "shell.execute_reply": "2024-10-13T14:00:18.235925Z" + "iopub.execute_input": "2024-10-14T00:39:43.542116Z", + "iopub.status.busy": "2024-10-14T00:39:43.541677Z", + "iopub.status.idle": "2024-10-14T00:39:44.159828Z", + "shell.execute_reply": "2024-10-14T00:39:44.159252Z" } }, "outputs": [ @@ -202,7 +202,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_4256/2190712273.py:2: UserWarning: Trace of LinearOperator not available, it will be estimated. Provide `traceA` to ensure performance.\n", + "/tmp/ipykernel_4360/2190712273.py:2: UserWarning: Trace of LinearOperator not available, it will be estimated. Provide `traceA` to ensure performance.\n", " evolved_vec = scipy.sparse.linalg.expm_multiply(-1j * time * linop, vec)\n" ] } @@ -224,10 +224,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:18.239412Z", - "iopub.status.busy": "2024-10-13T14:00:18.239050Z", - "iopub.status.idle": "2024-10-13T14:00:18.852979Z", - "shell.execute_reply": "2024-10-13T14:00:18.852353Z" + "iopub.execute_input": "2024-10-14T00:39:44.162347Z", + "iopub.status.busy": "2024-10-14T00:39:44.161893Z", + "iopub.status.idle": "2024-10-14T00:39:44.750277Z", + "shell.execute_reply": "2024-10-14T00:39:44.749700Z" } }, "outputs": [], diff --git a/dev/explanations/index.html b/dev/explanations/index.html index e3ae806c3..6fab06741 100644 --- a/dev/explanations/index.html +++ b/dev/explanations/index.html @@ -5,7 +5,7 @@ - + Explanations - ffsim 0.0.48.dev0 diff --git a/dev/explanations/lucj.html b/dev/explanations/lucj.html index 287c48122..bdc3138bc 100644 --- a/dev/explanations/lucj.html +++ b/dev/explanations/lucj.html @@ -5,7 +5,7 @@ - + The local unitary cluster Jastrow (LUCJ) ansatz - ffsim 0.0.48.dev0 diff --git a/dev/explanations/orbital-rotation.html b/dev/explanations/orbital-rotation.html index bcc969632..54bf0e761 100644 --- a/dev/explanations/orbital-rotation.html +++ b/dev/explanations/orbital-rotation.html @@ -5,7 +5,7 @@ - + Orbital rotations and quadratic Hamiltonians - ffsim 0.0.48.dev0 diff --git a/dev/explanations/orbital-rotation.ipynb b/dev/explanations/orbital-rotation.ipynb index 8e5d85e5e..e3a27b9f0 100644 --- a/dev/explanations/orbital-rotation.ipynb +++ b/dev/explanations/orbital-rotation.ipynb @@ -62,10 +62,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:21.973578Z", - "iopub.status.busy": "2024-10-13T14:00:21.973344Z", - "iopub.status.idle": "2024-10-13T14:00:22.670832Z", - "shell.execute_reply": "2024-10-13T14:00:22.670296Z" + "iopub.execute_input": "2024-10-14T00:39:47.864528Z", + "iopub.status.busy": "2024-10-14T00:39:47.864088Z", + "iopub.status.idle": "2024-10-14T00:39:48.569108Z", + "shell.execute_reply": "2024-10-14T00:39:48.568441Z" } }, "outputs": [], diff --git a/dev/explanations/qiskit-gate-decompositions.html b/dev/explanations/qiskit-gate-decompositions.html index 77cea7172..1b91da9bf 100644 --- a/dev/explanations/qiskit-gate-decompositions.html +++ b/dev/explanations/qiskit-gate-decompositions.html @@ -5,7 +5,7 @@ - + Qubit gate decompositions of fermionic gates - ffsim 0.0.48.dev0 diff --git a/dev/explanations/qiskit-gate-decompositions.ipynb b/dev/explanations/qiskit-gate-decompositions.ipynb index 88301fe5f..0e5dd13fe 100644 --- a/dev/explanations/qiskit-gate-decompositions.ipynb +++ b/dev/explanations/qiskit-gate-decompositions.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:24.275039Z", - "iopub.status.busy": "2024-10-13T14:00:24.274854Z", - "iopub.status.idle": "2024-10-13T14:00:25.901282Z", - "shell.execute_reply": "2024-10-13T14:00:25.900644Z" + "iopub.execute_input": "2024-10-14T00:39:50.087403Z", + "iopub.status.busy": "2024-10-14T00:39:50.087218Z", + "iopub.status.idle": "2024-10-14T00:39:51.647378Z", + "shell.execute_reply": "2024-10-14T00:39:51.646836Z" } }, "outputs": [ @@ -81,10 +81,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:25.903383Z", - "iopub.status.busy": "2024-10-13T14:00:25.903085Z", - "iopub.status.idle": "2024-10-13T14:00:26.102878Z", - "shell.execute_reply": "2024-10-13T14:00:26.102311Z" + "iopub.execute_input": "2024-10-14T00:39:51.649672Z", + "iopub.status.busy": "2024-10-14T00:39:51.649108Z", + "iopub.status.idle": "2024-10-14T00:39:51.837835Z", + "shell.execute_reply": "2024-10-14T00:39:51.837253Z" } }, "outputs": [ @@ -119,10 +119,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.105201Z", - "iopub.status.busy": "2024-10-13T14:00:26.104771Z", - "iopub.status.idle": "2024-10-13T14:00:26.212834Z", - "shell.execute_reply": "2024-10-13T14:00:26.212246Z" + "iopub.execute_input": "2024-10-14T00:39:51.839961Z", + "iopub.status.busy": "2024-10-14T00:39:51.839584Z", + "iopub.status.idle": "2024-10-14T00:39:51.951449Z", + "shell.execute_reply": "2024-10-14T00:39:51.950973Z" } }, "outputs": [ @@ -156,10 +156,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.215071Z", - "iopub.status.busy": "2024-10-13T14:00:26.214684Z", - "iopub.status.idle": "2024-10-13T14:00:26.325098Z", - "shell.execute_reply": "2024-10-13T14:00:26.324457Z" + "iopub.execute_input": "2024-10-14T00:39:51.953548Z", + "iopub.status.busy": "2024-10-14T00:39:51.953067Z", + "iopub.status.idle": "2024-10-14T00:39:52.063367Z", + "shell.execute_reply": "2024-10-14T00:39:52.062743Z" } }, "outputs": [ @@ -196,10 +196,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.327544Z", - "iopub.status.busy": "2024-10-13T14:00:26.327135Z", - "iopub.status.idle": "2024-10-13T14:00:26.511874Z", - "shell.execute_reply": "2024-10-13T14:00:26.511355Z" + "iopub.execute_input": "2024-10-14T00:39:52.065501Z", + "iopub.status.busy": "2024-10-14T00:39:52.065120Z", + "iopub.status.idle": "2024-10-14T00:39:52.251347Z", + "shell.execute_reply": "2024-10-14T00:39:52.250882Z" } }, "outputs": [ @@ -250,10 +250,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.513877Z", - "iopub.status.busy": "2024-10-13T14:00:26.513680Z", - "iopub.status.idle": "2024-10-13T14:00:26.736717Z", - "shell.execute_reply": "2024-10-13T14:00:26.736056Z" + "iopub.execute_input": "2024-10-14T00:39:52.253354Z", + "iopub.status.busy": "2024-10-14T00:39:52.253155Z", + "iopub.status.idle": "2024-10-14T00:39:52.487381Z", + "shell.execute_reply": "2024-10-14T00:39:52.486618Z" } }, "outputs": [ @@ -292,10 +292,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.739195Z", - "iopub.status.busy": "2024-10-13T14:00:26.738667Z", - "iopub.status.idle": "2024-10-13T14:00:26.876394Z", - "shell.execute_reply": "2024-10-13T14:00:26.875776Z" + "iopub.execute_input": "2024-10-14T00:39:52.489606Z", + "iopub.status.busy": "2024-10-14T00:39:52.489197Z", + "iopub.status.idle": "2024-10-14T00:39:52.635712Z", + "shell.execute_reply": "2024-10-14T00:39:52.635096Z" } }, "outputs": [ @@ -334,10 +334,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:26.878616Z", - "iopub.status.busy": "2024-10-13T14:00:26.878225Z", - "iopub.status.idle": "2024-10-13T14:00:27.402724Z", - "shell.execute_reply": "2024-10-13T14:00:27.402184Z" + "iopub.execute_input": "2024-10-14T00:39:52.637586Z", + "iopub.status.busy": "2024-10-14T00:39:52.637387Z", + "iopub.status.idle": "2024-10-14T00:39:53.155051Z", + "shell.execute_reply": "2024-10-14T00:39:53.154424Z" } }, "outputs": [ @@ -378,10 +378,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:27.404919Z", - "iopub.status.busy": "2024-10-13T14:00:27.404519Z", - "iopub.status.idle": "2024-10-13T14:00:27.587529Z", - "shell.execute_reply": "2024-10-13T14:00:27.586904Z" + "iopub.execute_input": "2024-10-14T00:39:53.157239Z", + "iopub.status.busy": "2024-10-14T00:39:53.156866Z", + "iopub.status.idle": "2024-10-14T00:39:53.352142Z", + "shell.execute_reply": "2024-10-14T00:39:53.351608Z" } }, "outputs": [ @@ -430,10 +430,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:27.589653Z", - "iopub.status.busy": "2024-10-13T14:00:27.589452Z", - "iopub.status.idle": "2024-10-13T14:00:27.757258Z", - "shell.execute_reply": "2024-10-13T14:00:27.756658Z" + "iopub.execute_input": "2024-10-14T00:39:53.354076Z", + "iopub.status.busy": "2024-10-14T00:39:53.353858Z", + "iopub.status.idle": "2024-10-14T00:39:53.521768Z", + "shell.execute_reply": "2024-10-14T00:39:53.521293Z" } }, "outputs": [ @@ -474,10 +474,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:27.759539Z", - "iopub.status.busy": "2024-10-13T14:00:27.759169Z", - "iopub.status.idle": "2024-10-13T14:00:27.891422Z", - "shell.execute_reply": "2024-10-13T14:00:27.890739Z" + "iopub.execute_input": "2024-10-14T00:39:53.523807Z", + "iopub.status.busy": "2024-10-14T00:39:53.523443Z", + "iopub.status.idle": "2024-10-14T00:39:53.653204Z", + "shell.execute_reply": "2024-10-14T00:39:53.652746Z" } }, "outputs": [ @@ -513,10 +513,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:27.893831Z", - "iopub.status.busy": "2024-10-13T14:00:27.893411Z", - "iopub.status.idle": "2024-10-13T14:00:28.073495Z", - "shell.execute_reply": "2024-10-13T14:00:28.072875Z" + "iopub.execute_input": "2024-10-14T00:39:53.655047Z", + "iopub.status.busy": "2024-10-14T00:39:53.654857Z", + "iopub.status.idle": "2024-10-14T00:39:53.833160Z", + "shell.execute_reply": "2024-10-14T00:39:53.832558Z" } }, "outputs": [ @@ -553,10 +553,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.075684Z", - "iopub.status.busy": "2024-10-13T14:00:28.075480Z", - "iopub.status.idle": "2024-10-13T14:00:28.235492Z", - "shell.execute_reply": "2024-10-13T14:00:28.234947Z" + "iopub.execute_input": "2024-10-14T00:39:53.835344Z", + "iopub.status.busy": "2024-10-14T00:39:53.834892Z", + "iopub.status.idle": "2024-10-14T00:39:53.993464Z", + "shell.execute_reply": "2024-10-14T00:39:53.992887Z" } }, "outputs": [ @@ -593,10 +593,10 @@ "execution_count": 14, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.237439Z", - "iopub.status.busy": "2024-10-13T14:00:28.237243Z", - "iopub.status.idle": "2024-10-13T14:00:28.367909Z", - "shell.execute_reply": "2024-10-13T14:00:28.367373Z" + "iopub.execute_input": "2024-10-14T00:39:53.995419Z", + "iopub.status.busy": "2024-10-14T00:39:53.995067Z", + "iopub.status.idle": "2024-10-14T00:39:54.127269Z", + "shell.execute_reply": "2024-10-14T00:39:54.126697Z" } }, "outputs": [ @@ -630,10 +630,10 @@ "execution_count": 15, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.370040Z", - "iopub.status.busy": "2024-10-13T14:00:28.369695Z", - "iopub.status.idle": "2024-10-13T14:00:28.529494Z", - "shell.execute_reply": "2024-10-13T14:00:28.528866Z" + "iopub.execute_input": "2024-10-14T00:39:54.129329Z", + "iopub.status.busy": "2024-10-14T00:39:54.128976Z", + "iopub.status.idle": "2024-10-14T00:39:54.287210Z", + "shell.execute_reply": "2024-10-14T00:39:54.286733Z" } }, "outputs": [ @@ -677,10 +677,10 @@ "execution_count": 16, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.531727Z", - "iopub.status.busy": "2024-10-13T14:00:28.531359Z", - "iopub.status.idle": "2024-10-13T14:00:28.721378Z", - "shell.execute_reply": "2024-10-13T14:00:28.720737Z" + "iopub.execute_input": "2024-10-14T00:39:54.289228Z", + "iopub.status.busy": "2024-10-14T00:39:54.288881Z", + "iopub.status.idle": "2024-10-14T00:39:54.459440Z", + "shell.execute_reply": "2024-10-14T00:39:54.458871Z" } }, "outputs": [ @@ -736,16 +736,16 @@ "execution_count": 17, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:28.723537Z", - "iopub.status.busy": "2024-10-13T14:00:28.723192Z", - "iopub.status.idle": "2024-10-13T14:00:29.172032Z", - "shell.execute_reply": "2024-10-13T14:00:29.171395Z" + "iopub.execute_input": "2024-10-14T00:39:54.461459Z", + "iopub.status.busy": "2024-10-14T00:39:54.461263Z", + "iopub.status.idle": "2024-10-14T00:39:54.912249Z", + "shell.execute_reply": "2024-10-14T00:39:54.911642Z" } }, "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABLsAAAMkCAYAAABQkSLjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADTPklEQVR4nOzdeVyVZf7/8ddZWERABDdUZBFFXFhG09zyaFhZk+aYrZaVzrQ3zpQtLv2cSsscm5k2m0Yrc9IWp7L62qIlakbuuIvggvsuAoKAnPP74+RRBEEFzsb7+XjwkPu6r3Nfn/v25pz7fO7rum6DzWazISIiIiIiIiIi4gWMrg5ARERERERERESkpijZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNdQsktERERERERERLyGkl0iIiIiIiIiIuI1lOwSERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNdQsktERERERERERLyGkl0iIiIiIiIiIuI1lOwSERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNdQsktERERERERERLyGkl0iIiIiIiIiIuI1lOwSERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNdQsktERERERERERLyG2dUBuLPivAJObNnt6jC8RsP4VvgGBVRZL78EsnKdEFAFYoMh0Mc1bYuIiIiIiIhI9SnZVYkTW3bz7aBxrg7DawyY9xJNu7arsl5WLoxc5oSAKjC9JySFuaZtEREREREREak+DWMUERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkMT1ItXyBhr4dTWNAxmHwwmM/4t2tF82ESCE691dWgiIiIiIiIi4kTq2SVeo/mwiSR/kk/CzEPUj+vO9km3UHrqpKvDEhEREREREREnUrJLvI7Rx49G/UdgPZ3P6QNZrg5HRERERERERJxIyS7xOtaiQo4umI4xIBj/5m1cHY6IiIiIiIiIOJHH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RETEayjZJSIiIiIiIiIiXkMT1IvbiQ2G6T1d17aIiIiIiIiIeC4lu8TtBPpAUpiroxARERERERERT6RhjCJ1VGpqKtHR0VgsFoYPH15u/cSJE8nMzKx0G48//ji9e/dm0qRJF63zz3/+k5SUFI4fP07nzp0JDAx0rNuyZQuTJ0++8p0QERERERERuYCSXSJ12IgRI0hNTaVBgwakpaU5yq1WK+vXr6dNmzYXfe2qVaswm80sXbqUNWvWcOjQoXJ1SkpKSE9PByAoKIgFCxZw9dVXO9bHx8ezZs0abDZbze2UiIiIiIiI1GlKdokIHTt2ZN++fY7ldevW0bZt20pfs3z5cvr16wdAnz59WL16dbk6s2bN4s477wTAx8eH0NDQcnViYmLYtGlTdcIXERERERERcVCyS0RIS0sjNjbWsZyZmUlUVFSlr8nJySE42D6jf1BQEDk5OWXWW61Wvv/+e66//vpKtxMZGcm2bduuKG4RERERERGRC2mCepE6bMaMGSxcuJBevXqRlJRUYZ3NmzfzyCOPlCm74YYbCAkJITc3F4C8vDxat25dps7nn3/OwIEDayVuERERERERkYtRskukDhsxYgTjxo0rV96mTRs+//xzANq3b09qamq5OitXrmTOnDncfPPNLFmyhNtuu63M+oyMDFJTU5k1axbp6elMnz6dkSNHlttOdnY2PXv2rJkdEhERERERkTpPwxhFpJzExEQyMjIqrXPVVVdRVFRE7969SUxMpGnTphw8eJApU6YAMHbsWBYsWMB3331HUlISI0eOJCUlhbVr15KSksLGjRsByMrKomPHjrW+TyIiIiIiIlI3qGeXSB1lsViwWCwVrjMajSQkJJCZmVnpExnfeuutMsvNmjVj9OjR5eotXLiwzL9nbdmyhc6dO2MwGC4zehEREREREZGKKdklIhWqaHhjTYuPjyc+Pr7W2xEREREREZG6Q8MYRURERERERETEayjZJSIiIiIiIiIiXkPDGMXt5JdAVq5r2o4NhkAf17QtIiIiIiIiItWnZJe4naxcGLnMNW1P7wlJYa5pW0RERERERESqT8MYRURERERERETEayjZJSIiIiIiIiIiXkPJLhERERERERER8RpKdomIiIiIiIiIiNfQBPXiFTLGWji1NQ2D2QeDyYx/i3Y0HzaR4MRrXR2aiIiIiIiIiDiRenaJ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p2jSpAmJiYlkZWWVWZeamuro5WWxWPj2229rd0fcVGpqKtHR0VgsFoYPH15u/cSJE8nMzLzo648fP07nzp0JDAy8aJ3HH3+c3r17M2nSJHbt2kV4eDgWi4V7770XgC1btjB58uTq74yIiIiIiFSLkl0iIk6QlpZGbGysYzkrK4vIyEgAcnJyCA62j6ENCgoiJyenzGutVmuFv5/dhq+vLwCRkZFs27attnbB7Y0YMYLU1FQaNGhAWlqao9xqtbJ+/XratGlz0dcGBQWxYMECrr766grXr1q1CrPZzNKlS1mzZg2HDh3ipptuIjU1lQ8//BCA+Ph41qxZg81mq9kdExERERGRy6Jkl4hILZoxYwYWi4UWLVqQlJRUYZ2QkBByc3MByMvLIyQkpMx6o9FY4e/z5s1j0KBBNR6zp7uwF926deto27Ztpa/x8fEhNDT0ouuXL19Ov379AOjTpw+rV6/m+++/p3fv3nz00UeOejExMWzatKmaeyAiIiIiItWhZJeISC0629vopZdeKlMeGxtLdnY2AJ07d2bJkiUALFq0iK5du5apGxAQwJEjR1i/fn2Z3mHz58/nxhtvdCxnZ2dX2nuprriwF11mZiZRUVHV2uaFve/q169PRkYGP/zwA//+9785duwYoN51IiIiIiLuQMkuEREXCA0NpaCgAIBmzZqRkJBA7969KSoqokuXLhw8eJApU6YAMH78eG655RaeeOIJnn76aQCOHj2Kj48PDRo0cGwzNTWVAQMGOH9n3MSl9KLbvHkzFoulzM8rr7xS5bYv7H3XuHFjAgICqFevHr1792b79u01uSsiIiIiIlINehqjiEgtOZtMuZiBAweycOFCUlJSGD9+POPHj3esa9asGaNHjwYgOTmZZcuWlXlto0aN+O677xzLZ86c4fDhw2V6NNU1Z598eaE2bdrw+eefA9C+fXvHkywvR9euXZkzZw4333wzS5YsYeDAgQDYbDZWrVrFY489Bth71/Xs2fPKd0JERERERKpNPbtERFzk3nvvJSUlpUa2ZTabmTFjRo1sy9skJiaSkZFRZb2UlBTWrl1LSkoKGzduLNO77qqrrqKoqIjevXs7ttelSxd69OjBddddR3h4OGB/aEDHjh1rdX9ERERERKRy6tklIiIer7JedEajkYSEBDIzMyud02zhwoXlys72rgN46623yqy7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ivPP35iYGI4cOUL//v1p3LgxTZo0qcE9ERERT6GnMYqIiMglGzFihGMS8/O1adOGzz//HID27duTmppars7KlSuZM2cON998M0uWLOG2226rtK2ioiL8/PwwGo0EBQXh7++P1Wp1DGkKDQ119FrKzs6mZ8+e1ds5N+Lq4wywY8cOWrZsia+vr6Outx1ncY7qnM9VufD8DQgIYNq0adhsNoYPH0737t0BnbsiInWNenaJiIhItSUmJpKRkVFpnauuuoqioiJ69+5NYmIiTZs25eDBg44npgGkpKSwdu1aUlJSePXVV7FYLFxzzTW0bNmSNm3acNddd/H+++9jsVhIT0+nf//+AGRlZdGxY8da3Ud34KzjDOWHMELdOc7iHJdyPkPZ83Xjxo1lzuevvvqqzPnr5+eHxWLh2muv5dZbb3XMQadzV0SkblHPLhEREbkkZ4cWVcRoNJKQkEBmZmalT1Z76623yiw3a9aM0aNHO5YXLlxYZv348ePLLDds2JAffvihTNmWLVvo3LmzYxJ1T+cOxxngL3/5S5llbzvO4hw1cT5feL4CjvN56NChDB06tMy6C3uI6dwVEal7lOwSERGRGlHRMCVniI+PJz4+3iVtu4KOs3gTZ5zPOndFROoeDWMUERERERERERGvoWSXiIiIiIiIiIh4DQ1jFLeTXwJZua5pOzYYAn1c07aIiIiIiIiIVJ+SXeJ2snJh5DLXtD29JySFuaZtEREREREREak+DWMUERERERERERGvoWSXiIiIiIiIiIh4DSW7RERERERERETEayjZJSIiIiIiIiIiXkMT1ItXyBhr4dTWNAxmHwwmM/4t2tF82ESCE691dWgiIiIiIiIi4kTq2SVeo/mwiSR/kk/CzEPUj+vO9km3UHrqpKvDEhEREREREREnUrJLvI7Rx49G/UdgPZ3P6QNZrg5HRERERERERJxIyS7xOtaiQo4umI4xIBj/5m1cHY6IiIiIiIiIOJHHJLuKi4sZP348ERER1KtXj379+rFixQoMBgPz5s1zdXjiBvbPHk/6XSFs+GMUBTvXETvuG0wBwa4OS0REREREREScyCMmqLfZbAwdOpQVK1YwYcIEYmNjmT17NoMHDwYgOTnZqfFc/fJIIvp3wSc4gJL8QrK/SWPVi//FWnLGqXFIWc3vepFmg59ydRgiIh5n4wmYvf3c8u8X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KU6fPk1BQQEhISHO2C23cynH2Waz8cADD/DCCy/QvHnzS9puXl4eYP8/iI6OBiA7O/uSeoWJSHl6GqNIHTZjxgwWLlxIr169LnpnavPmzY5u7GfdcMMNhISEkJubC9g/nFu3bl2mzueff87AgQNrJW4RERERuTShoaEUFBQA9if+3XfffQCkpKQwduxYAJ588kmmTp3Ks88+S15eHv369aNTp0688cYbjt77EyZMICUlBX9/f7777juuu+46l+yPuzr/OKempvLTTz9x9OhRAKZOnUqLFi2YNWsWo0eP5sMPP+Rf//oXJ0+eJDc3l1dffZV7772XI0eO4OfnxwcffADAokWLGDBggKt2ScSjKdklUoeNGDHC8bjj87Vp04bPP/8cgPbt25OamlquzsqVK5kzZw4333wzS5Ys4bbbbiuzPiMjg9TUVGbNmkV6ejrTp09n5MiR5baTnZ1Nz549a2aHREREROogi8WCxWK56PqBAweycOFCUlJSHGULFy50/D516lQAFi9efNFtnO3tBfanDtbFhwxdznE+O8n8+UaPHg3Avffey7333ltm3RdffFGu/vLly/nTn/5UvaBF6igNYxSRchITE8nIyKi0zlVXXUVRURG9e/cmMTGRpk2bcvDgQaZMmQLA2LFjWbBgAd999x1JSUmMHDmSlJQU1q5dS0pKChs3bgTsk3l27Nix1vdJREREpK669957yyS6quutt94q84Rtsavp4/z+++9X+NRMEamaenaJ1FGV3ZkyGo0kJCSQmZlZ6TwBb731VpnlZs2aOe5Yne/sncPz7yACbNmyhc6dO5d7HLOIiIiIiIjIlVKyS0QqVNHwxpoWHx9PfHx8rbcjIiIiIiIidYf6RIqIiIiIiIiIiNdQsktERERERERERLyGkl0iIiIiIiIiIuI1NGeXuJ38EsjKdU3bscEQ6OOatkVERERERESk+pTsEreTlQsjl7mm7ek9ISnMNW2LiIiIiIiISPVpGKOIiIiIiIiIiHgNJbtERERERERERMRrKNklIiIiIiIiIiJeQ3N2iVfIGGvh1NY0DGYfDCYz/i3a0XzYRIITr3V1aCIiIiIiIiLiROrZJV6j+bCJJH+ST8LMQ9SP6872SbdQeuqkq8MSERERERERESdSsku8jtHHj0b9R2A9nc/pA1muDkdEREREREREnEjJLvE61qJC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", "text/plain": [ "
" ] @@ -776,10 +776,10 @@ "execution_count": 18, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:29.174327Z", - "iopub.status.busy": "2024-10-13T14:00:29.173981Z", - "iopub.status.idle": "2024-10-13T14:00:29.431676Z", - "shell.execute_reply": "2024-10-13T14:00:29.431110Z" + "iopub.execute_input": "2024-10-14T00:39:54.914594Z", + "iopub.status.busy": "2024-10-14T00:39:54.914152Z", + "iopub.status.idle": "2024-10-14T00:39:55.179634Z", + "shell.execute_reply": "2024-10-14T00:39:55.179099Z" } }, "outputs": [ diff --git a/dev/explanations/state-vectors-and-gates.html b/dev/explanations/state-vectors-and-gates.html index 12d70c258..5c17e494b 100644 --- a/dev/explanations/state-vectors-and-gates.html +++ b/dev/explanations/state-vectors-and-gates.html @@ -5,7 +5,7 @@ - + State vectors and gates - ffsim 0.0.48.dev0 diff --git a/dev/explanations/state-vectors-and-gates.ipynb b/dev/explanations/state-vectors-and-gates.ipynb index 62b314b27..6c57b90dd 100644 --- a/dev/explanations/state-vectors-and-gates.ipynb +++ b/dev/explanations/state-vectors-and-gates.ipynb @@ -26,10 +26,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:31.965958Z", - "iopub.status.busy": "2024-10-13T14:00:31.965498Z", - "iopub.status.idle": "2024-10-13T14:00:32.677091Z", - "shell.execute_reply": "2024-10-13T14:00:32.676560Z" + "iopub.execute_input": "2024-10-14T00:39:57.531429Z", + "iopub.status.busy": "2024-10-14T00:39:57.530989Z", + "iopub.status.idle": "2024-10-14T00:39:58.267655Z", + "shell.execute_reply": "2024-10-14T00:39:58.267100Z" } }, "outputs": [ @@ -74,10 +74,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.679471Z", - "iopub.status.busy": "2024-10-13T14:00:32.679005Z", - "iopub.status.idle": "2024-10-13T14:00:32.685798Z", - "shell.execute_reply": "2024-10-13T14:00:32.685313Z" + "iopub.execute_input": "2024-10-14T00:39:58.269840Z", + "iopub.status.busy": "2024-10-14T00:39:58.269369Z", + "iopub.status.idle": "2024-10-14T00:39:58.276219Z", + "shell.execute_reply": "2024-10-14T00:39:58.275637Z" } }, "outputs": [ @@ -120,10 +120,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.687546Z", - "iopub.status.busy": "2024-10-13T14:00:32.687358Z", - "iopub.status.idle": "2024-10-13T14:00:32.691539Z", - "shell.execute_reply": "2024-10-13T14:00:32.691081Z" + "iopub.execute_input": "2024-10-14T00:39:58.278264Z", + "iopub.status.busy": "2024-10-14T00:39:58.277764Z", + "iopub.status.idle": "2024-10-14T00:39:58.282028Z", + "shell.execute_reply": "2024-10-14T00:39:58.281453Z" } }, "outputs": [ @@ -157,10 +157,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.693465Z", - "iopub.status.busy": "2024-10-13T14:00:32.693107Z", - "iopub.status.idle": "2024-10-13T14:00:32.697011Z", - "shell.execute_reply": "2024-10-13T14:00:32.696553Z" + "iopub.execute_input": "2024-10-14T00:39:58.283725Z", + "iopub.status.busy": "2024-10-14T00:39:58.283527Z", + "iopub.status.idle": "2024-10-14T00:39:58.287644Z", + "shell.execute_reply": "2024-10-14T00:39:58.287182Z" } }, "outputs": [ @@ -199,10 +199,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.698965Z", - "iopub.status.busy": "2024-10-13T14:00:32.698629Z", - "iopub.status.idle": "2024-10-13T14:00:32.704802Z", - "shell.execute_reply": "2024-10-13T14:00:32.704209Z" + "iopub.execute_input": "2024-10-14T00:39:58.289472Z", + "iopub.status.busy": "2024-10-14T00:39:58.289284Z", + "iopub.status.idle": "2024-10-14T00:39:58.295017Z", + "shell.execute_reply": "2024-10-14T00:39:58.294540Z" } }, "outputs": [ @@ -245,10 +245,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.706813Z", - "iopub.status.busy": "2024-10-13T14:00:32.706394Z", - "iopub.status.idle": "2024-10-13T14:00:32.712202Z", - "shell.execute_reply": "2024-10-13T14:00:32.711638Z" + "iopub.execute_input": "2024-10-14T00:39:58.296747Z", + "iopub.status.busy": "2024-10-14T00:39:58.296563Z", + "iopub.status.idle": "2024-10-14T00:39:58.302081Z", + "shell.execute_reply": "2024-10-14T00:39:58.301585Z" } }, "outputs": [ @@ -293,10 +293,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:32.714141Z", - "iopub.status.busy": "2024-10-13T14:00:32.713824Z", - "iopub.status.idle": "2024-10-13T14:00:32.718681Z", - "shell.execute_reply": "2024-10-13T14:00:32.718222Z" + "iopub.execute_input": "2024-10-14T00:39:58.303915Z", + "iopub.status.busy": "2024-10-14T00:39:58.303546Z", + "iopub.status.idle": "2024-10-14T00:39:58.308544Z", + "shell.execute_reply": "2024-10-14T00:39:58.307990Z" } }, "outputs": [ diff --git a/dev/genindex.html b/dev/genindex.html index 84142a0cb..5fa90dd21 100644 --- a/dev/genindex.html +++ b/dev/genindex.html @@ -4,7 +4,7 @@ - Index - ffsim 0.0.48.dev0 + Index - ffsim 0.0.48.dev0 diff --git a/dev/how-to-guides/entanglement-forging.html b/dev/how-to-guides/entanglement-forging.html index 952b370df..a33605b62 100644 --- a/dev/how-to-guides/entanglement-forging.html +++ b/dev/how-to-guides/entanglement-forging.html @@ -5,7 +5,7 @@ - + How to simulate entanglement forging - ffsim 0.0.48.dev0 @@ -335,7 +335,7 @@

Build a molecule @@ -471,10 +471,10 @@

Optimize energy\n", + "Overwritten attributes get_hcore get_ovlp of \n", "/home/runner/work/ffsim/ffsim/.tox/docs/lib/python3.12/site-packages/pyscf/gto/mole.py:1294: UserWarning: Function mol.dumps drops attribute energy_nuc because it is not JSON-serializable\n", " warnings.warn(msg)\n", "/home/runner/work/ffsim/ffsim/.tox/docs/lib/python3.12/site-packages/pyscf/gto/mole.py:1294: UserWarning: Function mol.dumps drops attribute intor_symmetric because it is not JSON-serializable\n", @@ -125,10 +125,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:35.440423Z", - "iopub.status.busy": "2024-10-13T14:00:35.439456Z", - "iopub.status.idle": "2024-10-13T14:00:35.444803Z", - "shell.execute_reply": "2024-10-13T14:00:35.444163Z" + "iopub.execute_input": "2024-10-14T00:40:01.003372Z", + "iopub.status.busy": "2024-10-14T00:40:01.002959Z", + "iopub.status.idle": "2024-10-14T00:40:01.007601Z", + "shell.execute_reply": "2024-10-14T00:40:01.007143Z" } }, "outputs": [], @@ -168,10 +168,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:35.447129Z", - "iopub.status.busy": "2024-10-13T14:00:35.446583Z", - "iopub.status.idle": "2024-10-13T14:00:35.450220Z", - "shell.execute_reply": "2024-10-13T14:00:35.449639Z" + "iopub.execute_input": "2024-10-14T00:40:01.009636Z", + "iopub.status.busy": "2024-10-14T00:40:01.009252Z", + "iopub.status.idle": "2024-10-14T00:40:01.012473Z", + "shell.execute_reply": "2024-10-14T00:40:01.012028Z" } }, "outputs": [], @@ -200,10 +200,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:35.452235Z", - "iopub.status.busy": "2024-10-13T14:00:35.451915Z", - "iopub.status.idle": "2024-10-13T14:00:35.568883Z", - "shell.execute_reply": "2024-10-13T14:00:35.568226Z" + "iopub.execute_input": "2024-10-14T00:40:01.014627Z", + "iopub.status.busy": "2024-10-14T00:40:01.014242Z", + "iopub.status.idle": "2024-10-14T00:40:01.126731Z", + "shell.execute_reply": "2024-10-14T00:40:01.126125Z" } }, "outputs": [ @@ -211,7 +211,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialialization: -75.67794403659724\n" + "Energy at initialialization: -75.67794403659725\n" ] } ], @@ -238,10 +238,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:35.570940Z", - "iopub.status.busy": "2024-10-13T14:00:35.570630Z", - "iopub.status.idle": "2024-10-13T14:00:43.507820Z", - "shell.execute_reply": "2024-10-13T14:00:43.507279Z" + "iopub.execute_input": "2024-10-14T00:40:01.128845Z", + "iopub.status.busy": "2024-10-14T00:40:01.128492Z", + "iopub.status.idle": "2024-10-14T00:40:09.018193Z", + "shell.execute_reply": "2024-10-14T00:40:09.017613Z" } }, "outputs": [ @@ -253,10 +253,10 @@ " message: STOP: TOTAL NO. of f AND g EVALUATIONS EXCEEDS LIMIT\n", " success: False\n", " status: 1\n", - " fun: -75.68381566723333\n", - " x: [-1.603e-01 6.419e-03 ... 5.748e-02 -1.005e-01]\n", + " fun: -75.68381565459354\n", + " x: [-1.603e-01 6.418e-03 ... 5.748e-02 -1.005e-01]\n", " nit: 3\n", - " jac: [ 2.132e-04 1.080e-04 ... -4.748e-03 7.381e-03]\n", + " jac: [ 2.132e-04 1.066e-04 ... -4.744e-03 7.427e-03]\n", " nfev: 112\n", " njev: 7\n", " hess_inv: <15x15 LbfgsInvHessProduct with dtype=float64>\n" diff --git a/dev/how-to-guides/fermion-operator.html b/dev/how-to-guides/fermion-operator.html index e99a5f1ae..ae6f22942 100644 --- a/dev/how-to-guides/fermion-operator.html +++ b/dev/how-to-guides/fermion-operator.html @@ -5,7 +5,7 @@ - + How to use the FermionOperator class - ffsim 0.0.48.dev0 @@ -315,9 +315,9 @@

How to use the FermionOperator class
 FermionOperator({
-    (cre_b(1), des_b(5), cre_a(4)): 1+1j,
     (cre_a(0), des_a(3)): 0.5,
-    (cre_a(3), des_a(0)): -0.25
+    (cre_a(3), des_a(0)): -0.25,
+    (cre_b(1), des_b(5), cre_a(4)): 1+1j
 })
 
@@ -336,7 +336,7 @@

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

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

@@ -364,17 +364,17 @@

How to use the FermionOperator class
 FermionOperator({
-    (cre_b(1), des_b(5), cre_a(4)): 2+2j,
-    (des_a(3), des_b(3)): 0.0625,
-    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,
-    (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,
-    (cre_b(2)): 0-0.25j,
     (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,
+    (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,
     (cre_a(3), des_a(0)): -0.5,
     (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,
-    (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,
-    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,
-    (cre_a(0), des_a(3)): 1
+    (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,
+    (cre_b(1), des_b(5), cre_a(4)): 2+2j,
+    (cre_a(0), des_a(3)): 1,
+    (cre_b(2)): 0-0.25j,
+    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,
+    (des_a(3), des_b(3)): 0.0625,
+    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625
 })
 
@@ -403,17 +403,17 @@

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

How to use the FermionOperator class
 FermionOperator({
+    (cre_a(3), des_a(0)): 0+3j,
     (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,
+    (cre_b(2)): -5,
+    (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,
+    (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,
     (cre_b(2), cre_a(0), des_a(3)): 2,
-    (cre_a(3), des_a(0)): 0+3j,
-    (cre_b(2), cre_a(3), des_a(0)): -1,
     (cre_a(0), des_a(3)): 0-6j,
-    (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,
-    (cre_b(2)): -5,
+    (cre_b(2), cre_a(3), des_a(0)): -1,
     (cre_b(1), cre_a(4), des_b(5)): -12+12j,
-    (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,
     (des_b(3), des_a(3)): 0+1.25j
 })
 
@@ -512,11 +512,11 @@

How to use the FermionOperator class
-array([ 0.        +0.j       ,  0.        +0.j       ,
-        0.        +0.j       ,  0.        +0.j       ,
-       -0.11913479-0.1768497j,  0.        +0.j       ,
-        0.        +0.j       ,  0.        +0.j       ,
-        0.        +0.j       ])
+array([0.        +0.j        , 0.        +0.j        ,
+       0.        +0.j        , 0.        +0.j        ,
+       0.01074568-0.00552022j, 0.        +0.j        ,
+       0.        +0.j        , 0.        +0.j        ,
+       0.        +0.j        ])
 

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

diff --git a/dev/how-to-guides/fermion-operator.ipynb b/dev/how-to-guides/fermion-operator.ipynb index d75adfc94..6d5c4263d 100644 --- a/dev/how-to-guides/fermion-operator.ipynb +++ b/dev/how-to-guides/fermion-operator.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.032136Z", - "iopub.status.busy": "2024-10-13T14:00:45.031947Z", - "iopub.status.idle": "2024-10-13T14:00:45.745675Z", - "shell.execute_reply": "2024-10-13T14:00:45.745150Z" + "iopub.execute_input": "2024-10-14T00:40:10.537175Z", + "iopub.status.busy": "2024-10-14T00:40:10.536988Z", + "iopub.status.idle": "2024-10-14T00:40:11.236642Z", + "shell.execute_reply": "2024-10-14T00:40:11.236027Z" } }, "outputs": [ @@ -40,9 +40,9 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4)): 1+1j,\n", " (cre_a(0), des_a(3)): 0.5,\n", - " (cre_a(3), des_a(0)): -0.25\n", + " (cre_a(3), des_a(0)): -0.25,\n", + " (cre_b(1), des_b(5), cre_a(4)): 1+1j\n", "})" ] }, @@ -76,17 +76,17 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.748014Z", - "iopub.status.busy": "2024-10-13T14:00:45.747580Z", - "iopub.status.idle": "2024-10-13T14:00:45.751636Z", - "shell.execute_reply": "2024-10-13T14:00:45.751057Z" + "iopub.execute_input": "2024-10-14T00:40:11.239140Z", + "iopub.status.busy": "2024-10-14T00:40:11.238668Z", + "iopub.status.idle": "2024-10-14T00:40:11.242545Z", + "shell.execute_reply": "2024-10-14T00:40:11.242077Z" } }, "outputs": [ { "data": { "text/plain": [ - "'FermionOperator({((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j, ((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j})'" + "'FermionOperator({((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j, ((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j})'" ] }, "execution_count": 2, @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.753586Z", - "iopub.status.busy": "2024-10-13T14:00:45.753265Z", - "iopub.status.idle": "2024-10-13T14:00:45.757619Z", - "shell.execute_reply": "2024-10-13T14:00:45.757065Z" + "iopub.execute_input": "2024-10-14T00:40:11.244488Z", + "iopub.status.busy": "2024-10-14T00:40:11.244140Z", + "iopub.status.idle": "2024-10-14T00:40:11.248601Z", + "shell.execute_reply": "2024-10-14T00:40:11.248021Z" } }, "outputs": [ @@ -121,17 +121,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", - " (des_a(3), des_b(3)): 0.0625,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", - " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", - " (cre_b(2)): 0-0.25j,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", + " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", " (cre_a(3), des_a(0)): -0.5,\n", " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", - " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", - " (cre_a(0), des_a(3)): 1\n", + " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", + " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", + " (cre_a(0), des_a(3)): 1,\n", + " (cre_b(2)): 0-0.25j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", + " (des_a(3), des_b(3)): 0.0625,\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625\n", "})" ] }, @@ -170,10 +170,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.759466Z", - "iopub.status.busy": "2024-10-13T14:00:45.759142Z", - "iopub.status.idle": "2024-10-13T14:00:45.763047Z", - "shell.execute_reply": "2024-10-13T14:00:45.762499Z" + "iopub.execute_input": "2024-10-14T00:40:11.250475Z", + "iopub.status.busy": "2024-10-14T00:40:11.250150Z", + "iopub.status.idle": "2024-10-14T00:40:11.254006Z", + "shell.execute_reply": "2024-10-14T00:40:11.253526Z" } }, "outputs": [ @@ -181,17 +181,17 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", - " (des_a(3), des_b(3)): 0-1.25j,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", - " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", - " (cre_b(2)): -5,\n", " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", + " (cre_a(3), des_a(0), cre_b(2)): -1,\n", " (cre_a(3), des_a(0)): 0+3j,\n", " (cre_a(0), des_a(3), cre_b(2)): 2,\n", - " (cre_a(3), des_a(0), cre_b(2)): -1,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", - " (cre_a(0), des_a(3)): 0-6j\n", + " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", + " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_b(2)): -5,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", + " (des_a(3), des_b(3)): 0-1.25j,\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j\n", "})" ] }, @@ -220,10 +220,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.765095Z", - "iopub.status.busy": "2024-10-13T14:00:45.764734Z", - "iopub.status.idle": "2024-10-13T14:00:45.768444Z", - "shell.execute_reply": "2024-10-13T14:00:45.767944Z" + "iopub.execute_input": "2024-10-14T00:40:11.255938Z", + "iopub.status.busy": "2024-10-14T00:40:11.255488Z", + "iopub.status.idle": "2024-10-14T00:40:11.259339Z", + "shell.execute_reply": "2024-10-14T00:40:11.258739Z" } }, "outputs": [ @@ -231,15 +231,15 @@ "data": { "text/plain": [ "FermionOperator({\n", + " (cre_a(3), des_a(0)): 0+3j,\n", " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", + " (cre_b(2)): -5,\n", + " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,\n", + " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", " (cre_b(2), cre_a(0), des_a(3)): 2,\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(2), cre_a(3), des_a(0)): -1,\n", " (cre_a(0), des_a(3)): 0-6j,\n", - " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", - " (cre_b(2)): -5,\n", + " (cre_b(2), cre_a(3), des_a(0)): -1,\n", " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", - " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,\n", " (des_b(3), des_a(3)): 0+1.25j\n", "})" ] @@ -265,10 +265,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.770328Z", - "iopub.status.busy": "2024-10-13T14:00:45.769966Z", - "iopub.status.idle": "2024-10-13T14:00:45.772964Z", - "shell.execute_reply": "2024-10-13T14:00:45.772352Z" + "iopub.execute_input": "2024-10-14T00:40:11.261336Z", + "iopub.status.busy": "2024-10-14T00:40:11.261150Z", + "iopub.status.idle": "2024-10-14T00:40:11.264020Z", + "shell.execute_reply": "2024-10-14T00:40:11.263565Z" } }, "outputs": [ @@ -298,10 +298,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.774857Z", - "iopub.status.busy": "2024-10-13T14:00:45.774665Z", - "iopub.status.idle": "2024-10-13T14:00:45.778902Z", - "shell.execute_reply": "2024-10-13T14:00:45.778365Z" + "iopub.execute_input": "2024-10-14T00:40:11.265837Z", + "iopub.status.busy": "2024-10-14T00:40:11.265497Z", + "iopub.status.idle": "2024-10-14T00:40:11.269774Z", + "shell.execute_reply": "2024-10-14T00:40:11.269294Z" } }, "outputs": [ @@ -341,21 +341,21 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.805433Z", - "iopub.status.busy": "2024-10-13T14:00:45.805065Z", - "iopub.status.idle": "2024-10-13T14:00:45.810851Z", - "shell.execute_reply": "2024-10-13T14:00:45.810272Z" + "iopub.execute_input": "2024-10-14T00:40:11.287130Z", + "iopub.status.busy": "2024-10-14T00:40:11.286730Z", + "iopub.status.idle": "2024-10-14T00:40:11.292396Z", + "shell.execute_reply": "2024-10-14T00:40:11.291816Z" } }, "outputs": [ { "data": { "text/plain": [ - "array([ 0. +0.j , 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " -0.11913479-0.1768497j, 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " 0. +0.j ])" + "array([0. +0.j , 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0.01074568-0.00552022j, 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0. +0.j ])" ] }, "execution_count": 8, @@ -380,10 +380,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:45.812824Z", - "iopub.status.busy": "2024-10-13T14:00:45.812456Z", - "iopub.status.idle": "2024-10-13T14:00:45.823788Z", - "shell.execute_reply": "2024-10-13T14:00:45.823327Z" + "iopub.execute_input": "2024-10-14T00:40:11.294684Z", + "iopub.status.busy": "2024-10-14T00:40:11.294146Z", + "iopub.status.idle": "2024-10-14T00:40:11.304752Z", + "shell.execute_reply": "2024-10-14T00:40:11.304279Z" } }, "outputs": [ diff --git a/dev/how-to-guides/index.html b/dev/how-to-guides/index.html index ab9ebec27..db7234656 100644 --- a/dev/how-to-guides/index.html +++ b/dev/how-to-guides/index.html @@ -5,7 +5,7 @@ - + How-to guides - ffsim 0.0.48.dev0 diff --git a/dev/how-to-guides/lucj.html b/dev/how-to-guides/lucj.html index cc3a002f4..b26d12517 100644 --- a/dev/how-to-guides/lucj.html +++ b/dev/how-to-guides/lucj.html @@ -5,7 +5,7 @@ - + How to simulate the local unitary cluster Jastrow (LUCJ) ansatz - ffsim 0.0.48.dev0 @@ -331,9 +331,9 @@

How to simulate the local unitary cluster Jastrow (LUCJ) ansatz
 converged SCF energy = -77.8266321248745
-Parsing /tmp/tmpjk2lvol7
-converged SCF energy = -77.8266321248745
-CASCI E = -77.8742165643863  E(CI) = -4.02122442107772  S^2 = 0.0000000
+Parsing /tmp/tmpipmpgn90
+converged SCF energy = -77.8266321248744
+CASCI E = -77.8742165643862  E(CI) = -4.02122442107773  S^2 = 0.0000000
 norb = 4
 nelec = (2, 2)
 
@@ -343,7 +343,7 @@

How to simulate the local unitary cluster Jastrow (LUCJ) ansatz
@@ -435,10 +435,10 @@

General UCJ ansatz\n", + "Overwritten attributes get_hcore get_ovlp of \n", "/home/runner/work/ffsim/ffsim/.tox/docs/lib/python3.12/site-packages/pyscf/gto/mole.py:1294: UserWarning: Function mol.dumps drops attribute energy_nuc because it is not JSON-serializable\n", " warnings.warn(msg)\n", "/home/runner/work/ffsim/ffsim/.tox/docs/lib/python3.12/site-packages/pyscf/gto/mole.py:1294: UserWarning: Function mol.dumps drops attribute intor_symmetric because it is not JSON-serializable\n", @@ -123,10 +123,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:48.771902Z", - "iopub.status.busy": "2024-10-13T14:00:48.771348Z", - "iopub.status.idle": "2024-10-13T14:00:48.842394Z", - "shell.execute_reply": "2024-10-13T14:00:48.841838Z" + "iopub.execute_input": "2024-10-14T00:40:14.136170Z", + "iopub.status.busy": "2024-10-14T00:40:14.135625Z", + "iopub.status.idle": "2024-10-14T00:40:14.206018Z", + "shell.execute_reply": "2024-10-14T00:40:14.205383Z" } }, "outputs": [ @@ -134,14 +134,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "E(CCSD) = -77.87421536374038 E_corr = -0.0475832388658593\n" + "E(CCSD) = -77.87421536374038 E_corr = -0.04758323886585292\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialization: -77.8716002481628\n" + "Energy at initialization: -77.87160024816276\n" ] }, { @@ -189,10 +189,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:00:48.845165Z", - "iopub.status.busy": "2024-10-13T14:00:48.844580Z", - "iopub.status.idle": "2024-10-13T14:02:33.385445Z", - "shell.execute_reply": "2024-10-13T14:02:33.384855Z" + "iopub.execute_input": "2024-10-14T00:40:14.208416Z", + "iopub.status.busy": "2024-10-14T00:40:14.208145Z", + "iopub.status.idle": "2024-10-14T00:41:59.619519Z", + "shell.execute_reply": "2024-10-14T00:41:59.618957Z" } }, "outputs": [ @@ -204,10 +204,10 @@ " message: STOP: TOTAL NO. of ITERATIONS REACHED LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.87387392160812\n", - " x: [ 4.027e-04 -1.355e+00 ... 1.028e-04 1.286e-01]\n", + " fun: -77.87387392107806\n", + " x: [-1.152e+00 1.172e-04 ... 2.137e-04 1.286e-01]\n", " nit: 10\n", - " jac: [ 2.842e-06 3.268e-05 ... -7.105e-06 1.421e-05]\n", + " jac: [-2.132e-05 -1.705e-05 ... 9.948e-06 2.558e-05]\n", " nfev: 949\n", " njev: 13\n", " hess_inv: <72x72 LbfgsInvHessProduct with dtype=float64>\n" @@ -251,10 +251,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:02:33.388440Z", - "iopub.status.busy": "2024-10-13T14:02:33.387917Z", - "iopub.status.idle": "2024-10-13T14:03:10.131727Z", - "shell.execute_reply": "2024-10-13T14:03:10.131138Z" + "iopub.execute_input": "2024-10-14T00:41:59.621624Z", + "iopub.status.busy": "2024-10-14T00:41:59.621329Z", + "iopub.status.idle": "2024-10-14T00:42:36.376455Z", + "shell.execute_reply": "2024-10-14T00:42:36.375865Z" } }, "outputs": [ @@ -266,10 +266,10 @@ " message: CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH\n", " success: True\n", " status: 0\n", - " fun: -77.87363426349258\n", - " x: [-1.597e-05 -1.355e+00 ... 3.522e-02 2.561e-01]\n", + " fun: -77.87363426228193\n", + " x: [-1.152e+00 1.000e-04 ... 3.520e-02 2.561e-01]\n", " nit: 5\n", - " jac: [-9.948e-06 -2.558e-05 ... 5.684e-06 0.000e+00]\n", + " jac: [ 8.527e-06 5.684e-06 ... 2.842e-06 2.842e-06]\n", " nfev: 329\n", " njev: 7\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" @@ -314,10 +314,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:10.134869Z", - "iopub.status.busy": "2024-10-13T14:03:10.134392Z", - "iopub.status.idle": "2024-10-13T14:03:26.645397Z", - "shell.execute_reply": "2024-10-13T14:03:26.644794Z" + "iopub.execute_input": "2024-10-14T00:42:36.380070Z", + "iopub.status.busy": "2024-10-14T00:42:36.379256Z", + "iopub.status.idle": "2024-10-14T00:42:52.186954Z", + "shell.execute_reply": "2024-10-14T00:42:52.186293Z" } }, "outputs": [ @@ -328,29 +328,29 @@ "Number of parameters: 46\n", " message: Convergence: Relative reduction of objective function <= ftol.\n", " success: True\n", - " fun: -77.87363432511088\n", - " x: [-3.313e-04 -1.355e+00 ... 3.487e-02 2.560e-01]\n", + " fun: -77.87363433774676\n", + " x: [-1.151e+00 -4.786e-04 ... 3.460e-02 2.562e-01]\n", " nit: 3\n", - " jac: [ 1.784e-07 2.931e-07 ... -1.786e-08 -8.184e-08]\n", - " nfev: 505\n", + " jac: [ 3.337e-07 5.792e-08 ... -1.024e-06 -2.342e-06]\n", + " nfev: 499\n", " njev: 4\n", - " nlinop: 321\n", + " nlinop: 315\n", "\n", "Iteration 1\n", - " Energy: -77.87363211276133\n", - " Norm of gradient: 0.001077175434025257\n", - " Regularization hyperparameter: 0.0019643765948696573\n", - " Variation hyperparameter: 0.9998325692268615\n", + " Energy: -77.87361987555248\n", + " Norm of gradient: 0.0032781409953260296\n", + " Regularization hyperparameter: 0.0010523491138414635\n", + " Variation hyperparameter: 0.9632214497840799\n", "Iteration 2\n", - " Energy: -77.87363431877952\n", - " Norm of gradient: 4.5063930555114564e-05\n", - " Regularization hyperparameter: 0.002588354198428117\n", - " Variation hyperparameter: 0.9998350010818127\n", + " Energy: -77.87363426607693\n", + " Norm of gradient: 0.00016343445189686165\n", + " Regularization hyperparameter: 0.003816852276304379\n", + " Variation hyperparameter: 0.9644176461515346\n", "Iteration 3\n", - " Energy: -77.87363432511088\n", - " Norm of gradient: 7.076943426386996e-06\n", - " Regularization hyperparameter: 0.002588354198428117\n", - " Variation hyperparameter: 0.9998350010818127\n" + " Energy: -77.87363433774676\n", + " Norm of gradient: 1.3736011916390138e-05\n", + " Regularization hyperparameter: 0.0033881655844765417\n", + " Variation hyperparameter: 0.9645028365517818\n" ] } ], diff --git a/dev/how-to-guides/qiskit-circuits.html b/dev/how-to-guides/qiskit-circuits.html index 7daa4f74a..f497a5935 100644 --- a/dev/how-to-guides/qiskit-circuits.html +++ b/dev/how-to-guides/qiskit-circuits.html @@ -5,7 +5,7 @@ - + How to build and transpile Qiskit quantum circuits - ffsim 0.0.48.dev0 @@ -391,7 +391,7 @@

Prepare Hartree-Fock state
-<qiskit.circuit.instructionset.InstructionSet at 0x7f3360558250>
+<qiskit.circuit.instructionset.InstructionSet at 0x7f5056069510>
 

@@ -420,7 +420,7 @@

Prepare Slater determinant
-<qiskit.circuit.instructionset.InstructionSet at 0x7f33604aa500>
+<qiskit.circuit.instructionset.InstructionSet at 0x7f505611d7e0>
 
@@ -447,7 +447,7 @@

Orbital rotation
-<qiskit.circuit.instructionset.InstructionSet at 0x7f33604aa620>
+<qiskit.circuit.instructionset.InstructionSet at 0x7f50567714e0>
 
@@ -469,7 +469,7 @@

Number operator sum evolution
-<qiskit.circuit.instructionset.InstructionSet at 0x7f336061a6b0>
+<qiskit.circuit.instructionset.InstructionSet at 0x7f505611dab0>
 
@@ -494,7 +494,7 @@

Diagonal Coulomb evolution
-<qiskit.circuit.instructionset.InstructionSet at 0x7f336044f850>
+<qiskit.circuit.instructionset.InstructionSet at 0x7f50560b6b60>
 
@@ -517,7 +517,7 @@

Spin-balanced unitary cluster Jastrow (UCJ) operator
-<qiskit.circuit.instructionset.InstructionSet at 0x7f33605581c0>
+<qiskit.circuit.instructionset.InstructionSet at 0x7f5056069090>
 
@@ -540,7 +540,7 @@

Spin-unbalanced unitary cluster Jastrow (UCJ) operator
-<qiskit.circuit.instructionset.InstructionSet at 0x7f336044f3d0>
+<qiskit.circuit.instructionset.InstructionSet at 0x7f505611e4d0>
 
@@ -567,7 +567,7 @@

Trotter simulation of double-factorized Hamiltonian
-<qiskit.circuit.instructionset.InstructionSet at 0x7f336044d6c0>
+<qiskit.circuit.instructionset.InstructionSet at 0x7f505591c340>
 
diff --git a/dev/how-to-guides/qiskit-circuits.ipynb b/dev/how-to-guides/qiskit-circuits.ipynb index ba7bed5f1..3b87f8b5f 100644 --- a/dev/how-to-guides/qiskit-circuits.ipynb +++ b/dev/how-to-guides/qiskit-circuits.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:28.203177Z", - "iopub.status.busy": "2024-10-13T14:03:28.202988Z", - "iopub.status.idle": "2024-10-13T14:03:28.895458Z", - "shell.execute_reply": "2024-10-13T14:03:28.894919Z" + "iopub.execute_input": "2024-10-14T00:42:53.772124Z", + "iopub.status.busy": "2024-10-14T00:42:53.771940Z", + "iopub.status.idle": "2024-10-14T00:42:54.462955Z", + "shell.execute_reply": "2024-10-14T00:42:54.462433Z" } }, "outputs": [], @@ -54,10 +54,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:28.898150Z", - "iopub.status.busy": "2024-10-13T14:03:28.897611Z", - "iopub.status.idle": "2024-10-13T14:03:29.469998Z", - "shell.execute_reply": "2024-10-13T14:03:29.469462Z" + "iopub.execute_input": "2024-10-14T00:42:54.465357Z", + "iopub.status.busy": "2024-10-14T00:42:54.464876Z", + "iopub.status.idle": "2024-10-14T00:42:55.034004Z", + "shell.execute_reply": "2024-10-14T00:42:55.033358Z" } }, "outputs": [ @@ -103,10 +103,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.472205Z", - "iopub.status.busy": "2024-10-13T14:03:29.471728Z", - "iopub.status.idle": "2024-10-13T14:03:29.531029Z", - "shell.execute_reply": "2024-10-13T14:03:29.530408Z" + "iopub.execute_input": "2024-10-14T00:42:55.036360Z", + "iopub.status.busy": "2024-10-14T00:42:55.035743Z", + "iopub.status.idle": "2024-10-14T00:42:55.095320Z", + "shell.execute_reply": "2024-10-14T00:42:55.094838Z" } }, "outputs": [ @@ -160,17 +160,17 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.533223Z", - "iopub.status.busy": "2024-10-13T14:03:29.532838Z", - "iopub.status.idle": "2024-10-13T14:03:29.536833Z", - "shell.execute_reply": "2024-10-13T14:03:29.536357Z" + "iopub.execute_input": "2024-10-14T00:42:55.097545Z", + "iopub.status.busy": "2024-10-14T00:42:55.096992Z", + "iopub.status.idle": "2024-10-14T00:42:55.101329Z", + "shell.execute_reply": "2024-10-14T00:42:55.100740Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -195,17 +195,17 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.538551Z", - "iopub.status.busy": "2024-10-13T14:03:29.538357Z", - "iopub.status.idle": "2024-10-13T14:03:29.543424Z", - "shell.execute_reply": "2024-10-13T14:03:29.542825Z" + "iopub.execute_input": "2024-10-14T00:42:55.103406Z", + "iopub.status.busy": "2024-10-14T00:42:55.103030Z", + "iopub.status.idle": "2024-10-14T00:42:55.107712Z", + "shell.execute_reply": "2024-10-14T00:42:55.107242Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -242,17 +242,17 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.545620Z", - "iopub.status.busy": "2024-10-13T14:03:29.545257Z", - "iopub.status.idle": "2024-10-13T14:03:29.550094Z", - "shell.execute_reply": "2024-10-13T14:03:29.549486Z" + "iopub.execute_input": "2024-10-14T00:42:55.109501Z", + "iopub.status.busy": "2024-10-14T00:42:55.109311Z", + "iopub.status.idle": "2024-10-14T00:42:55.113852Z", + "shell.execute_reply": "2024-10-14T00:42:55.113385Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -279,17 +279,17 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.552047Z", - "iopub.status.busy": "2024-10-13T14:03:29.551858Z", - "iopub.status.idle": "2024-10-13T14:03:29.556306Z", - "shell.execute_reply": "2024-10-13T14:03:29.555695Z" + "iopub.execute_input": "2024-10-14T00:42:55.115795Z", + "iopub.status.busy": "2024-10-14T00:42:55.115601Z", + "iopub.status.idle": "2024-10-14T00:42:55.119962Z", + "shell.execute_reply": "2024-10-14T00:42:55.119358Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -315,17 +315,17 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.558383Z", - "iopub.status.busy": "2024-10-13T14:03:29.558016Z", - "iopub.status.idle": "2024-10-13T14:03:29.562462Z", - "shell.execute_reply": "2024-10-13T14:03:29.561853Z" + "iopub.execute_input": "2024-10-14T00:42:55.122005Z", + "iopub.status.busy": "2024-10-14T00:42:55.121642Z", + "iopub.status.idle": "2024-10-14T00:42:55.126078Z", + "shell.execute_reply": "2024-10-14T00:42:55.125468Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -354,17 +354,17 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.564222Z", - "iopub.status.busy": "2024-10-13T14:03:29.564033Z", - "iopub.status.idle": "2024-10-13T14:03:29.569297Z", - "shell.execute_reply": "2024-10-13T14:03:29.568726Z" + "iopub.execute_input": "2024-10-14T00:42:55.127774Z", + "iopub.status.busy": "2024-10-14T00:42:55.127592Z", + "iopub.status.idle": "2024-10-14T00:42:55.132445Z", + "shell.execute_reply": "2024-10-14T00:42:55.131986Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 9, @@ -391,17 +391,17 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.571475Z", - "iopub.status.busy": "2024-10-13T14:03:29.570979Z", - "iopub.status.idle": "2024-10-13T14:03:29.576527Z", - "shell.execute_reply": "2024-10-13T14:03:29.575916Z" + "iopub.execute_input": "2024-10-14T00:42:55.134370Z", + "iopub.status.busy": "2024-10-14T00:42:55.134025Z", + "iopub.status.idle": "2024-10-14T00:42:55.139402Z", + "shell.execute_reply": "2024-10-14T00:42:55.138817Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 10, @@ -428,17 +428,17 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:29.578297Z", - "iopub.status.busy": "2024-10-13T14:03:29.578110Z", - "iopub.status.idle": "2024-10-13T14:03:29.584130Z", - "shell.execute_reply": "2024-10-13T14:03:29.583534Z" + "iopub.execute_input": "2024-10-14T00:42:55.141282Z", + "iopub.status.busy": "2024-10-14T00:42:55.140946Z", + "iopub.status.idle": "2024-10-14T00:42:55.146515Z", + "shell.execute_reply": "2024-10-14T00:42:55.146056Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 11, diff --git a/dev/how-to-guides/qiskit-sampler.html b/dev/how-to-guides/qiskit-sampler.html index 732869164..2f8a0c29b 100644 --- a/dev/how-to-guides/qiskit-sampler.html +++ b/dev/how-to-guides/qiskit-sampler.html @@ -5,7 +5,7 @@ - + How to use ffsim’s Qiskit Sampler primitive - ffsim 0.0.48.dev0 @@ -459,7 +459,7 @@

Sampling from an LUCJ circuit for a closed-shell molecule @@ -555,13 +555,13 @@

Sampling from an LUCJ circuit for an open-shell molecule
 SCF not converged.
-SCF energy = -75.3484557074251
+SCF energy = -75.3484557082523
 norb = 11
 nelec = (5, 4)
 
 WARN: RCCSD method does not support ROHF method. ROHF object is converted to UHF object and UCCSD method is called.
 
-E(UCCSD) = -75.45619739119564  E_corr = -0.1077416837705262
+E(UCCSD) = -75.45619739104838  E_corr = -0.1077416827960702
 
diff --git a/dev/how-to-guides/qiskit-sampler.ipynb b/dev/how-to-guides/qiskit-sampler.ipynb index e5bb1992a..bb1620ad1 100644 --- a/dev/how-to-guides/qiskit-sampler.ipynb +++ b/dev/how-to-guides/qiskit-sampler.ipynb @@ -18,10 +18,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:31.480743Z", - "iopub.status.busy": "2024-10-13T14:03:31.480546Z", - "iopub.status.idle": "2024-10-13T14:03:32.174050Z", - "shell.execute_reply": "2024-10-13T14:03:32.173413Z" + "iopub.execute_input": "2024-10-14T00:42:57.117696Z", + "iopub.status.busy": "2024-10-14T00:42:57.117242Z", + "iopub.status.idle": "2024-10-14T00:42:57.808414Z", + "shell.execute_reply": "2024-10-14T00:42:57.807890Z" } }, "outputs": [], @@ -71,10 +71,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:32.176657Z", - "iopub.status.busy": "2024-10-13T14:03:32.176209Z", - "iopub.status.idle": "2024-10-13T14:03:32.240789Z", - "shell.execute_reply": "2024-10-13T14:03:32.240270Z" + "iopub.execute_input": "2024-10-14T00:42:57.810883Z", + "iopub.status.busy": "2024-10-14T00:42:57.810389Z", + "iopub.status.idle": "2024-10-14T00:42:57.873939Z", + "shell.execute_reply": "2024-10-14T00:42:57.873468Z" } }, "outputs": [ @@ -154,10 +154,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:32.243011Z", - "iopub.status.busy": "2024-10-13T14:03:32.242635Z", - "iopub.status.idle": "2024-10-13T14:03:32.578780Z", - "shell.execute_reply": "2024-10-13T14:03:32.578250Z" + "iopub.execute_input": "2024-10-14T00:42:57.876054Z", + "iopub.status.busy": "2024-10-14T00:42:57.875704Z", + "iopub.status.idle": "2024-10-14T00:42:58.151170Z", + "shell.execute_reply": "2024-10-14T00:42:58.150544Z" } }, "outputs": [ @@ -174,7 +174,7 @@ "text": [ "norb = 14\n", "nelec = (3, 3)\n", - "E(CCSD) = -108.9630419334855 E_corr = -0.1278053627110065\n" + "E(CCSD) = -108.9630419334855 E_corr = -0.1278053627110062\n" ] }, { @@ -276,10 +276,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:32.581235Z", - "iopub.status.busy": "2024-10-13T14:03:32.580707Z", - "iopub.status.idle": "2024-10-13T14:03:33.123823Z", - "shell.execute_reply": "2024-10-13T14:03:33.123302Z" + "iopub.execute_input": "2024-10-14T00:42:58.153142Z", + "iopub.status.busy": "2024-10-14T00:42:58.152950Z", + "iopub.status.idle": "2024-10-14T00:42:58.697508Z", + "shell.execute_reply": "2024-10-14T00:42:58.696968Z" } }, "outputs": [ @@ -294,7 +294,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "SCF energy = -75.3484557074251\n" + "SCF energy = -75.3484557082523\n" ] }, { @@ -312,7 +312,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "E(UCCSD) = -75.45619739119564 E_corr = -0.1077416837705262\n" + "E(UCCSD) = -75.45619739104838 E_corr = -0.1077416827960702\n" ] }, { diff --git a/dev/index.html b/dev/index.html index d81b3eac5..9a0389331 100644 --- a/dev/index.html +++ b/dev/index.html @@ -5,7 +5,7 @@ - + ffsim 0.0.48.dev0 diff --git a/dev/install.html b/dev/install.html index 7d35eea69..4d09707b8 100644 --- a/dev/install.html +++ b/dev/install.html @@ -5,7 +5,7 @@ - + Installation - ffsim 0.0.48.dev0 diff --git a/dev/py-modindex.html b/dev/py-modindex.html index 00771510c..410e20a93 100644 --- a/dev/py-modindex.html +++ b/dev/py-modindex.html @@ -4,7 +4,7 @@ - Python Module Index - ffsim 0.0.48.dev0 + Python Module Index - ffsim 0.0.48.dev0 diff --git a/dev/search.html b/dev/search.html index 32b9361d5..6b9c9fb1b 100644 --- a/dev/search.html +++ b/dev/search.html @@ -5,7 +5,7 @@ - + Search - ffsim 0.0.48.dev0 diff --git a/dev/searchindex.js b/dev/searchindex.js index 6a86627c6..805d51ebb 100644 --- a/dev/searchindex.js +++ b/dev/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"API reference": [[7, null]], "Application to the double-factorized Hamiltonian": [[8, "Application-to-the-double-factorized-Hamiltonian"]], "Application to time evolution via Trotter-Suzuki formulas": [[8, "Application-to-time-evolution-via-Trotter-Suzuki-formulas"]], "Brief background on Trotter-Suzuki formulas": [[8, "Brief-background-on-Trotter-Suzuki-formulas"]], "Build a molecule": [[15, "Build-a-molecule"]], "Build the Hamiltonian": [[23, "Build-the-Hamiltonian"]], "Choose reference occupations": [[15, "Choose-reference-occupations"]], "Circuit transpilation": [[19, "Circuit-transpilation"]], "Citing ffsim": [[21, "citing-ffsim"]], "Code example": [[21, "code-example"]], "Compute energy": [[15, "Compute-energy"]], "Contents": [[21, "contents"]], "Criteria for circuits that FfsimSampler can sample": [[20, "Criteria-for-circuits-that-FfsimSampler-can-sample"]], "Data representation": [[9, "Data-representation"]], "Diagonal Coulomb evolution": [[13, "Diagonal-Coulomb-evolution"], [19, "Diagonal-Coulomb-evolution"]], "Double-factorized representation": [[8, "Double-factorized-representation"]], "Double-factorized representation of the molecular Hamiltonian": [[8, null]], "Example of using FfsimSampler": [[20, "Example-of-using-FfsimSampler"]], "Explanations": [[10, null]], "Gates": [[14, "Gates"]], "General UCJ ansatz": [[18, "General-UCJ-ansatz"]], "Hamiltonians": [[9, null]], "Hartree-Fock and Slater determinant preparation": [[13, "Hartree-Fock-and-Slater-determinant-preparation"]], "How to build and transpile Qiskit quantum circuits": [[19, null]], "How to simulate entanglement forging": [[15, null]], "How to simulate the local unitary cluster Jastrow (LUCJ) ansatz": [[18, null]], "How to use ffsim\u2019s Qiskit Sampler primitive": [[20, null]], "How to use the FermionOperator class": [[16, null]], "How-to guides": [[17, null]], "Implement Trotter simulation": [[23, "Implement-Trotter-simulation"]], "Implementing Trotter simulation of the double-factorized Hamiltonian": [[23, null]], "Initialize ansatz operator": [[15, "Initialize-ansatz-operator"]], "Install from source": [[22, "install-from-source"]], "Installation": [[21, "installation"], [22, null]], "LUCJ ansatz": [[18, "LUCJ-ansatz"]], "Locality in the UCJ operator": [[13, "Locality-in-the-UCJ-operator"]], "Merging orbital rotations": [[13, "Merging-orbital-rotations"]], "More examples": [[20, "More-examples"]], "Number operator sum evolution": [[13, "Number-operator-sum-evolution"], [19, "Number-operator-sum-evolution"]], "Operator action via SciPy LinearOperators": [[9, "Operator-action-via-SciPy-LinearOperators"]], "Optimize energy": [[15, "Optimize-energy"]], "Optimize with the linear method": [[18, "Optimize-with-the-linear-method"]], "Orbital rotation": [[13, "Orbital-rotation"], [19, "Orbital-rotation"]], "Orbital rotations": [[12, "Orbital-rotations"]], "Orbital rotations and quadratic Hamiltonians": [[12, null]], "Overview of gates": [[19, "Overview-of-gates"]], "Pip install": [[22, "pip-install"]], "Prepare Hartree-Fock state": [[19, "Prepare-Hartree-Fock-state"]], "Prepare Slater determinant": [[19, "Prepare-Slater-determinant"]], "Qubit gate decompositions of fermionic gates": [[13, null]], "Sampling from an LUCJ circuit for a closed-shell molecule": [[20, "Sampling-from-an-LUCJ-circuit-for-a-closed-shell-molecule"]], "Sampling from an LUCJ circuit for an open-shell molecule": [[20, "Sampling-from-an-LUCJ-circuit-for-an-open-shell-molecule"]], "Spin-balanced and spin-unbalanced ansatzes": [[11, "Spin-balanced-and-spin-unbalanced-ansatzes"]], "Spin-balanced unitary cluster Jastrow (UCJ) operator": [[19, "Spin-balanced-unitary-cluster-Jastrow-(UCJ)-operator"]], "Spin-unbalanced unitary cluster Jastrow (UCJ) operator": [[19, "Spin-unbalanced-unitary-cluster-Jastrow-(UCJ)-operator"]], "State preparation gates": [[19, "State-preparation-gates"]], "State vectors": [[14, "State-vectors"]], "State vectors and gates": [[14, null]], "The general unitary cluster Jastrow (UCJ) ansatz": [[11, "The-general-unitary-cluster-Jastrow-(UCJ)-ansatz"]], "The local UCJ (LUCJ) ansatz": [[11, "The-local-UCJ-(LUCJ)-ansatz"]], "The local unitary cluster Jastrow (LUCJ) ansatz": [[11, null]], "Time evolution by a quadratic Hamiltonian": [[12, "Time-evolution-by-a-quadratic-Hamiltonian"]], "Treating spinless fermions": [[14, "Treating-spinless-fermions"]], "Trotter simulation of double-factorized Hamiltonian": [[13, "Trotter-simulation-of-double-factorized-Hamiltonian"], [19, "Trotter-simulation-of-double-factorized-Hamiltonian"]], "Tutorials": [[24, null]], "Unitary cluster Jastrow (UCJ) operator": [[13, "Unitary-cluster-Jastrow-(UCJ)-operator"]], "Unitary transformation gates": [[19, "Unitary-transformation-gates"]], "Use within Docker": [[22, "use-within-docker"]], "ffsim": [[0, null], [21, null]], "ffsim.contract": [[1, null]], "ffsim.linalg": [[2, null]], "ffsim.optimize": [[3, null]], "ffsim.qiskit": [[4, null]], "ffsim.random": [[5, null]], "ffsim.testing": [[6, null]]}, "docnames": ["api/ffsim", "api/ffsim.contract", "api/ffsim.linalg", "api/ffsim.optimize", "api/ffsim.qiskit", "api/ffsim.random", "api/ffsim.testing", "api/index", "explanations/double-factorized", "explanations/hamiltonians", "explanations/index", "explanations/lucj", "explanations/orbital-rotation", "explanations/qiskit-gate-decompositions", "explanations/state-vectors-and-gates", "how-to-guides/entanglement-forging", "how-to-guides/fermion-operator", "how-to-guides/index", "how-to-guides/lucj", "how-to-guides/qiskit-circuits", "how-to-guides/qiskit-sampler", "index", "install", "tutorials/double-factorized-trotter", "tutorials/index"], "envversion": {"nbsphinx": 4, "sphinx": 64, "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}, "filenames": ["api/ffsim.rst", "api/ffsim.contract.rst", "api/ffsim.linalg.rst", "api/ffsim.optimize.rst", "api/ffsim.qiskit.rst", "api/ffsim.random.rst", "api/ffsim.testing.rst", "api/index.md", "explanations/double-factorized.ipynb", "explanations/hamiltonians.ipynb", "explanations/index.md", "explanations/lucj.ipynb", "explanations/orbital-rotation.ipynb", "explanations/qiskit-gate-decompositions.ipynb", "explanations/state-vectors-and-gates.ipynb", "how-to-guides/entanglement-forging.ipynb", "how-to-guides/fermion-operator.ipynb", "how-to-guides/index.md", "how-to-guides/lucj.ipynb", "how-to-guides/qiskit-circuits.ipynb", "how-to-guides/qiskit-sampler.ipynb", "index.md", "install.md", "tutorials/double-factorized-trotter.ipynb", "tutorials/index.md"], "indexentries": {"__init__() (ffsim.qiskit.diagcoulombevolutionjw method)": [[4, "ffsim.qiskit.DiagCoulombEvolutionJW.__init__", false]], "__init__() (ffsim.qiskit.diagcoulombevolutionspinlessjw method)": [[4, "ffsim.qiskit.DiagCoulombEvolutionSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.dropnegligible method)": [[4, "ffsim.qiskit.DropNegligible.__init__", false]], "__init__() (ffsim.qiskit.ffsimsampler method)": [[4, "ffsim.qiskit.FfsimSampler.__init__", false]], "__init__() (ffsim.qiskit.givensansatzoperatorjw method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorJW.__init__", false]], "__init__() (ffsim.qiskit.givensansatzoperatorspinlessjw method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.givensansatzopjw method)": [[4, "ffsim.qiskit.GivensAnsatzOpJW.__init__", false]], "__init__() (ffsim.qiskit.givensansatzopspinlessjw method)": [[4, "ffsim.qiskit.GivensAnsatzOpSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.numnumansatzopspinbalancedjw method)": [[4, "ffsim.qiskit.NumNumAnsatzOpSpinBalancedJW.__init__", false]], "__init__() (ffsim.qiskit.numopsumevolutionjw method)": [[4, "ffsim.qiskit.NumOpSumEvolutionJW.__init__", false]], "__init__() (ffsim.qiskit.numopsumevolutionspinlessjw method)": [[4, "ffsim.qiskit.NumOpSumEvolutionSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.orbitalrotationjw method)": [[4, "ffsim.qiskit.OrbitalRotationJW.__init__", false]], "__init__() (ffsim.qiskit.orbitalrotationspinlessjw method)": [[4, "ffsim.qiskit.OrbitalRotationSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.preparehartreefockjw method)": [[4, "ffsim.qiskit.PrepareHartreeFockJW.__init__", false]], "__init__() (ffsim.qiskit.preparehartreefockspinlessjw method)": [[4, "ffsim.qiskit.PrepareHartreeFockSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.prepareslaterdeterminantjw method)": [[4, "ffsim.qiskit.PrepareSlaterDeterminantJW.__init__", false]], "__init__() (ffsim.qiskit.prepareslaterdeterminantspinlessjw method)": [[4, "ffsim.qiskit.PrepareSlaterDeterminantSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.simulatetrotterdiagcoulombsplitopjw method)": [[4, "ffsim.qiskit.SimulateTrotterDiagCoulombSplitOpJW.__init__", false]], "__init__() (ffsim.qiskit.simulatetrotterdoublefactorizedjw method)": [[4, "ffsim.qiskit.SimulateTrotterDoubleFactorizedJW.__init__", false]], "__init__() (ffsim.qiskit.ucjoperatorjw method)": [[4, "ffsim.qiskit.UCJOperatorJW.__init__", false]], "__init__() (ffsim.qiskit.ucjopspinbalancedjw method)": [[4, "ffsim.qiskit.UCJOpSpinBalancedJW.__init__", false]], "__init__() (ffsim.qiskit.ucjopspinlessjw method)": [[4, "ffsim.qiskit.UCJOpSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.ucjopspinunbalancedjw method)": [[4, "ffsim.qiskit.UCJOpSpinUnbalancedJW.__init__", false]], "__init_subclass__() (ffsim.qiskit.givensansatzoperatorjw method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorJW.__init_subclass__", false]], "__init_subclass__() (ffsim.qiskit.givensansatzoperatorspinlessjw method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW.__init_subclass__", false]], "__init_subclass__() (ffsim.qiskit.ucjoperatorjw method)": [[4, "ffsim.qiskit.UCJOperatorJW.__init_subclass__", false]], "__new__() (ffsim.qiskit.givensansatzoperatorjw static method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorJW.__new__", false]], "__new__() (ffsim.qiskit.givensansatzoperatorspinlessjw static method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW.__new__", false]], "__new__() (ffsim.qiskit.ucjoperatorjw static method)": [[4, "ffsim.qiskit.UCJOperatorJW.__new__", false]], "action (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.action", false]], "active_space (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.active_space", false]], "addresses_to_strings() (in module ffsim)": [[0, "ffsim.addresses_to_strings", false]], "alpha (ffsim.spin attribute)": [[0, "ffsim.Spin.ALPHA", false]], "alpha_and_beta (ffsim.spin attribute)": [[0, "ffsim.Spin.ALPHA_AND_BETA", false]], "apply_diag_coulomb_evolution() (in module ffsim)": [[0, "ffsim.apply_diag_coulomb_evolution", false]], "apply_fsim_gate() (in module ffsim)": [[0, "ffsim.apply_fsim_gate", false]], "apply_fswap_gate() (in module ffsim)": [[0, "ffsim.apply_fswap_gate", false]], "apply_givens_rotation() (in module ffsim)": [[0, "ffsim.apply_givens_rotation", false]], "apply_hop_gate() (in module ffsim)": [[0, "ffsim.apply_hop_gate", false]], "apply_matrix_to_slices() (in module ffsim.linalg)": [[2, "ffsim.linalg.apply_matrix_to_slices", false]], "apply_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_interaction", false]], "apply_num_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_num_interaction", false]], "apply_num_op_prod_interaction() (in module ffsim)": [[0, "ffsim.apply_num_op_prod_interaction", false]], "apply_num_op_sum_evolution() (in module ffsim)": [[0, "ffsim.apply_num_op_sum_evolution", false]], "apply_on_site_interaction() (in module ffsim)": [[0, "ffsim.apply_on_site_interaction", false]], "apply_orbital_rotation() (in module ffsim)": [[0, "ffsim.apply_orbital_rotation", false]], "apply_tunneling_interaction() (in module ffsim)": [[0, "ffsim.apply_tunneling_interaction", false]], "apply_unitary() (in module ffsim)": [[0, "ffsim.apply_unitary", false]], "approx_eq() (in module ffsim)": [[0, "ffsim.approx_eq", false]], "assert_allclose_up_to_global_phase() (in module ffsim.testing)": [[6, "ffsim.testing.assert_allclose_up_to_global_phase", false]], "atom (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.atom", false]], "basis (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.basis", false]], "beta (ffsim.spin attribute)": [[0, "ffsim.Spin.BETA", false]], "bit_array (ffsim.bitstringtype attribute)": [[0, "ffsim.BitstringType.BIT_ARRAY", false]], "bitstringtype (class in ffsim)": [[0, "ffsim.BitstringType", false]], "c (ffsim.linalg.givensrotation attribute)": [[2, "ffsim.linalg.GivensRotation.c", false]], "ccsd_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_energy", false]], "ccsd_t1 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_t1", false]], "ccsd_t2 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_t2", false]], "cisd_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.cisd_energy", false]], "cisd_vec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.cisd_vec", false]], "coeffs (ffsim.productstatesum attribute)": [[0, "ffsim.ProductStateSum.coeffs", false]], "conserves_particle_number() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_particle_number", false]], "conserves_spin_z() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_spin_z", false]], "constant (ffsim.diagonalcoulombhamiltonian attribute)": [[0, "ffsim.DiagonalCoulombHamiltonian.constant", false]], "constant (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.constant", false]], "constant (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.constant", false]], "constant (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.constant", false]], "contract_diag_coulomb() (in module ffsim.contract)": [[1, "ffsim.contract.contract_diag_coulomb", false]], "contract_num_op_sum() (in module ffsim.contract)": [[1, "ffsim.contract.contract_num_op_sum", false]], "contract_one_body() (in module ffsim.contract)": [[1, "ffsim.contract.contract_one_body", false]], "core_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.core_energy", false]], "cre() (in module ffsim)": [[0, "ffsim.cre", false]], "cre_a() (in module ffsim)": [[0, "ffsim.cre_a", false]], "cre_b() (in module ffsim)": [[0, "ffsim.cre_b", false]], "des() (in module ffsim)": [[0, "ffsim.des", false]], "des_a() (in module ffsim)": [[0, "ffsim.des_a", false]], "des_b() (in module ffsim)": [[0, "ffsim.des_b", false]], "diag() (in module ffsim)": [[0, "ffsim.diag", false]], "diag_coulomb_linop() (in module ffsim.contract)": [[1, "ffsim.contract.diag_coulomb_linop", false]], "diag_coulomb_mats (ffsim.diagonalcoulombhamiltonian attribute)": [[0, "ffsim.DiagonalCoulombHamiltonian.diag_coulomb_mats", false]], "diag_coulomb_mats (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.diag_coulomb_mats", false]], "diag_coulomb_mats (ffsim.ucjopspinbalanced attribute)": [[0, "ffsim.UCJOpSpinBalanced.diag_coulomb_mats", false]], "diag_coulomb_mats (ffsim.ucjopspinless attribute)": [[0, "ffsim.UCJOpSpinless.diag_coulomb_mats", false]], "diag_coulomb_mats (ffsim.ucjopspinunbalanced attribute)": [[0, "ffsim.UCJOpSpinUnbalanced.diag_coulomb_mats", false]], "diag_coulomb_mats_alpha_alpha (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.diag_coulomb_mats_alpha_alpha", false]], "diag_coulomb_mats_alpha_alpha (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_alpha", false]], "diag_coulomb_mats_alpha_beta (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.diag_coulomb_mats_alpha_beta", false]], "diag_coulomb_mats_alpha_beta (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_beta", false]], "diagcoulombevolutionjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.DiagCoulombEvolutionJW", false]], "diagcoulombevolutionspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.DiagCoulombEvolutionSpinlessJW", false]], "diagonalcoulombhamiltonian (class in ffsim)": [[0, "ffsim.DiagonalCoulombHamiltonian", false]], "dim() (in module ffsim)": [[0, "ffsim.dim", false]], "dims() (in module ffsim)": [[0, "ffsim.dims", false]], "dipole_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.dipole_integrals", false]], "double_factorized() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized", false]], "double_factorized_t2() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized_t2", false]], "double_factorized_t2_alpha_beta() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized_t2_alpha_beta", false]], "doublefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.DoubleFactorizedHamiltonian", false]], "dropnegligible (class in ffsim.qiskit)": [[4, "ffsim.qiskit.DropNegligible", false]], "expectation_one_body_power() (in module ffsim)": [[0, "ffsim.expectation_one_body_power", false]], "expectation_one_body_product() (in module ffsim)": [[0, "ffsim.expectation_one_body_product", false]], "expectation_product_state() (ffsim.singlefactorizedhamiltonian method)": [[0, "ffsim.SingleFactorizedHamiltonian.expectation_product_state", false]], "expm_multiply_taylor() (in module ffsim.linalg)": [[2, "ffsim.linalg.expm_multiply_taylor", false]], "fci_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.fci_energy", false]], "fci_vec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.fci_vec", false]], "fermi_hubbard_1d() (in module ffsim)": [[0, "ffsim.fermi_hubbard_1d", false]], "fermi_hubbard_2d() (in module ffsim)": [[0, "ffsim.fermi_hubbard_2d", false]], "fermion_operator() (in module ffsim)": [[0, "ffsim.fermion_operator", false]], "fermionaction (class in ffsim)": [[0, "ffsim.FermionAction", false]], "fermionoperator (class in ffsim)": [[0, "ffsim.FermionOperator", false]], "ffsim": [[0, "module-ffsim", false]], "ffsim.contract": [[1, "module-ffsim.contract", false]], "ffsim.linalg": [[2, "module-ffsim.linalg", false]], "ffsim.optimize": [[3, "module-ffsim.optimize", false]], "ffsim.qiskit": [[4, "module-ffsim.qiskit", false]], "ffsim.random": [[5, "module-ffsim.random", false]], "ffsim.testing": [[6, "module-ffsim.testing", false]], "ffsim_vec_to_qiskit_vec() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.ffsim_vec_to_qiskit_vec", false]], "ffsimsampler (class in ffsim.qiskit)": [[4, "ffsim.qiskit.FfsimSampler", false]], "final_orbital_rotation (ffsim.hopgateansatzoperator attribute)": [[0, "ffsim.HopGateAnsatzOperator.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.ucjopspinbalanced attribute)": [[0, "ffsim.UCJOpSpinBalanced.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.ucjopspinless attribute)": [[0, "ffsim.UCJOpSpinless.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.ucjopspinunbalanced attribute)": [[0, "ffsim.UCJOpSpinUnbalanced.final_orbital_rotation", false]], "final_state_vector() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.final_state_vector", false]], "from_diag_coulomb_mats() (ffsim.numnumansatzopspinbalanced static method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.from_diag_coulomb_mats", false]], "from_fcidump() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_fcidump", false]], "from_fcidump() (ffsim.molecularhamiltonian static method)": [[0, "ffsim.MolecularHamiltonian.from_fcidump", false]], "from_fermion_operator() (ffsim.diagonalcoulombhamiltonian static method)": [[0, "ffsim.DiagonalCoulombHamiltonian.from_fermion_operator", false]], "from_json() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_json", false]], "from_mole() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_mole", false]], "from_molecular_hamiltonian() (ffsim.doublefactorizedhamiltonian static method)": [[0, "ffsim.DoubleFactorizedHamiltonian.from_molecular_hamiltonian", false]], "from_molecular_hamiltonian() (ffsim.singlefactorizedhamiltonian static method)": [[0, "ffsim.SingleFactorizedHamiltonian.from_molecular_hamiltonian", false]], "from_orbital_rotation() (ffsim.givensansatzop static method)": [[0, "ffsim.GivensAnsatzOp.from_orbital_rotation", false]], "from_parameters() (ffsim.givensansatzop static method)": [[0, "ffsim.GivensAnsatzOp.from_parameters", false]], "from_parameters() (ffsim.givensansatzoperator static method)": [[0, "ffsim.GivensAnsatzOperator.from_parameters", false]], "from_parameters() (ffsim.hopgateansatzoperator static method)": [[0, "ffsim.HopGateAnsatzOperator.from_parameters", false]], "from_parameters() (ffsim.numnumansatzopspinbalanced static method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.from_parameters", false]], "from_parameters() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.from_parameters", false]], "from_parameters() (ffsim.uccsdoprestrictedreal static method)": [[0, "ffsim.UCCSDOpRestrictedReal.from_parameters", false]], "from_parameters() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_parameters", false]], "from_parameters() (ffsim.ucjopspinbalanced static method)": [[0, "ffsim.UCJOpSpinBalanced.from_parameters", false]], "from_parameters() (ffsim.ucjopspinless static method)": [[0, "ffsim.UCJOpSpinless.from_parameters", false]], "from_parameters() (ffsim.ucjopspinunbalanced static method)": [[0, "ffsim.UCJOpSpinUnbalanced.from_parameters", false]], "from_scf() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_scf", false]], "from_t_amplitudes() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.from_t_amplitudes", false]], "from_t_amplitudes() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_t_amplitudes", false]], "from_t_amplitudes() (ffsim.ucjopspinbalanced static method)": [[0, "ffsim.UCJOpSpinBalanced.from_t_amplitudes", false]], "from_t_amplitudes() (ffsim.ucjopspinless static method)": [[0, "ffsim.UCJOpSpinless.from_t_amplitudes", false]], "from_t_amplitudes() (ffsim.ucjopspinunbalanced static method)": [[0, "ffsim.UCJOpSpinUnbalanced.from_t_amplitudes", false]], "generate_norb_nelec() (in module ffsim.testing)": [[6, "ffsim.testing.generate_norb_nelec", false]], "generate_norb_nelec_spin() (in module ffsim.testing)": [[6, "ffsim.testing.generate_norb_nelec_spin", false]], "generate_norb_nocc() (in module ffsim.testing)": [[6, "ffsim.testing.generate_norb_nocc", false]], "generate_norb_spin() (in module ffsim.testing)": [[6, "ffsim.testing.generate_norb_spin", false]], "givens_decomposition() (in module ffsim.linalg)": [[2, "ffsim.linalg.givens_decomposition", false]], "givensansatzop (class in ffsim)": [[0, "ffsim.GivensAnsatzOp", false]], "givensansatzoperator (class in ffsim)": [[0, "ffsim.GivensAnsatzOperator", false]], "givensansatzoperatorjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.GivensAnsatzOperatorJW", false]], "givensansatzoperatorspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW", false]], "givensansatzopjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.GivensAnsatzOpJW", false]], "givensansatzopspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.GivensAnsatzOpSpinlessJW", false]], "givensrotation (class in ffsim.linalg)": [[2, "ffsim.linalg.GivensRotation", false]], "hamiltonian (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.hamiltonian", false]], "hartree_fock_state() (in module ffsim)": [[0, "ffsim.hartree_fock_state", false]], "hf_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.hf_energy", false]], "hf_mo_coeff (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.hf_mo_coeff", false]], "hf_mo_occ (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.hf_mo_occ", false]], "hopgateansatzoperator (class in ffsim)": [[0, "ffsim.HopGateAnsatzOperator", false]], "i (ffsim.linalg.givensrotation attribute)": [[2, "ffsim.linalg.GivensRotation.i", false]], "indices_to_strings() (in module ffsim)": [[0, "ffsim.indices_to_strings", false]], "init_cache() (in module ffsim)": [[0, "ffsim.init_cache", false]], "int (ffsim.bitstringtype attribute)": [[0, "ffsim.BitstringType.INT", false]], "interaction_pairs (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.interaction_pairs", false]], "interaction_pairs (ffsim.givensansatzoperator attribute)": [[0, "ffsim.GivensAnsatzOperator.interaction_pairs", false]], "interaction_pairs (ffsim.hopgateansatzoperator attribute)": [[0, "ffsim.HopGateAnsatzOperator.interaction_pairs", false]], "interaction_pairs (ffsim.numnumansatzopspinbalanced attribute)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.interaction_pairs", false]], "inverse() (ffsim.qiskit.diagcoulombevolutionjw method)": [[4, "ffsim.qiskit.DiagCoulombEvolutionJW.inverse", false]], "inverse() (ffsim.qiskit.diagcoulombevolutionspinlessjw method)": [[4, "ffsim.qiskit.DiagCoulombEvolutionSpinlessJW.inverse", false]], "inverse() (ffsim.qiskit.numopsumevolutionjw method)": [[4, "ffsim.qiskit.NumOpSumEvolutionJW.inverse", false]], "inverse() (ffsim.qiskit.numopsumevolutionspinlessjw method)": [[4, "ffsim.qiskit.NumOpSumEvolutionSpinlessJW.inverse", false]], "inverse() (ffsim.qiskit.orbitalrotationjw method)": [[4, "ffsim.qiskit.OrbitalRotationJW.inverse", false]], "inverse() (ffsim.qiskit.orbitalrotationspinlessjw method)": [[4, "ffsim.qiskit.OrbitalRotationSpinlessJW.inverse", false]], "is_antihermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_antihermitian", false]], "is_hermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_hermitian", false]], "is_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_orthogonal", false]], "is_real_symmetric() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_real_symmetric", false]], "is_special_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_special_orthogonal", false]], "is_unitary() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_unitary", false]], "j (ffsim.linalg.givensrotation attribute)": [[2, "ffsim.linalg.GivensRotation.j", false]], "jordan_wigner() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.jordan_wigner", false]], "linear_operator() (in module ffsim)": [[0, "ffsim.linear_operator", false]], "lup() (in module ffsim.linalg)": [[2, "ffsim.linalg.lup", false]], "many_body_order() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.many_body_order", false]], "match_global_phase() (in module ffsim.linalg)": [[2, "ffsim.linalg.match_global_phase", false]], "mergeorbitalrotations (class in ffsim.qiskit)": [[4, "ffsim.qiskit.MergeOrbitalRotations", false]], "minimize_linear_method() (in module ffsim.optimize)": [[3, "ffsim.optimize.minimize_linear_method", false]], "mo_coeff (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mo_coeff", false]], "mo_occ (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mo_occ", false]], "modified_cholesky() (in module ffsim.linalg)": [[2, "ffsim.linalg.modified_cholesky", false]], "module": [[0, "module-ffsim", false], [1, "module-ffsim.contract", false], [2, "module-ffsim.linalg", false], [3, "module-ffsim.optimize", false], [4, "module-ffsim.qiskit", false], [5, "module-ffsim.random", false], [6, "module-ffsim.testing", false]], "mole (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.mole", false]], "moleculardata (class in ffsim)": [[0, "ffsim.MolecularData", false]], "molecularhamiltonian (class in ffsim)": [[0, "ffsim.MolecularHamiltonian", false]], "mp2_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mp2_energy", false]], "mp2_t2 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mp2_t2", false]], "multireference_state() (in module ffsim)": [[0, "ffsim.multireference_state", false]], "multireference_state_prod() (in module ffsim)": [[0, "ffsim.multireference_state_prod", false]], "n_params() (ffsim.givensansatzop static method)": [[0, "ffsim.GivensAnsatzOp.n_params", false]], "n_params() (ffsim.numnumansatzopspinbalanced static method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.n_params", false]], "n_params() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.n_params", false]], "n_params() (ffsim.uccsdoprestrictedreal static method)": [[0, "ffsim.UCCSDOpRestrictedReal.n_params", false]], "n_params() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.n_params", false]], "n_params() (ffsim.ucjopspinbalanced static method)": [[0, "ffsim.UCJOpSpinBalanced.n_params", false]], "n_params() (ffsim.ucjopspinless static method)": [[0, "ffsim.UCJOpSpinless.n_params", false]], "n_params() (ffsim.ucjopspinunbalanced static method)": [[0, "ffsim.UCJOpSpinUnbalanced.n_params", false]], "n_reps (ffsim.realucjoperator property)": [[0, "ffsim.RealUCJOperator.n_reps", false]], "n_reps (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.n_reps", false]], "n_reps (ffsim.ucjopspinbalanced property)": [[0, "ffsim.UCJOpSpinBalanced.n_reps", false]], "n_reps (ffsim.ucjopspinless property)": [[0, "ffsim.UCJOpSpinless.n_reps", false]], "n_reps (ffsim.ucjopspinunbalanced property)": [[0, "ffsim.UCJOpSpinUnbalanced.n_reps", false]], "nelec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.nelec", false]], "nelec (ffsim.statevector attribute)": [[0, "ffsim.StateVector.nelec", false]], "norb (ffsim.diagonalcoulombhamiltonian property)": [[0, "ffsim.DiagonalCoulombHamiltonian.norb", false]], "norb (ffsim.doublefactorizedhamiltonian property)": [[0, "ffsim.DoubleFactorizedHamiltonian.norb", false]], "norb (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.norb", false]], "norb (ffsim.givensansatzoperator attribute)": [[0, "ffsim.GivensAnsatzOperator.norb", false]], "norb (ffsim.hopgateansatzoperator attribute)": [[0, "ffsim.HopGateAnsatzOperator.norb", false]], "norb (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.norb", false]], "norb (ffsim.molecularhamiltonian property)": [[0, "ffsim.MolecularHamiltonian.norb", false]], "norb (ffsim.numnumansatzopspinbalanced attribute)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.norb", false]], "norb (ffsim.realucjoperator property)": [[0, "ffsim.RealUCJOperator.norb", false]], "norb (ffsim.singlefactorizedhamiltonian property)": [[0, "ffsim.SingleFactorizedHamiltonian.norb", false]], "norb (ffsim.statevector attribute)": [[0, "ffsim.StateVector.norb", false]], "norb (ffsim.uccsdoprestrictedreal property)": [[0, "ffsim.UCCSDOpRestrictedReal.norb", false]], "norb (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.norb", false]], "norb (ffsim.ucjopspinbalanced property)": [[0, "ffsim.UCJOpSpinBalanced.norb", false]], "norb (ffsim.ucjopspinless property)": [[0, "ffsim.UCJOpSpinless.norb", false]], "norb (ffsim.ucjopspinunbalanced property)": [[0, "ffsim.UCJOpSpinUnbalanced.norb", false]], "normal_ordered() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.normal_ordered", false]], "num_op_sum_linop() (in module ffsim.contract)": [[1, "ffsim.contract.num_op_sum_linop", false]], "number_operator() (in module ffsim)": [[0, "ffsim.number_operator", false]], "numnumansatzopspinbalanced (class in ffsim)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced", false]], "numnumansatzopspinbalancedjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.NumNumAnsatzOpSpinBalancedJW", false]], "numopsumevolutionjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.NumOpSumEvolutionJW", false]], "numopsumevolutionspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.NumOpSumEvolutionSpinlessJW", false]], "one_body_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.one_body_integrals", false]], "one_body_linop() (in module ffsim.contract)": [[1, "ffsim.contract.one_body_linop", false]], "one_body_squares (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.one_body_squares", false]], "one_body_tensor (ffsim.diagonalcoulombhamiltonian attribute)": [[0, "ffsim.DiagonalCoulombHamiltonian.one_body_tensor", false]], "one_body_tensor (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.one_body_tensor", false]], "one_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.one_body_tensor", false]], "one_body_tensor (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.one_body_tensor", false]], "one_hot() (in module ffsim)": [[0, "ffsim.one_hot", false]], "one_hot() (in module ffsim.linalg)": [[2, "ffsim.linalg.one_hot", false]], "orb (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.orb", false]], "orbital_rotations (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.orbital_rotations", false]], "orbital_rotations (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.orbital_rotations", false]], "orbital_rotations (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.orbital_rotations", false]], "orbital_rotations (ffsim.ucjopspinbalanced attribute)": [[0, "ffsim.UCJOpSpinBalanced.orbital_rotations", false]], "orbital_rotations (ffsim.ucjopspinless attribute)": [[0, "ffsim.UCJOpSpinless.orbital_rotations", false]], "orbital_rotations (ffsim.ucjopspinunbalanced attribute)": [[0, "ffsim.UCJOpSpinUnbalanced.orbital_rotations", false]], "orbital_symmetries (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.orbital_symmetries", false]], "orbitalrotationjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.OrbitalRotationJW", false]], "orbitalrotationspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.OrbitalRotationSpinlessJW", false]], "phase_angles (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.phase_angles", false]], "phis (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.phis", false]], "pre_init (in module ffsim.qiskit)": [[4, "ffsim.qiskit.PRE_INIT", false]], "pre_init_passes() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.pre_init_passes", false]], "preparehartreefockjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.PrepareHartreeFockJW", false]], "preparehartreefockspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.PrepareHartreeFockSpinlessJW", false]], "prepareslaterdeterminantjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.PrepareSlaterDeterminantJW", false]], "prepareslaterdeterminantspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.PrepareSlaterDeterminantSpinlessJW", false]], "productstatesum (class in ffsim)": [[0, "ffsim.ProductStateSum", false]], "qiskit_vec_to_ffsim_vec() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.qiskit_vec_to_ffsim_vec", false]], "random_antihermitian() (in module ffsim.random)": [[5, "ffsim.random.random_antihermitian", false]], "random_diagonal_coulomb_hamiltonian() (in module ffsim.random)": [[5, "ffsim.random.random_diagonal_coulomb_hamiltonian", false]], "random_double_factorized_hamiltonian() (in module ffsim.random)": [[5, "ffsim.random.random_double_factorized_hamiltonian", false]], "random_fermion_hamiltonian() (in module ffsim.random)": [[5, "ffsim.random.random_fermion_hamiltonian", false]], "random_fermion_operator() (in module ffsim.random)": [[5, "ffsim.random.random_fermion_operator", false]], "random_hermitian() (in module ffsim.random)": [[5, "ffsim.random.random_hermitian", false]], "random_molecular_hamiltonian() (in module ffsim.random)": [[5, "ffsim.random.random_molecular_hamiltonian", false]], "random_nelec() (in module ffsim.testing)": [[6, "ffsim.testing.random_nelec", false]], "random_occupied_orbitals() (in module ffsim.testing)": [[6, "ffsim.testing.random_occupied_orbitals", false]], "random_orthogonal() (in module ffsim.random)": [[5, "ffsim.random.random_orthogonal", false]], "random_real_symmetric_matrix() (in module ffsim.random)": [[5, "ffsim.random.random_real_symmetric_matrix", false]], "random_special_orthogonal() (in module ffsim.random)": [[5, "ffsim.random.random_special_orthogonal", false]], "random_state_vector() (in module ffsim.random)": [[5, "ffsim.random.random_state_vector", false]], "random_statevector() (in module ffsim.random)": [[5, "ffsim.random.random_statevector", false]], "random_t2_amplitudes() (in module ffsim.random)": [[5, "ffsim.random.random_t2_amplitudes", false]], "random_two_body_tensor() (in module ffsim.random)": [[5, "ffsim.random.random_two_body_tensor", false]], "random_uccsd_restricted() (in module ffsim.random)": [[5, "ffsim.random.random_uccsd_restricted", false]], "random_ucj_op_spin_balanced() (in module ffsim.random)": [[5, "ffsim.random.random_ucj_op_spin_balanced", false]], "random_ucj_op_spin_unbalanced() (in module ffsim.random)": [[5, "ffsim.random.random_ucj_op_spin_unbalanced", false]], "random_ucj_op_spinless() (in module ffsim.random)": [[5, "ffsim.random.random_ucj_op_spinless", false]], "random_ucj_operator() (in module ffsim.random)": [[5, "ffsim.random.random_ucj_operator", false]], "random_unitary() (in module ffsim.random)": [[5, "ffsim.random.random_unitary", false]], "rdm() (in module ffsim)": [[0, "ffsim.rdm", false]], "rdms() (in module ffsim)": [[0, "ffsim.rdms", false]], "realucjoperator (class in ffsim)": [[0, "ffsim.RealUCJOperator", false]], "reduced_matrix() (in module ffsim.linalg)": [[2, "ffsim.linalg.reduced_matrix", false]], "reduced_matrix_product_states() (ffsim.singlefactorizedhamiltonian method)": [[0, "ffsim.SingleFactorizedHamiltonian.reduced_matrix_product_states", false]], "rotated() (ffsim.molecularhamiltonian method)": [[0, "ffsim.MolecularHamiltonian.rotated", false]], "run() (ffsim.qiskit.dropnegligible method)": [[4, "ffsim.qiskit.DropNegligible.run", false]], "run() (ffsim.qiskit.ffsimsampler method)": [[4, "ffsim.qiskit.FfsimSampler.run", false]], "run() (ffsim.qiskit.mergeorbitalrotations method)": [[4, "ffsim.qiskit.MergeOrbitalRotations.run", false]], "run_ccsd() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_ccsd", false]], "run_cisd() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_cisd", false]], "run_fci() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_fci", false]], "run_mp2() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_mp2", false]], "run_sci() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_sci", false]], "s (ffsim.linalg.givensrotation attribute)": [[2, "ffsim.linalg.GivensRotation.s", false]], "sample_slater_determinant() (in module ffsim)": [[0, "ffsim.sample_slater_determinant", false]], "sample_state_vector() (in module ffsim)": [[0, "ffsim.sample_state_vector", false]], "scf (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.scf", false]], "sci_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.sci_energy", false]], "sci_vec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.sci_vec", false]], "simulate_qdrift_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_qdrift_double_factorized", false]], "simulate_trotter_diag_coulomb_split_op() (in module ffsim)": [[0, "ffsim.simulate_trotter_diag_coulomb_split_op", false]], "simulate_trotter_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_trotter_double_factorized", false]], "simulatetrotterdiagcoulombsplitopjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.SimulateTrotterDiagCoulombSplitOpJW", false]], "simulatetrotterdoublefactorizedjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.SimulateTrotterDoubleFactorizedJW", false]], "singlefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.SingleFactorizedHamiltonian", false]], "slater_determinant() (in module ffsim)": [[0, "ffsim.slater_determinant", false]], "slater_determinant_rdm() (in module ffsim)": [[0, "ffsim.slater_determinant_rdm", false]], "slater_determinant_rdms() (in module ffsim)": [[0, "ffsim.slater_determinant_rdms", false]], "spin (class in ffsim)": [[0, "ffsim.Spin", false]], "spin (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.spin", false]], "spin (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.spin", false]], "spin_square() (in module ffsim)": [[0, "ffsim.spin_square", false]], "states (ffsim.productstatesum attribute)": [[0, "ffsim.ProductStateSum.states", false]], "statevector (class in ffsim)": [[0, "ffsim.StateVector", false]], "string (ffsim.bitstringtype attribute)": [[0, "ffsim.BitstringType.STRING", false]], "strings_to_addresses() (in module ffsim)": [[0, "ffsim.strings_to_addresses", false]], "strings_to_indices() (in module ffsim)": [[0, "ffsim.strings_to_indices", false]], "supportsapplyunitary (class in ffsim)": [[0, "ffsim.SupportsApplyUnitary", false]], "supportsapproximateequality (class in ffsim)": [[0, "ffsim.SupportsApproximateEquality", false]], "supportsdiagonal (class in ffsim)": [[0, "ffsim.SupportsDiagonal", false]], "supportsfermionoperator (class in ffsim)": [[0, "ffsim.SupportsFermionOperator", false]], "supportslinearoperator (class in ffsim)": [[0, "ffsim.SupportsLinearOperator", false]], "supportstrace (class in ffsim)": [[0, "ffsim.SupportsTrace", false]], "symmetry (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.symmetry", false]], "thetas (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.thetas", false]], "thetas (ffsim.givensansatzoperator attribute)": [[0, "ffsim.GivensAnsatzOperator.thetas", false]], "thetas (ffsim.hopgateansatzoperator attribute)": [[0, "ffsim.HopGateAnsatzOperator.thetas", false]], "thetas (ffsim.numnumansatzopspinbalanced attribute)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.thetas", false]], "to_diag_coulomb_mats() (ffsim.numnumansatzopspinbalanced method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.to_diag_coulomb_mats", false]], "to_fcidump() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.to_fcidump", false]], "to_json() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.to_json", false]], "to_molecular_hamiltonian() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_molecular_hamiltonian", false]], "to_number_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_number_representation", false]], "to_orbital_rotation() (ffsim.givensansatzop method)": [[0, "ffsim.GivensAnsatzOp.to_orbital_rotation", false]], "to_parameters() (ffsim.givensansatzop method)": [[0, "ffsim.GivensAnsatzOp.to_parameters", false]], "to_parameters() (ffsim.givensansatzoperator method)": [[0, "ffsim.GivensAnsatzOperator.to_parameters", false]], "to_parameters() (ffsim.hopgateansatzoperator method)": [[0, "ffsim.HopGateAnsatzOperator.to_parameters", false]], "to_parameters() (ffsim.numnumansatzopspinbalanced method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.to_parameters", false]], "to_parameters() (ffsim.realucjoperator method)": [[0, "ffsim.RealUCJOperator.to_parameters", false]], "to_parameters() (ffsim.uccsdoprestrictedreal method)": [[0, "ffsim.UCCSDOpRestrictedReal.to_parameters", false]], "to_parameters() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_parameters", false]], "to_parameters() (ffsim.ucjopspinbalanced method)": [[0, "ffsim.UCJOpSpinBalanced.to_parameters", false]], "to_parameters() (ffsim.ucjopspinless method)": [[0, "ffsim.UCJOpSpinless.to_parameters", false]], "to_parameters() (ffsim.ucjopspinunbalanced method)": [[0, "ffsim.UCJOpSpinUnbalanced.to_parameters", false]], "to_t_amplitudes() (ffsim.realucjoperator method)": [[0, "ffsim.RealUCJOperator.to_t_amplitudes", false]], "to_t_amplitudes() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_t_amplitudes", false]], "to_z_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_z_representation", false]], "trace() (in module ffsim)": [[0, "ffsim.trace", false]], "two_body_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.two_body_integrals", false]], "two_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.two_body_tensor", false]], "uccsdoprestrictedreal (class in ffsim)": [[0, "ffsim.UCCSDOpRestrictedReal", false]], "ucjoperator (class in ffsim)": [[0, "ffsim.UCJOperator", false]], "ucjoperatorjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.UCJOperatorJW", false]], "ucjopspinbalanced (class in ffsim)": [[0, "ffsim.UCJOpSpinBalanced", false]], "ucjopspinbalancedjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.UCJOpSpinBalancedJW", false]], "ucjopspinless (class in ffsim)": [[0, "ffsim.UCJOpSpinless", false]], "ucjopspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.UCJOpSpinlessJW", false]], "ucjopspinunbalanced (class in ffsim)": [[0, "ffsim.UCJOpSpinUnbalanced", false]], "ucjopspinunbalancedjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.UCJOpSpinUnbalancedJW", false]], "vec (ffsim.statevector attribute)": [[0, "ffsim.StateVector.vec", false]], "z_representation (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.z_representation", false]]}, "objects": {"": [[0, 0, 0, "-", "ffsim"]], "ffsim": [[0, 1, 1, "", "BitstringType"], [0, 1, 1, "", "DiagonalCoulombHamiltonian"], [0, 1, 1, "", "DoubleFactorizedHamiltonian"], [0, 1, 1, "", "FermionAction"], [0, 1, 1, "", "FermionOperator"], [0, 1, 1, "", "GivensAnsatzOp"], [0, 1, 1, "", "GivensAnsatzOperator"], [0, 1, 1, "", "HopGateAnsatzOperator"], [0, 1, 1, "", "MolecularData"], [0, 1, 1, "", "MolecularHamiltonian"], [0, 1, 1, "", "NumNumAnsatzOpSpinBalanced"], [0, 1, 1, "", "ProductStateSum"], [0, 1, 1, "", "RealUCJOperator"], [0, 1, 1, "", "SingleFactorizedHamiltonian"], [0, 1, 1, "", "Spin"], [0, 1, 1, "", "StateVector"], [0, 1, 1, "", "SupportsApplyUnitary"], [0, 1, 1, "", "SupportsApproximateEquality"], [0, 1, 1, "", "SupportsDiagonal"], [0, 1, 1, "", "SupportsFermionOperator"], [0, 1, 1, "", "SupportsLinearOperator"], [0, 1, 1, "", "SupportsTrace"], [0, 1, 1, "", "UCCSDOpRestrictedReal"], [0, 1, 1, "", "UCJOpSpinBalanced"], [0, 1, 1, "", "UCJOpSpinUnbalanced"], [0, 1, 1, "", "UCJOpSpinless"], [0, 1, 1, "", "UCJOperator"], [0, 5, 1, "", "addresses_to_strings"], [0, 5, 1, "", "apply_diag_coulomb_evolution"], [0, 5, 1, "", "apply_fsim_gate"], [0, 5, 1, "", "apply_fswap_gate"], [0, 5, 1, "", "apply_givens_rotation"], [0, 5, 1, "", "apply_hop_gate"], [0, 5, 1, "", "apply_num_interaction"], [0, 5, 1, "", "apply_num_num_interaction"], [0, 5, 1, "", "apply_num_op_prod_interaction"], [0, 5, 1, "", "apply_num_op_sum_evolution"], [0, 5, 1, "", "apply_on_site_interaction"], [0, 5, 1, "", "apply_orbital_rotation"], [0, 5, 1, "", "apply_tunneling_interaction"], [0, 5, 1, "", "apply_unitary"], [0, 5, 1, "", "approx_eq"], [1, 0, 0, "-", "contract"], [0, 5, 1, "", "cre"], [0, 5, 1, "", "cre_a"], [0, 5, 1, "", "cre_b"], [0, 5, 1, "", "des"], [0, 5, 1, "", "des_a"], [0, 5, 1, "", "des_b"], [0, 5, 1, "", "diag"], [0, 5, 1, "", "dim"], [0, 5, 1, "", "dims"], [0, 5, 1, "", "expectation_one_body_power"], [0, 5, 1, "", "expectation_one_body_product"], [0, 5, 1, "", "fermi_hubbard_1d"], [0, 5, 1, "", "fermi_hubbard_2d"], [0, 5, 1, "", "fermion_operator"], [0, 5, 1, "", "hartree_fock_state"], [0, 5, 1, "", "indices_to_strings"], [0, 5, 1, "", "init_cache"], [2, 0, 0, "-", "linalg"], [0, 5, 1, "", "linear_operator"], [0, 5, 1, "", "multireference_state"], [0, 5, 1, "", "multireference_state_prod"], [0, 5, 1, "", "number_operator"], [0, 5, 1, "", "one_hot"], [3, 0, 0, "-", "optimize"], [4, 0, 0, "-", "qiskit"], [5, 0, 0, "-", "random"], [0, 5, 1, "", "rdm"], [0, 5, 1, "", "rdms"], [0, 5, 1, "", "sample_slater_determinant"], [0, 5, 1, "", "sample_state_vector"], [0, 5, 1, "", "simulate_qdrift_double_factorized"], [0, 5, 1, "", "simulate_trotter_diag_coulomb_split_op"], [0, 5, 1, "", "simulate_trotter_double_factorized"], [0, 5, 1, "", "slater_determinant"], [0, 5, 1, "", "slater_determinant_rdm"], [0, 5, 1, "", "slater_determinant_rdms"], [0, 5, 1, "", "spin_square"], [0, 5, 1, "", "strings_to_addresses"], [0, 5, 1, "", "strings_to_indices"], [6, 0, 0, "-", "testing"], [0, 5, 1, "", "trace"]], "ffsim.BitstringType": [[0, 2, 1, "", "BIT_ARRAY"], [0, 2, 1, "", "INT"], [0, 2, 1, "", "STRING"]], "ffsim.DiagonalCoulombHamiltonian": [[0, 2, 1, "", "constant"], [0, 2, 1, "", "diag_coulomb_mats"], [0, 3, 1, "", "from_fermion_operator"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"]], "ffsim.DoubleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 2, 1, "", "diag_coulomb_mats"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_molecular_hamiltonian"], [0, 3, 1, "", "to_number_representation"], [0, 3, 1, "", "to_z_representation"], [0, 2, 1, "", "z_representation"]], "ffsim.FermionAction": [[0, 2, 1, "", "action"], [0, 2, 1, "", "orb"], [0, 2, 1, "", "spin"]], "ffsim.FermionOperator": [[0, 3, 1, "", "conserves_particle_number"], [0, 3, 1, "", "conserves_spin_z"], [0, 3, 1, "", "many_body_order"], [0, 3, 1, "", "normal_ordered"]], "ffsim.GivensAnsatzOp": [[0, 3, 1, "", "from_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 2, 1, "", "interaction_pairs"], [0, 3, 1, "", "n_params"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "phase_angles"], [0, 2, 1, "", "phis"], [0, 2, 1, "", "thetas"], [0, 3, 1, "", "to_orbital_rotation"], [0, 3, 1, "", "to_parameters"]], "ffsim.GivensAnsatzOperator": [[0, 3, 1, "", "from_parameters"], [0, 2, 1, "", "interaction_pairs"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "thetas"], [0, 3, 1, "", "to_parameters"]], "ffsim.HopGateAnsatzOperator": [[0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 2, 1, "", "interaction_pairs"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "thetas"], [0, 3, 1, "", "to_parameters"]], "ffsim.MolecularData": [[0, 2, 1, "", "active_space"], [0, 2, 1, "", "atom"], [0, 2, 1, "", "basis"], [0, 2, 1, "", "ccsd_energy"], [0, 2, 1, "", "ccsd_t1"], [0, 2, 1, "", "ccsd_t2"], [0, 2, 1, "", "cisd_energy"], [0, 2, 1, "", "cisd_vec"], [0, 2, 1, "", "core_energy"], [0, 2, 1, "", "dipole_integrals"], [0, 2, 1, "", "fci_energy"], [0, 2, 1, "", "fci_vec"], [0, 3, 1, "", "from_fcidump"], [0, 3, 1, "", "from_json"], [0, 3, 1, "", "from_mole"], [0, 3, 1, "", "from_scf"], [0, 4, 1, "", "hamiltonian"], [0, 2, 1, "", "hf_energy"], [0, 2, 1, "", "hf_mo_coeff"], [0, 2, 1, "", "hf_mo_occ"], [0, 2, 1, "", "mo_coeff"], [0, 2, 1, "", "mo_occ"], [0, 4, 1, "", "mole"], [0, 2, 1, "", "mp2_energy"], [0, 2, 1, "", "mp2_t2"], [0, 2, 1, "", "nelec"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "one_body_integrals"], [0, 2, 1, "", "orbital_symmetries"], [0, 3, 1, "", "run_ccsd"], [0, 3, 1, "", "run_cisd"], [0, 3, 1, "", "run_fci"], [0, 3, 1, "", "run_mp2"], [0, 3, 1, "", "run_sci"], [0, 4, 1, "", "scf"], [0, 2, 1, "", "sci_energy"], [0, 2, 1, "", "sci_vec"], [0, 2, 1, "", "spin"], [0, 2, 1, "", "symmetry"], [0, 3, 1, "", "to_fcidump"], [0, 3, 1, "", "to_json"], [0, 2, 1, "", "two_body_integrals"]], "ffsim.MolecularHamiltonian": [[0, 2, 1, "", "constant"], [0, 3, 1, "", "from_fcidump"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 3, 1, "", "rotated"], [0, 2, 1, "", "two_body_tensor"]], "ffsim.NumNumAnsatzOpSpinBalanced": [[0, 3, 1, "", "from_diag_coulomb_mats"], [0, 3, 1, "", "from_parameters"], [0, 2, 1, "", "interaction_pairs"], [0, 3, 1, "", "n_params"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "thetas"], [0, 3, 1, "", "to_diag_coulomb_mats"], [0, 3, 1, "", "to_parameters"]], "ffsim.ProductStateSum": [[0, 2, 1, "", "coeffs"], [0, 2, 1, "", "states"]], "ffsim.RealUCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.SingleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 3, 1, "", "expectation_product_state"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_squares"], [0, 2, 1, "", "one_body_tensor"], [0, 3, 1, "", "reduced_matrix_product_states"]], "ffsim.Spin": [[0, 2, 1, "", "ALPHA"], [0, 2, 1, "", "ALPHA_AND_BETA"], [0, 2, 1, "", "BETA"]], "ffsim.StateVector": [[0, 2, 1, "", "nelec"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "vec"]], "ffsim.UCCSDOpRestrictedReal": [[0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "norb"], [0, 3, 1, "", "to_parameters"]], "ffsim.UCJOpSpinBalanced": [[0, 2, 1, "", "diag_coulomb_mats"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"]], "ffsim.UCJOpSpinUnbalanced": [[0, 2, 1, "", "diag_coulomb_mats"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"]], "ffsim.UCJOpSpinless": [[0, 2, 1, "", "diag_coulomb_mats"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"]], "ffsim.UCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.contract": [[1, 5, 1, "", "contract_diag_coulomb"], [1, 5, 1, "", "contract_num_op_sum"], [1, 5, 1, "", "contract_one_body"], [1, 5, 1, "", "diag_coulomb_linop"], [1, 5, 1, "", "num_op_sum_linop"], [1, 5, 1, "", "one_body_linop"]], "ffsim.linalg": [[2, 1, 1, "", "GivensRotation"], [2, 5, 1, "", "apply_matrix_to_slices"], [2, 5, 1, "", "double_factorized"], [2, 5, 1, "", "double_factorized_t2"], [2, 5, 1, "", "double_factorized_t2_alpha_beta"], [2, 5, 1, "", "expm_multiply_taylor"], [2, 5, 1, "", "givens_decomposition"], [2, 5, 1, "", "is_antihermitian"], [2, 5, 1, "", "is_hermitian"], [2, 5, 1, "", "is_orthogonal"], [2, 5, 1, "", "is_real_symmetric"], [2, 5, 1, "", "is_special_orthogonal"], [2, 5, 1, "", "is_unitary"], [2, 5, 1, "", "lup"], [2, 5, 1, "", "match_global_phase"], [2, 5, 1, "", "modified_cholesky"], [2, 5, 1, "", "one_hot"], [2, 5, 1, "", "reduced_matrix"]], "ffsim.linalg.GivensRotation": [[2, 2, 1, "", "c"], [2, 2, 1, "", "i"], [2, 2, 1, "", "j"], [2, 2, 1, "", "s"]], "ffsim.optimize": [[3, 5, 1, "", "minimize_linear_method"]], "ffsim.qiskit": [[4, 1, 1, "", "DiagCoulombEvolutionJW"], [4, 1, 1, "", "DiagCoulombEvolutionSpinlessJW"], [4, 1, 1, "", "DropNegligible"], [4, 1, 1, "", "FfsimSampler"], [4, 1, 1, "", "GivensAnsatzOpJW"], [4, 1, 1, "", "GivensAnsatzOpSpinlessJW"], [4, 1, 1, "", "GivensAnsatzOperatorJW"], [4, 1, 1, "", "GivensAnsatzOperatorSpinlessJW"], [4, 1, 1, "", "MergeOrbitalRotations"], [4, 1, 1, "", "NumNumAnsatzOpSpinBalancedJW"], [4, 1, 1, "", "NumOpSumEvolutionJW"], [4, 1, 1, "", "NumOpSumEvolutionSpinlessJW"], [4, 1, 1, "", "OrbitalRotationJW"], [4, 1, 1, "", "OrbitalRotationSpinlessJW"], [4, 6, 1, "", "PRE_INIT"], [4, 1, 1, "", "PrepareHartreeFockJW"], [4, 1, 1, "", "PrepareHartreeFockSpinlessJW"], [4, 1, 1, "", "PrepareSlaterDeterminantJW"], [4, 1, 1, "", "PrepareSlaterDeterminantSpinlessJW"], [4, 1, 1, "", "SimulateTrotterDiagCoulombSplitOpJW"], [4, 1, 1, "", "SimulateTrotterDoubleFactorizedJW"], [4, 1, 1, "", "UCJOpSpinBalancedJW"], [4, 1, 1, "", "UCJOpSpinUnbalancedJW"], [4, 1, 1, "", "UCJOpSpinlessJW"], [4, 1, 1, "", "UCJOperatorJW"], [4, 5, 1, "", "ffsim_vec_to_qiskit_vec"], [4, 5, 1, "", "final_state_vector"], [4, 5, 1, "", "jordan_wigner"], [4, 5, 1, "", "pre_init_passes"], [4, 5, 1, "", "qiskit_vec_to_ffsim_vec"]], "ffsim.qiskit.DiagCoulombEvolutionJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.DiagCoulombEvolutionSpinlessJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.DropNegligible": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "run"]], "ffsim.qiskit.FfsimSampler": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "run"]], "ffsim.qiskit.GivensAnsatzOpJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.GivensAnsatzOpSpinlessJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.GivensAnsatzOperatorJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "__init_subclass__"], [4, 3, 1, "", "__new__"]], "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "__init_subclass__"], [4, 3, 1, "", "__new__"]], "ffsim.qiskit.MergeOrbitalRotations": [[4, 3, 1, "", "run"]], "ffsim.qiskit.NumNumAnsatzOpSpinBalancedJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.NumOpSumEvolutionJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.NumOpSumEvolutionSpinlessJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.OrbitalRotationJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.OrbitalRotationSpinlessJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.PrepareHartreeFockJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.PrepareHartreeFockSpinlessJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.PrepareSlaterDeterminantJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.PrepareSlaterDeterminantSpinlessJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.SimulateTrotterDiagCoulombSplitOpJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.SimulateTrotterDoubleFactorizedJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.UCJOpSpinBalancedJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.UCJOpSpinUnbalancedJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.UCJOpSpinlessJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.UCJOperatorJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "__init_subclass__"], [4, 3, 1, "", "__new__"]], "ffsim.random": [[5, 5, 1, "", "random_antihermitian"], [5, 5, 1, "", "random_diagonal_coulomb_hamiltonian"], [5, 5, 1, "", "random_double_factorized_hamiltonian"], [5, 5, 1, "", "random_fermion_hamiltonian"], [5, 5, 1, "", "random_fermion_operator"], [5, 5, 1, "", "random_hermitian"], [5, 5, 1, "", "random_molecular_hamiltonian"], [5, 5, 1, "", "random_orthogonal"], [5, 5, 1, "", "random_real_symmetric_matrix"], [5, 5, 1, "", "random_special_orthogonal"], [5, 5, 1, "", "random_state_vector"], [5, 5, 1, "", "random_statevector"], [5, 5, 1, "", "random_t2_amplitudes"], [5, 5, 1, "", "random_two_body_tensor"], [5, 5, 1, "", "random_uccsd_restricted"], [5, 5, 1, "", "random_ucj_op_spin_balanced"], [5, 5, 1, "", "random_ucj_op_spin_unbalanced"], [5, 5, 1, "", "random_ucj_op_spinless"], [5, 5, 1, "", "random_ucj_operator"], [5, 5, 1, "", "random_unitary"]], "ffsim.testing": [[6, 5, 1, "", "assert_allclose_up_to_global_phase"], [6, 5, 1, "", "generate_norb_nelec"], [6, 5, 1, "", "generate_norb_nelec_spin"], [6, 5, 1, "", "generate_norb_nocc"], [6, 5, 1, "", "generate_norb_spin"], [6, 5, 1, "", "random_nelec"], [6, 5, 1, "", "random_occupied_orbitals"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function", "6": "py:data"}, "terms": {"": [0, 2, 4, 8, 9, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23], "0": [0, 2, 3, 4, 6, 8, 9, 11, 13, 14, 15, 16, 18, 19, 20, 21, 23], "00": 18, "000": 20, "0000000": [15, 18], "0000000000011100000000000111": 20, "0000000000011100000000011100": 20, "0000000000011100100000001100": 20, "0000000000110100000000001101": 20, "0000000001011000000000010110": 20, "0000000001011000100000000110": 20, "0000000001110000000000000111": 20, "0000000111100000011111": 20, "0000000111100110000111": 20, "0000010101100001011011": 20, "0000010110100001011011": 20, "0000100101100000111011": 20, "0000100110100000111011": 20, "0000111100001111": 20, "0000111100011011": 20, "0000111100011101": 20, "0000111100101011": 20, "0001": 3, "0001000001010000000000000111": 20, "0001110100001111": 20, "000e": 18, "0010000000011000000000010110": 20, "0010011100101101": 20, "0010101100001111": 20, "0010101100101101": 20, "001011": [0, 14], "0010110100100111": 20, "0010110100101011": 20, "001077175434025257": 18, "001101": [0, 14], "001110": [0, 14], "0019643765948696573": 18, "002588354198428117": 18, "005e": 15, "01": [15, 18], "0100000000100100000000000111": 20, "0100000110100100001111": 20, "010011": [0, 14], "0101": 0, "0101000001100000011111": 20, "010101": [0, 14], "010110": [0, 14], "0110": 0, "02": [15, 18], "02122442107772": 18, "02242": 2, "02459434j": 14, "02625": 2, "027e": 18, "028e": 18, "02998708j": 14, "03": 15, "03101213j": 14, "03525116j": 14, "03668541730983521": 23, "04": [15, 18], "0475832388658593": 18, "05": [0, 2, 3, 4, 18], "05395": 4, "06": 18, "0609050": 5, "0625": [0, 16], "06273307": 14, "06551571": 14, "06677383j": 14, "06844774j": 14, "07": [6, 18], "076943426386996e": 18, "08": [0, 2, 3, 4, 18], "080e": 15, "08957": 2, "09723851": 14, "0b001011": 0, "0b010101": 0, "0b010110": 0, "0b100101": 0, "0b100110": 0, "0j": 16, "0x7f336044d6c0": 19, "0x7f336044f3d0": 19, "0x7f336044f850": 19, "0x7f33604aa500": 19, "0x7f33604aa620": 19, "0x7f33605581c0": 19, "0x7f3360558250": 19, "0x7f336061a6b0": 19, "1": [0, 2, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23], "10": [13, 18, 19, 20, 23], "100": 15, "1000": 3, "1000000101100000111011": 20, "100011": [0, 14], "100101": [0, 14], "100110": [0, 14], "101": 20, "1024": 4, "104": [15, 21], "105e": 18, "1077416837705262": 20, "108": [20, 23], "10_000": 20, "11": [0, 13, 19, 20, 23], "1102529j": 14, "11157654": 14, "112": 15, "11913479": 16, "12": [2, 13, 15, 16, 18, 23], "1207": 0, "12204343": 14, "1234": [9, 13, 14, 15, 19, 21], "12345": 20, "125": [0, 16], "1278053627110065": 20, "1294": [15, 18], "12j": 16, "13": [0, 13, 18, 23], "13113848": 14, "132e": 15, "133": 20, "13327423j": 14, "13957088j": 14, "14": [13, 20], "15": [13, 15], "1561685j": 14, "15624569": 14, "15828306": 14, "15x15": 15, "16": [13, 20], "17": 13, "1711": [2, 4], "17181289596": 21, "17276745j": 14, "17558331": 14, "1768497j": 16, "18": 13, "180": 15, "18007105": 14, "1808": 2, "184e": 18, "18j": 16, "19": 0, "1e": [0, 2, 3, 4, 6, 15, 23], "1j": [0, 9, 16, 23], "2": [0, 1, 2, 4, 5, 8, 9, 11, 13, 14, 15, 16, 18, 19, 20, 23], "20835741": 14, "20881506": 14, "21": 0, "210": 20, "2104": 2, "2190712273": 9, "21928194": 14, "21984743e": 16, "22392824": 14, "23": 15, "23550198": 14, "23611476": 14, "24": [13, 19], "25": [0, 16], "25j": [0, 16], "26": 23, "26121865": 14, "268e": 18, "286e": 18, "29821173j": 14, "2d": 0, "2j": [0, 2, 16], "2n": 14, "3": [0, 2, 9, 11, 13, 14, 15, 16, 18, 19, 20, 23], "30052742j": 14, "313e": 18, "31980058j": 14, "31g": [20, 21], "32": [13, 19], "321": 18, "329": 18, "33731417j": 14, "339": 18, "3484557074251": 20, "35": [0, 23], "355e": 18, "36730125j": 14, "3714141": 14, "381e": 15, "38435478j": 14, "39": [13, 14, 15, 16, 18, 19, 20], "39075171": 14, "3j": 16, "4": [0, 2, 8, 9, 13, 14, 15, 16, 18, 19, 20, 21, 23], "419e": 15, "421e": 18, "4390672": 14, "45619739119564": 20, "46": 18, "464957764796": 23, "46x46": 18, "47": 20, "478": 15, "48": [13, 20], "487e": 18, "49094286j": 14, "4j": 16, "5": [0, 3, 9, 13, 14, 15, 16, 18, 19, 20, 23], "505": 18, "5063930555114564e": 18, "51253171j": 14, "522e": 18, "55717072551565": 9, "558e": 18, "56": [13, 19, 20], "560e": 18, "561e": 18, "5626": 18, "57": 20, "58888": 22, "597e": 18, "5j": [0, 16], "6": [0, 9, 13, 14, 15, 16, 19, 20, 21, 23], "603e": 15, "6083": 0, "6332495815006": 15, "64": 14, "65": 20, "66": 20, "67794403659724": 15, "6787887956297": 15, "6787887956314": 15, "68381566723333": 15, "684e": 18, "6g": [0, 15, 18, 23], "6j": 16, "7": [0, 9, 13, 14, 15, 16, 18, 19, 23], "70": 20, "72": 18, "7288249991515": 15, "72x72": 18, "73105542j": 14, "748e": 15, "75": [15, 20], "77": 18, "784e": 18, "786e": 18, "8": [0, 13, 15, 16, 18, 19, 20, 23], "8266321248745": 18, "835236570774": 20, "842e": 18, "8716002481628": 18, "87363211276133": 18, "87363426349258": 18, "87363431877952": 18, "87363432511088": 18, "87387392160812": 18, "87421536374038": 18, "8742165643863": 18, "9": [13, 14, 16, 18, 19, 23], "9289": 18, "931e": 18, "9402393562196085": 23, "948e": 18, "949": 18, "958": 15, "9630419334855": 20, "99": 9, "9924": 20, "9985211214229489": 23, "9985211214229854": 23, "9991": 20, "9996731166932697": 23, "9998325692268615": 18, "9998350010818127": 18, "A": [0, 1, 2, 3, 4, 5, 6, 8, 12, 13, 14, 16, 22, 23], "AND": 15, "As": [0, 11, 13, 14, 18, 19, 23], "By": 21, "For": [0, 3, 4, 8, 9, 11, 14, 15, 16, 22, 23], "If": [0, 1, 2, 3, 4, 5, 6, 13, 16], "In": [0, 8, 9, 11, 13, 14, 15, 16, 18, 19, 20, 23], "It": [0, 2, 3, 4, 13, 14, 16, 18, 20, 22], "Its": [3, 4], "NO": [15, 18], "No": 2, "Of": 11, "On": [14, 22], "One": [0, 23], "Such": 16, "That": [0, 3, 12, 16], "The": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23], "Their": 19, "Then": [0, 13], "There": 13, "These": [0, 11, 16, 19], "To": [0, 8, 9, 11, 14, 18, 23], "With": [11, 14, 23], "_": [0, 1, 2, 4, 8, 11, 12, 15, 23], "_1": 12, "_2": 12, "__init__": 4, "__init_subclass__": 4, "__new__": 4, "_factr": 18, "_i": [0, 4], "_k": [0, 8, 11], "_nestedsequ": 4, "_supportsarrai": 4, "a_": [0, 4, 8, 9, 12, 16], "a_j": 1, "a_p": 0, "a_q": 0, "ab": [0, 23], "abil": 8, "abl": 22, "about": 21, "abov": [13, 16], "absenc": [0, 1, 4], "absolut": [0, 2, 4, 6], "acceler": 22, "accept": [12, 18], "access": [0, 9, 22], "accommod": 4, "accomod": 8, "accur": 8, "achiev": [2, 23], "across": 22, "act": [0, 2, 4, 9, 13, 15, 16], "action": [0, 1, 12, 16, 22, 23], "activ": [0, 15, 18, 20, 23], "active_spac": [0, 15, 18, 20, 21, 23], "actual": [6, 11], "ad": [0, 13, 18], "add": [13, 18], "addit": [0, 8, 16, 23], "addition": 2, "address": [0, 13], "addresses_to_str": [0, 7, 14], "adjac": 13, "advantag": 18, "after": [3, 18], "al": 2, "algebra": [2, 9, 16], "algorithm": [0, 2, 3, 18, 21], "alia": [0, 2], "align": [0, 11, 12], "all": [0, 1, 2, 3, 4, 6, 11, 13, 16, 20, 22], "alloc": 0, "allow": [0, 2, 11, 13, 18, 22, 23], "along": 0, "alpha": [0, 1, 2, 4, 6, 9, 11, 13, 14, 15, 16, 19, 20], "alpha_alpha_indic": 0, "alpha_and_beta": 0, "alpha_beta_indic": 0, "alpha_i": 0, "alpha_j": 0, "alreadi": [0, 4, 12], "also": [0, 2, 3, 9, 12, 14, 16, 18, 23], "altern": [0, 8], "alwai": [0, 2, 5, 12, 14, 23], "amen": 13, "amplitud": [0, 2, 5, 18, 20], "an": [0, 1, 2, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23], "angl": 0, "ani": [0, 3, 4, 11, 12, 19, 20], "annihil": [0, 16], "anoth": [2, 6], "ansatz": [0, 3, 4, 5, 10, 13, 17, 19, 20, 21], "ansatz_oper": 0, "ansatz_st": 18, "anti": [2, 5], "anticommut": 12, "ao": 0, "ap": 2, "api": [14, 21], "appear": [0, 2, 13, 16, 20], "append": [0, 6, 13, 18, 19, 20], "appli": [0, 1, 2, 3, 4, 9, 11, 12, 13, 14, 18, 19, 20, 21, 23], "applic": 12, "apply_": 14, "apply_diag_coulomb_evolut": [0, 7, 8, 23], "apply_fsim_g": [0, 7], "apply_fswap_g": [0, 7], "apply_givens_rot": [0, 7], "apply_hop_g": [0, 7], "apply_matrix_to_slic": [2, 7], "apply_num_interact": [0, 7], "apply_num_num_interact": [0, 7], "apply_num_op_prod_interact": [0, 7], "apply_num_op_sum_evolut": [0, 7, 12, 23], "apply_on_site_interact": [0, 7, 14], "apply_orbital_rot": [0, 7, 12, 14, 21], "apply_quad_ham_evolut": 12, "apply_tunneling_interact": [0, 7, 14], "apply_unitari": [0, 7, 18], "appropri": [0, 11], "approx": 8, "approx_eq": [0, 7], "approxim": [0, 2, 3, 8, 18, 23], "apt": 22, "ar": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 19, 20, 22], "arbitrari": [4, 20], "arch": 22, "arg": [0, 4], "argument": [0, 2, 3, 8, 9, 12, 14, 23], "aris": 8, "arithmet": 16, "around": 23, "arrai": [0, 1, 2, 4, 6, 9, 11, 14, 16], "arxiv": [0, 2, 4, 5], "ascend": 20, "assembl": 2, "assert": 14, "assert_allclose_up_to_global_phas": [6, 7], "assertionerror": 6, "associ": [0, 3, 14, 16, 18], "assum": [0, 4, 14], "asterisk": 0, "asymmetr": 8, "atol": [0, 2, 4, 6], "atom": [0, 15, 18, 20, 21, 23], "attempt": 2, "attribut": [0, 3, 9, 15, 18, 20], "author": 21, "auto": 0, "avail": [9, 19, 22], "avoid": [0, 9, 16], "awar": 16, "ax": [0, 2], "axi": [0, 2], "b": [0, 2, 3, 6, 12, 15, 18], "back": 4, "backend": [13, 19], "backflow": 3, "background": 23, "balanc": [0, 4, 5, 18, 20], "barrier": 20, "base": [0, 2, 4], "basepass": 4, "basesamplerv2": 4, "basi": [0, 2, 4, 12, 15, 18, 20, 21, 23], "basic": [9, 13], "basis_g": [13, 19], "bear": 23, "becaus": [0, 2, 8, 9, 13, 15, 16, 18], "been": [0, 8], "befor": [0, 13, 16, 22, 23], "begin": [0, 2, 11, 12, 14, 20, 23], "behavior": [2, 4, 5, 19], "being": [2, 16, 18], "below": [0, 18, 23], "benchmark": 0, "beta": [0, 1, 2, 4, 6, 9, 11, 13, 14, 15, 16, 19, 20], "beta_i": 0, "beta_j": 0, "better": 8, "between": [0, 1, 2, 3, 11, 13], "bfg": [0, 2, 3, 15, 18], "bibtex": 21, "bit": [0, 13, 14], "bit_arrai": 0, "bitstr": [0, 14, 20], "bitstring_typ": [0, 14], "bitstringtyp": [0, 7, 14], "bla": 22, "bloc": 20, "block": 2, "block_diag": [0, 2], "bmod": 0, "bodi": [0, 1, 2, 5, 8, 9, 18, 23], "bond": 15, "bond_angle_deg": 15, "bond_dist": 18, "bool": [0, 1, 2, 3, 4, 5, 6], "both": [0, 1, 2, 4, 11, 15], "bound": [0, 2], "boundari": 0, "box": 13, "bq": 2, "bracket": 0, "braket": 0, "branch": 21, "brickwork": 15, "browser": 22, "buffer": 4, "build": [13, 17, 18, 20, 21, 22], "built": [19, 20, 23], "byte": [0, 4], "bz2": 0, "c": [2, 18], "c2v": 15, "cach": 0, "calcul": [0, 14, 18], "call": [0, 3, 4, 8, 9, 12, 14, 16, 18, 20, 23], "callabl": [3, 18], "callback": [0, 2, 3, 18], "can": [0, 1, 2, 4, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 21, 22, 23], "cannot": 20, "canon": 0, "casci": [15, 18], "case": [0, 6, 13, 15], "categori": 21, "caus": 0, "cc": [18, 20], "ccsd": [0, 18, 20], "ccsd_energi": 0, "ccsd_t1": 0, "ccsd_t2": 0, "cd": 22, "cdot": 2, "cell": [9, 13, 14, 18, 19, 20, 23], "certain": [2, 13], "challeng": 11, "character": 0, "check": [2, 4, 6], "chemcor": 23, "chemic": 0, "chemical_potenti": 0, "chemistri": 21, "choic": [0, 6, 13, 14], "choleski": [0, 2], "choos": [2, 14], "chosen": 0, "ci": [15, 18], "circuit": [0, 4, 8, 13, 14, 17, 21], "circul": 0, "cisd": 0, "cisd_energi": 0, "cisd_vec": 0, "class": [0, 2, 4, 5, 9, 11, 15, 17, 18, 20, 21, 23], "clement": 2, "clone": 22, "close": [11, 18], "cluster": [0, 4, 5, 10, 17, 21], "co": [0, 15], "code": [4, 9, 13, 14, 16, 18, 19, 20, 23], "coeff": [0, 1, 4, 13, 19], "coeffici": [0, 1, 2, 4, 12, 16], "collect": [0, 2, 4, 18], "column": [0, 2, 12, 14], "com": [21, 22], "comb": 4, "combin": [0, 1, 4, 12, 13, 16], "command": 22, "commonli": [8, 20], "commun": [21, 22], "commut": [0, 8], "compact": [8, 23], "compar": [0, 6, 23], "compil": 22, "complet": 0, "complex": [0, 1, 2, 4, 5, 9], "compon": [0, 16, 21], "compos": [4, 22], "compress": [0, 2], "compris": [0, 16], "comput": [0, 2, 4, 9, 12, 18, 21, 23], "concaten": [0, 14], "concret": 9, "condit": 0, "configur": [0, 4, 13, 14, 22], "conflict": 6, "conj": [2, 12, 20], "conjug": 2, "connect": [0, 11, 13], "consecut": [4, 20], "conserv": [0, 5, 16, 21], "conserves_particle_numb": [0, 16], "conserves_spin_z": [0, 16], "consid": [11, 12, 13], "consist": [0, 9, 13], "constant": [0, 5, 8, 9, 11, 13, 19], "constrain": 2, "constraint": [11, 18], "construct": [0, 1, 3, 4, 13, 14, 15, 16, 18, 19, 20, 23], "contain": [0, 2, 3, 13, 16, 20, 21, 22], "contract": [2, 7, 21], "contract_diag_coulomb": [1, 7], "contract_num_op_sum": [1, 7], "contract_one_bodi": [1, 7], "contrast": 14, "control": [3, 13], "conveni": 14, "convent": 0, "converg": [3, 15, 18, 20, 23], "convers": [11, 18], "convert": [0, 1, 4, 14, 16, 18, 20, 21, 23], "coordin": 0, "coov": 20, "copi": [0, 16], "core": 0, "core_energi": 0, "correl": 3, "correspond": [0, 2, 3, 4, 8, 12, 13, 14, 18], "cost": 0, "coulomb": [0, 1, 2, 4, 5, 8, 11, 23], "count": [0, 13, 20], "count_op": [13, 19], "coupl": 0, "cours": 11, "cp": [13, 19], "cphaseg": 13, "cre": [0, 7], "cre_a": [0, 7, 16], "cre_b": [0, 7, 16], "creat": [0, 4, 13, 14, 16, 19, 20, 21, 23], "creation": [0, 4, 12, 16], "criteria": 16, "current": [0, 2, 18], "d": [2, 22], "d2h": 18, "dag": 4, "dagcircuit": 4, "dagger": [0, 1, 2, 8, 11, 12, 16], "dagger_": [0, 4, 8, 9, 12], "dagger_i": 1, "dagger_p": 0, "dagger_q": 0, "data": [0, 5, 13, 15, 16, 18, 20, 21, 23], "daunt": 8, "de": [0, 7], "decompos": [2, 4, 8, 13, 19], "decomposit": [0, 2, 4, 8, 10, 19, 21, 23], "decreas": [0, 18], "def": [2, 12, 15, 18, 23], "default": [0, 2, 3, 4, 5, 8, 9, 23], "default_rng": [0, 4, 5, 6, 9, 13, 15, 19, 20], "default_shot": [4, 20], "defaultdict": 18, "defin": [0, 2, 13, 15, 18, 20, 23], "definit": [0, 2, 3, 14], "demonstr": [14, 18, 20], "denot": [0, 1, 2, 4, 12], "dens": 15, "densiti": 0, "depend": [0, 2, 3, 22, 23], "depolar": 4, "deprec": [0, 4, 5], "depth": 11, "deriv": 8, "des_a": [0, 7, 16], "des_b": [0, 7, 16], "descend": [0, 16], "describ": [0, 1, 2, 8, 11, 12, 13, 16, 23], "descript": [0, 4], "design": [0, 2, 12], "desir": [0, 2, 5, 6], "destroi": [0, 16], "detail": [13, 19], "determin": [0, 2, 4, 14], "determinant": 0, "dev": 22, "devel": 22, "develop": [4, 21], "devic": [13, 19], "df_hamiltonian": [13, 19, 23], "df_hamiltonian_alt": 23, "diag": [0, 7], "diag_coulomb_indic": [0, 2], "diag_coulomb_jw": 13, "diag_coulomb_linop": [1, 7], "diag_coulomb_mat": [0, 2, 13, 19, 20, 23], "diag_coulomb_mats_alpha_alpha": 0, "diag_coulomb_mats_alpha_beta": 0, "diagcoulombevolutionjw": [4, 7, 13, 19, 20], "diagcoulombevolutionspinlessjw": [4, 7], "diagon": [0, 1, 2, 4, 5, 8, 11, 23], "diagonal_coulomb_mat": 2, "diagonalcoulombhamiltonian": [0, 4, 5, 7], "dict": [0, 2, 3, 15, 18], "dictionari": [0, 16], "did": 0, "differ": [0, 1, 2, 3, 9, 11, 13, 18, 22, 23], "dim": [0, 5, 7, 14, 16], "dim_a": [0, 14], "dim_b": [0, 14], "dimens": [0, 2, 5, 14], "dimension": [0, 2, 4, 14], "dipol": 0, "dipole_integr": 0, "direct": [0, 23], "directli": [0, 13, 18, 22, 23], "directori": 22, "discuss": [8, 12, 13], "disjoint": 2, "disk": 0, "displai": [13, 16, 20], "distinguish": 14, "distribut": [4, 5], "divid": 8, "divis": [0, 16], "dnf": 22, "do": [8, 13, 16], "doc": [15, 18, 21], "docker": 21, "dockerfil": 22, "docstr": 0, "document": [0, 2], "doe": [0, 4, 16, 18, 20], "don": 11, "dooh": [20, 21, 23], "dot": 0, "doubl": [0, 2, 4, 5, 10, 21, 24], "double_factor": [0, 2, 7], "double_factorized_t2": [2, 7], "double_factorized_t2_alpha_beta": [2, 7], "doublefactorizedhamiltonian": [0, 4, 5, 7, 23], "down": 14, "draw": [13, 19], "drop": [4, 15, 18], "dropneglig": [4, 7], "dtype": [0, 2, 4, 5, 9, 15, 18], "due": 20, "dump": [15, 18], "duplic": 0, "dure": 4, "e": [0, 2, 4, 8, 9, 11, 15, 16, 18, 20], "e_corr": [18, 20], "each": [0, 2, 3, 4, 8, 11, 14, 16, 18, 22, 23], "edg": 0, "effect": [0, 4, 13], "effici": [8, 13, 16], "eig": [9, 16], "eigendecomposit": 12, "eigenvalu": [0, 2, 3, 9], "eigenvector": [0, 2], "eigh": [12, 23], "eigsh": 9, "einsum": 23, "either": [0, 1, 2, 4, 6, 11], "electon": 4, "electron": [0, 1, 4, 5, 9, 13, 14, 15, 19, 20, 23], "element": [0, 1, 2, 4, 20, 23], "ell": 2, "els": [0, 5, 14], "elsewher": 0, "enabl": 2, "encount": 20, "end": [0, 2, 11, 12, 20, 23], "energi": [0, 3, 9, 12, 18, 20, 21, 23], "energy_nuc": [15, 18], "enforc": 0, "enough": 4, "ensur": 9, "entangl": [0, 17, 21], "entir": [2, 8], "entri": [0, 2, 4, 11, 14, 23], "enum": 0, "enumer": [0, 18], "environ": 22, "epsilon": 3, "epsmch": 18, "equal": [0, 2, 6, 13], "equal_nan": 6, "equilibrium": 15, "equival": [0, 4], "err_msg": 6, "error": [0, 2, 4, 6, 23], "especi": 16, "estim": 9, "et": 2, "etc": 0, "ethen": 18, "evalu": [3, 15], "even": 13, "everi": 12, "everywher": 14, "evolut": [0, 4, 9, 23], "evolv": [0, 23], "evolved_vec": 9, "evolved_vec_2": 9, "exact": [2, 8, 9, 23], "exact_st": 23, "exampl": [0, 4, 9, 11, 13, 14, 15, 16, 18, 19, 22], "exce": [2, 15, 23], "except": [0, 2, 3], "excit": 13, "exist": [2, 4], "exp": [0, 2, 4, 6], "expand": 0, "expanded_diag_coulomb_mat": 2, "expanded_orbital_rot": 2, "expans": [2, 3], "expect": [0, 3], "expectation_one_body_pow": [0, 7], "expectation_one_body_product": [0, 7], "expectation_product_st": 0, "expens": [0, 2], "explain": [9, 11, 13, 14, 18, 23], "explan": [0, 19, 21], "explicit": 0, "explicitli": 0, "exploit": 21, "expm": 2, "expm_multipli": [9, 23], "expm_multiply_taylor": [2, 7], "exponenti": [8, 9, 23], "expos": [4, 13], "express": [11, 14, 23], "extend": 4, "extra": 8, "extract": 20, "f": [3, 14, 15, 18, 20, 23], "facilit": 11, "fact": 15, "factor": [0, 2, 4, 5, 10, 21, 24], "failur": 6, "fake_provid": [13, 19], "fals": [0, 1, 2, 4, 5, 15, 16, 18], "far": 16, "fast": 0, "faster": [18, 21], "fault": 11, "fci": [0, 14, 15, 18], "fci_energi": 0, "fci_vec": 0, "fcidump": 0, "fcivec": 0, "fedora": 22, "feenberg": 3, "fermi": 0, "fermi_hubbard_1d": [0, 7], "fermi_hubbard_2d": [0, 7], "fermion": [0, 4, 5, 6, 8, 10, 11, 12, 16, 19, 20, 21], "fermion_oper": [0, 7], "fermionact": [0, 7], "fermionoper": [0, 4, 5, 7, 17, 21], "few": [14, 22], "fewer": [13, 19, 23], "ffsim": [7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23], "ffsim_vec_to_qiskit_vec": [4, 7], "ffsimsampl": [4, 7], "fidel": 23, "field": [0, 2], "fifth": 13, "file": [0, 22], "filter": 0, "final": [0, 3, 4, 5, 13, 19, 23], "final_orbital_rot": 0, "final_st": [18, 23], "final_state_vector": [4, 7], "finish": 23, "finit": 3, "first": [0, 2, 4, 8, 13, 14, 18, 20, 23], "fix": 14, "flag": 0, "float": [0, 2, 3, 4, 5, 6, 9, 12, 23], "float64": [9, 15, 18], "fock": [0, 4, 11, 14, 18, 21, 23], "focu": 9, "follow": [0, 2, 3, 4, 9, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23], "foot": 0, "forg": [0, 17, 21], "form": [0, 1, 2, 4, 8, 9, 11, 12, 16, 20, 23], "format": [0, 4], "formula": [0, 23], "fourth": [8, 13], "frac": [0, 2], "frac12": [0, 8, 9, 11], "frac18": 0, "framework": 22, "from": [0, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23], "from_diag_coulomb_mat": 0, "from_fcidump": 0, "from_fermion_oper": 0, "from_json": 0, "from_mol": 0, "from_molecular_hamiltonian": [0, 23], "from_orbital_rot": 0, "from_paramet": [0, 13, 18], "from_scf": [0, 15, 18, 20, 21, 23], "from_t_amplitud": [0, 18, 20], "frozen": [18, 20], "fsim": 0, "fswap": 0, "ftol": [3, 18], "full": [0, 2, 13, 14, 15], "fulli": 9, "fun": [3, 15, 18], "function": [0, 1, 2, 3, 5, 8, 9, 12, 14, 15, 16, 18, 19, 23], "fundament": 12, "further": [13, 14], "furthermor": [0, 2], "g": [0, 4, 15], "g_": 2, "g_1": 2, "g_i": 3, "g_k": 2, "g_l": 2, "gate": [0, 4, 10, 11, 15, 20, 21], "gener": [0, 3, 4, 5, 6, 8, 13, 14, 15, 19, 20, 21], "generate_norb_nelec": [6, 7], "generate_norb_nelec_spin": [6, 7], "generate_norb_nocc": [6, 7], "generate_norb_spin": [6, 7], "generate_preset_pass_manag": [13, 19], "genericbackendv2": [13, 19], "get": [0, 14, 15, 18, 20, 21, 23], "get_count": 20, "get_hcor": [15, 18], "get_ovlp": [15, 18], "git": 22, "github": [21, 22], "give": [0, 2, 8, 14, 19], "given": [0, 2, 4, 6, 8, 12], "givens_ansatz_op": 4, "givens_ansatz_oper": 4, "givens_decomposit": [2, 7], "givensansatzop": [0, 4, 7], "givensansatzoper": [0, 4, 7], "givensansatzoperatorjw": [4, 7], "givensansatzoperatorspinlessjw": [4, 7], "givensansatzopjw": [4, 7], "givensansatzopspinlessjw": [4, 7], "givensrot": [2, 7], "global": [4, 6], "global_depolar": 4, "go": [0, 13, 16], "good": 16, "gradient": [2, 3, 18], "greater": 3, "ground": [9, 18], "gt": [15, 18, 19, 20], "gto": [15, 18, 20, 21, 23], "gtol": 3, "guarante": [4, 19], "guess": [3, 18], "guid": [11, 15, 18, 19, 20, 21], "gzip": 0, "h": [0, 8, 9, 15, 18, 20, 23], "h1_x": 15, "h2_x": 15, "h2_y": 15, "h_": [0, 2, 8, 9], "h_0": [8, 23], "h_k": [8, 23], "ha": [0, 1, 2, 4, 8, 11, 12, 13, 14, 18], "haar": 5, "ham": 14, "hamiltonian": [0, 3, 4, 5, 10, 15, 18, 20, 21, 24], "hand": 14, "handl": [20, 23], "happen": 13, "hardwar": 13, "hartre": [0, 4, 11, 14, 18, 21, 23], "hartree_fock": 0, "hartree_fock_jw": 13, "hartree_fock_st": [0, 7, 9, 14, 18, 21, 23], "hasattr": 18, "hash": 16, "have": [0, 2, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22], "height": 5, "helper": 16, "here": [0, 2, 8, 12, 13, 15, 23], "hermitian": [0, 2, 5, 12], "hess_inv": [15, 18], "hf": [15, 18], "hf_energi": 0, "hf_mo_coeff": 0, "hf_mo_occ": 0, "high": 13, "higher": [0, 8, 23], "ho": 20, "hold": [0, 3], "home": [15, 18, 22], "hop": [0, 15], "hopgateansatzoper": [0, 7, 15], "hot": [0, 2], "how": [0, 8, 9, 11, 12, 13, 14, 21, 23], "howev": [8, 13, 21], "http": [0, 21, 22], "hubbard": 0, "hydroxyl": 20, "hyperparamet": [3, 18], "i": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23], "idea": 11, "ident": 0, "ignor": [0, 2, 8], "ij": [0, 1, 2, 4, 8, 11, 12], "ijab": 2, "ik": 12, "imag": 22, "implement": [0, 1, 3, 4, 8, 9, 11, 12, 13, 15, 18, 20, 21, 22, 24], "import": [0, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23], "impos": [11, 18], "improv": [3, 23], "includ": [0, 2, 4, 5, 8, 9, 12, 13, 14, 15, 18, 19, 21, 22], "incorpor": 0, "increas": [0, 14, 23], "increment": 3, "incur": 3, "independ": [0, 1, 4, 15], "index": [0, 2, 11, 14, 16], "indic": [0, 1, 2, 4, 11, 14, 16], "indices_to_str": [0, 7], "individu": [8, 14, 16], "info": 18, "inform": [0, 9, 16, 18, 21, 23], "init_cach": [0, 7], "initi": [0, 3, 4, 5, 6, 9, 11, 13, 18, 19, 20, 23], "initial_st": 23, "initiali": 15, "input": [0, 1, 3, 4, 5, 6, 18, 20], "insert": 13, "instanc": [5, 9, 23], "instead": [0, 2, 4, 5, 18, 23], "instruct": [21, 22], "instructionset": 19, "int": [0, 1, 2, 3, 4, 5, 6, 12, 15, 23], "int32": 0, "integ": [0, 2, 4, 6, 14], "integr": [0, 4], "interact": [0, 1, 2, 4, 11, 13, 18, 20], "interaction_pair": [0, 13, 15, 18, 20], "interfac": [18, 22], "interferomet": 2, "intermedi": 18, "intermediate_result": [3, 18], "intern": 16, "interpret": [0, 11], "intor_symmetr": [15, 18], "introduc": [11, 12, 23], "invers": 4, "involv": [0, 12, 13], "ip": 2, "ipykernel_4256": 9, "is_antihermitian": [2, 7], "is_hermitian": [2, 7], "is_orthogon": [2, 7], "is_real_symmetr": [2, 7], "is_special_orthogon": [2, 7], "is_unitari": [2, 7], "isclos": 0, "isn": 4, "issu": [9, 13], "item": 20, "iter": [0, 3, 4, 6, 18], "itertool": 2, "its": [0, 2, 4, 9, 13, 14, 15, 16, 23], "itself": [0, 14, 16], "j": [0, 1, 2, 4, 8, 11, 12, 14, 15, 16], "jac": [3, 15, 18], "jastrow": [0, 3, 4, 5, 10, 17, 21], "ji": [0, 4, 11, 12], "jk": 12, "job": [4, 20], "jordan": [0, 4], "jordan_wign": [4, 7], "jq": 2, "json": [0, 15, 18], "jupyt": 22, "just": [0, 14, 18, 22, 23], "jwt": 4, "k": [0, 2, 3, 8, 9, 11, 16, 20, 23], "kappa": 0, "kappa_": 0, "keep": [0, 2], "kei": 20, "kij": 23, "know": 15, "known": [0, 8], "kpi": 23, "kqi": 23, "krj": 23, "kron": 0, "ksj": 23, "kwarg": [0, 4], "l": [0, 2, 3, 8, 11, 15, 18, 23], "label": [4, 14], "ladder": [8, 11], "lambda": [0, 4, 20], "lambda_i": [0, 1, 4, 12], "lambda_k": 12, "langl": 0, "larger": [0, 2, 3, 16], "last": [0, 2, 3, 4], "later": [19, 23], "lattic": [0, 11, 13, 18, 20], "layer": [0, 2, 13, 20], "lbfgsinvhessproduct": [15, 18], "ldot": [0, 2, 8, 11, 23], "lead": 0, "least": 2, "left": [0, 4, 12, 14, 16], "len": [15, 18, 23], "length": [0, 4, 5, 14, 15], "leq": [0, 2], "less": [2, 11], "let": [0, 13, 14, 16, 18, 19, 20, 23], "level": 23, "lexicograph": [0, 16], "lib": [15, 18], "libopenbla": 22, "librari": [0, 21], "like": [4, 11, 18, 22], "limit": [0, 2, 11, 13, 15, 18], "linalg": [0, 7, 9, 12, 16, 18, 21, 23], "lindep": 3, "line": [0, 11, 13, 18], "linear": [0, 1, 2, 3, 4, 9, 12, 13, 16], "linear_oper": [0, 7, 9, 16, 18, 21, 23], "linearli": 8, "linearoper": [0, 1, 3, 16, 18, 21, 23], "linop": [9, 16, 21, 23], "linux": 22, "list": [0, 2, 4, 6, 11, 14, 15, 18, 20, 23], "ll": [9, 12, 13, 15, 18, 20, 23], "lm": 16, "load": 0, "local": [10, 17, 21], "localhost": 22, "log": [0, 4], "logarithm": 11, "logic": [12, 15], "longer": 11, "longest": 0, "lookup": 0, "losslessli": 0, "low": [0, 8, 23], "lower": [0, 2], "lowest": [0, 13, 14], "lt": [15, 18, 19, 20], "lu": 2, "lucj": [10, 13, 17, 21], "lup": [2, 7], "lvert": [0, 4, 11, 14], "lzma": 0, "m": [0, 1, 2, 12], "m_": [0, 1, 2], "maco": 22, "made": 23, "magnitud": 0, "mai": [0, 2, 3, 4, 11, 22, 23], "main": [18, 22], "maintain": 8, "make": [11, 13], "manag": [4, 13, 19, 22], "mani": [0, 9, 12, 14, 21], "manual": 23, "many_body_ord": 0, "map": [0, 4, 12, 13, 16], "mapsto": [0, 4, 12], "mat": [0, 1, 2, 4, 12, 14], "mat_aa": 2, "mat_ab": 2, "mat_alpha_beta": 1, "mat_bb": 2, "match": [0, 2], "match_global_phas": [2, 7], "math": [5, 15], "mathbf": [0, 8, 11, 12], "mathcal": [0, 1, 4, 8, 11, 12], "matric": [0, 1, 2, 4, 11, 12, 23], "matrix": [0, 1, 2, 3, 4, 5, 8, 9, 11, 12, 14, 16], "max": [3, 23], "max_error": 23, "max_term_length": 5, "max_vec": [0, 2, 23], "maxfun": 15, "maximum": [0, 2, 3, 5, 23], "maxit": [3, 18], "mcscf": [15, 18], "mea": 20, "meant": [4, 19], "measur": [5, 8, 20], "measure_al": 20, "mention": 8, "merg": [4, 19], "mergeorbitalrot": [4, 7, 13], "messag": [6, 15, 18], "method": [0, 2, 3, 4, 11, 15, 16, 20, 21], "mid": 20, "might": 2, "mind": 23, "minim": [0, 2, 3, 13, 15, 18], "minimize_linear_method": [3, 7, 18], "minimizz": 15, "minimum": 4, "mk": 2, "mkap": 2, "mkbq": 2, "mkip": 2, "mkjq": 2, "mkpq": 2, "mo_coeff": 0, "mo_occ": 0, "mode": 12, "model": 0, "modifi": [0, 2], "modified_choleski": [2, 7], "modul": [0, 14, 15, 19, 20], "mol": [15, 18, 20, 21, 23], "mol_data": [15, 18, 20, 21, 23], "mol_hamiltonian": [9, 15, 18, 20, 23], "mole": [0, 15, 18, 20, 21, 23], "molecul": [0, 18, 21, 23], "molecular": [0, 5, 9, 10, 14, 15, 18, 20, 21, 23], "moleculardata": [0, 7, 15, 18, 20, 21, 23], "molecularhamiltonian": [0, 5, 7, 9, 23], "more": [0, 2, 3, 4, 8, 9, 11, 13, 14, 19, 23], "most": [0, 2, 16, 20], "motiv": 13, "mp2": 0, "mp2_energi": 0, "mp2_t2": 0, "mpl": [13, 19], "msg": [15, 18], "mu": 0, "much": [0, 2, 8, 13, 21], "multipl": [0, 9, 16, 23], "multipli": [0, 16], "multiport": 2, "multirefer": 0, "multireference_st": [0, 7], "multireference_state_prod": [0, 7, 15], "must": [0, 2, 3, 4, 16, 20], "n": [0, 2, 3, 8, 9, 11, 12, 14, 20, 21, 23], "n2": [20, 21, 23], "n_": [0, 1, 4, 8, 11, 12, 14], "n_alpha": [4, 6, 20], "n_beta": [4, 6, 20], "n_frozen": [20, 23], "n_i": 4, "n_j": 4, "n_layer": 15, "n_p": 0, "n_param": [0, 13], "n_qubit": 4, "n_rep": [0, 5, 13, 18, 19, 20], "n_sampl": 0, "n_step": [0, 4, 13, 19, 23], "n_term": 5, "n_vec": 2, "n_x": 0, "n_y": 0, "name": [0, 9, 13, 14, 19, 22], "namedtupl": [0, 2], "nan": 6, "nao_nr": [15, 18, 20, 21, 23], "nativ": 21, "navig": 22, "ndarrai": [0, 1, 2, 3, 4, 5, 6, 12, 18, 23], "nearest": 0, "nearest_neighbor_interact": 0, "need": [0, 4, 9, 11, 13, 20, 22, 23], "neg": [0, 4], "neglig": 4, "neighbor": [0, 13], "nelec": [0, 1, 4, 6, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23], "nelectron": 18, "neq": 0, "nest": 2, "network": 11, "new": [0, 4, 12, 16], "newli": 0, "next": [13, 15, 23], "nfev": [3, 15, 18], "nit": [15, 18], "nitrogen": [20, 23], "njev": [15, 18], "nlinop": [3, 18], "nn": 0, "nocc": [0, 5, 6], "nocc_a": 2, "nocc_b": 2, "noisi": [4, 11], "non": [4, 11], "none": [0, 1, 2, 3, 4, 5, 6], "nonzero": [0, 2, 11], "norb": [0, 1, 2, 4, 5, 6, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23], "norb_i": 0, "norb_rang": 6, "norb_x": 0, "norm": [0, 18], "normal": [0, 15, 16], "normal_ord": [0, 16], "note": [0, 2, 3, 13, 14, 16, 19, 21], "notebook": 22, "noth": 4, "notic": 18, "notimplementederror": 4, "now": [9, 13, 15, 18, 20, 23], "np": [0, 2, 4, 5, 6, 9, 12, 13, 15, 18, 19, 20, 21, 23], "num_num_ansatz_op": 4, "num_op_sum_linop": [1, 7], "number": [0, 1, 2, 3, 4, 5, 6, 8, 9, 12, 14, 15, 16, 18, 21, 23], "number_oper": [0, 7], "numer": [0, 2, 4, 16], "numnumansatzopspinbalanc": [0, 4, 7], "numnumansatzopspinbalancedjw": [4, 7], "numopsumevolutionjw": [4, 7, 13, 19], "numopsumevolutionspinlessjw": [4, 7], "numpi": [0, 1, 2, 4, 6, 9, 11, 12, 13, 14, 15, 18, 19, 20, 21, 23], "o": [0, 15, 20], "o_1": 0, "o_2": 0, "o_k": 0, "obj": 0, "object": [0, 2, 3, 4, 5, 9, 16, 18, 20], "obtain": [0, 8, 9, 12, 13, 18, 23], "occ_a": 6, "occ_b": 6, "occup": [0, 6, 8, 12, 14], "occupi": [0, 4, 5, 6, 13, 14], "occupied_orbit": [0, 4, 13, 19, 20], "often": [8, 11, 18], "onc": [12, 13, 22], "one": [0, 1, 2, 4, 5, 8, 9, 13, 14, 18, 20, 22, 23], "one_body_basis_chang": 23, "one_body_energi": 23, "one_body_integr": 0, "one_body_linop": [1, 7], "one_body_squar": 0, "one_body_tensor": [0, 9, 23], "one_hot": [0, 2, 7], "one_rdm": 0, "ones": 9, "onli": [0, 2, 4, 8, 11, 12, 13, 20, 22], "onsit": 0, "onto": [13, 16], "op": [0, 4, 16], "op1": [0, 16], "op2": [0, 16], "op3": 16, "op4": 16, "opaqu": 13, "open": [0, 11], "openbla": 22, "oper": [0, 1, 2, 3, 4, 5, 8, 11, 12, 16, 18, 22, 23], "oppos": 13, "opposit": [18, 20], "optim": [0, 2, 4, 7, 11, 13, 19, 21], "optimization_level": [13, 19], "optimize_kwarg": 3, "optimize_regular": 3, "optimize_vari": 3, "optimizeresult": [3, 18], "option": [0, 1, 2, 3, 4, 9, 15, 18, 22], "orb": [0, 16], "orbit": [0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 18, 20, 21, 23], "orbital_rot": [0, 1, 2, 4, 12, 13, 14, 19, 20, 21, 23], "orbital_rotation_a": 2, "orbital_rotation_b": 2, "orbital_symmetri": 0, "orbitalrotationjw": [4, 7, 13, 19, 20], "orbitalrotationspinlessjw": [4, 7], "order": [0, 1, 2, 4, 8, 9, 13, 14, 16, 19, 20, 23], "ordereddict": [13, 19], "org": 0, "origin": [0, 2, 11, 13, 23], "orthogon": [2, 5], "other": [0, 4, 11, 14, 18, 19, 20], "otherwis": 0, "our": [15, 18, 20, 23], "out": [2, 23], "output": [0, 3, 4, 13, 18, 20], "over": 0, "overrid": [0, 2], "overridden": 4, "overwritten": [0, 15, 18], "own": 4, "p": [0, 2, 8, 9, 11, 13, 18, 19, 20], "packag": [15, 18, 22], "pacman": 22, "pad": 0, "page": [8, 9, 11, 12, 13, 14], "pair": [0, 1, 2, 4, 6, 11, 13, 14], "pairs_aa": [13, 18, 20], "pairs_ab": [13, 18, 20], "pairs_bb": 20, "paper": 11, "parallel": [2, 11, 13], "param": 0, "paramet": [0, 1, 2, 3, 4, 5, 6, 11, 15, 18], "parameter_valu": 4, "params_to_vec": [3, 18], "pars": [15, 18], "part": [0, 5, 8, 12, 14, 15], "particl": [0, 5, 6, 12, 16, 21], "pass": [0, 1, 2, 4, 9, 12, 13, 14, 15, 16, 18, 19], "pass_manag": [13, 19], "passmanag": [4, 13], "path": 0, "pathlik": 0, "pattern": [13, 15], "pauli": 0, "per": 23, "perform": [0, 2, 3, 8, 9, 12, 13, 20, 23], "period": 0, "periodic_i": 0, "periodic_x": 0, "permut": 2, "persist": 22, "ph": 5, "phase": [0, 2, 4, 6, 13], "phase_angl": 0, "phaseg": 13, "phi": [0, 2, 6], "phi_0": 11, "pi": [0, 15], "piec": [9, 16], "pip": 21, "pipelin": 13, "pivot": 2, "pk": 2, "place": [0, 2, 11, 13, 16, 22], "plain": 14, "pmatrix": [0, 2], "point": 0, "polar": 0, "posit": [2, 3, 14], "possibl": [0, 2, 6, 20, 21], "possibli": [0, 18], "potenti": 0, "power": 0, "pq": [0, 2, 8, 9], "pqr": [0, 2, 8, 9, 23], "practic": 8, "pre": [11, 19], "pre_init": [4, 7, 13, 19], "pre_init_pass": [4, 7, 19], "precis": 6, "prepar": [0, 4, 20], "preparehartreefockjw": [4, 7, 13, 19, 20], "preparehartreefockspinlessjw": [4, 7, 20], "prepareslaterdeterminantjw": [4, 7, 13, 19, 20], "prepareslaterdeterminantspinlessjw": [4, 7, 20], "present": 3, "preserv": [16, 20], "preset_passmanag": [13, 19], "previou": [18, 20], "previous": [8, 13, 14, 18], "primit": [4, 17, 21], "primitivejob": 4, "primitiveresult": 4, "print": [0, 6, 13, 14, 15, 16, 18, 20, 21, 23], "probabl": [0, 4], "problem": 3, "process": 0, "processor": 11, "prod": 15, "prod_": [0, 4, 11], "prod_k": 8, "prod_state_sum": 0, "produc": [0, 13], "product": [0, 2, 8, 14, 15, 16], "productstatesum": [0, 7], "programmat": 16, "properti": [0, 2, 12], "proport": [0, 8], "protocol": 0, "provid": [9, 13, 19, 22], "pseudorandom": [0, 4, 5, 6], "psi": [0, 11], "pub": [4, 20], "pub_result": 20, "put": 15, "py": [9, 15, 18], "pypi": 22, "pyscf": [0, 4, 14, 15, 18, 20, 21, 23], "python3": [15, 18], "q": [0, 8, 9, 13, 19], "qdrift": 0, "qi": 0, "qiskit": [7, 13, 17, 21, 22], "qiskit_vec_to_ffsim_vec": [4, 7], "qk": 2, "quadrat": [8, 10, 21, 23], "qualnam": 0, "quantifi": 2, "quantiti": 0, "quantum": [0, 4, 8, 11, 13, 14, 17, 20, 21], "quantumcircuit": [4, 13, 19, 20], "quantumregist": [13, 19, 20], "qubit": [0, 4, 10, 11, 15, 19, 20, 21], "r": [0, 2, 8, 9], "radic": 20, "radius_1": 15, "radius_2": 15, "rais": [0, 2, 4, 6], "random": [0, 4, 6, 7, 9, 13, 14, 15, 16, 19, 20, 21], "random_antihermitian": [5, 7], "random_diagonal_coulomb_hamiltonian": [5, 7], "random_double_factorized_hamiltonian": [5, 7, 13, 19], "random_fermion_hamiltonian": [5, 7], "random_fermion_oper": [5, 7], "random_hermitian": [5, 7], "random_molecular_hamiltonian": [5, 7], "random_nelec": [6, 7], "random_occupied_orbit": [6, 7], "random_orthogon": [5, 7], "random_real_symmetric_matrix": [5, 7, 9, 13, 19, 20], "random_special_orthogon": [5, 7], "random_state_vector": [5, 7, 16], "random_statevector": [5, 7], "random_t2_amplitud": [5, 7], "random_two_body_tensor": [5, 7, 9], "random_uccsd_restrict": [5, 7], "random_ucj_op_spin_balanc": [5, 7, 13, 19], "random_ucj_op_spin_unbalanc": [5, 7, 19], "random_ucj_op_spinless": [5, 7], "random_ucj_oper": [5, 7], "random_unitari": [5, 7, 13, 14, 19, 20, 21], "rang": [0, 2, 6, 13, 14, 15, 18, 20, 21, 23], "rangl": [0, 4, 11, 14], "rank": [0, 2, 5, 8, 13], "rather": [0, 5, 12, 14], "rccsd": 20, "rdm": [0, 7], "rdm1": 0, "rdm2": 0, "rdm3": 0, "rdm4": 0, "reach": 18, "read": 0, "real": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 18, 21], "realucjoper": [0, 7], "reason": [4, 12], "recal": 13, "recommend": [4, 13, 16, 19, 21], "reconstruct": [0, 2, 23], "reconstruct_t2_alpha_beta": 2, "recover": 0, "reduc": [0, 2, 13], "reduced_matrix": [2, 7], "reduced_matrix_product_st": 0, "reduct": 18, "redund": 11, "refer": [0, 2, 3, 4, 5, 6, 11, 12, 14, 18, 21], "reference_occup": [0, 15], "reference_occupations_spati": 15, "reference_st": 18, "regress": 0, "regular": [3, 18], "rel": [0, 2, 4, 6, 18], "rel_reduction_of_f_": 18, "relat": 12, "releas": 21, "reorder": [0, 8], "rep": 13, "repeat": 15, "repeatedli": 12, "repetit": [0, 5, 11, 13, 18], "repositori": 22, "repr": 16, "repres": [0, 2, 3, 4, 6, 9, 11, 14, 16, 18, 19], "represent": [0, 1, 2, 4, 5, 10, 14, 16, 21, 23], "reproduc": 23, "requir": [0, 9, 11, 13, 14, 22], "reshap": 14, "respect": [0, 2, 3, 23], "rest": [0, 13], "restrict": [0, 13, 18], "result": [0, 1, 2, 3, 4, 5, 8, 9, 11, 13, 15, 18, 19, 20, 23], "retain": [0, 13], "retriev": 20, "return": [0, 1, 2, 3, 4, 5, 6, 12, 15, 16, 18, 23], "return_lower_rank": 0, "revers": 20, "rewrit": 0, "rewritten": 12, "rhf": [0, 15, 18, 20, 21, 23], "right": [0, 4, 12, 14, 16], "ring": 0, "rise": [2, 8], "rng": [9, 13, 15, 19, 20], "rohf": 20, "root": 0, "rotat": [0, 1, 2, 4, 5, 8, 10, 11, 14, 21, 23], "rotated_vec": 14, "routin": [2, 9, 16], "row": [0, 2, 14], "rtol": [0, 2, 4, 6], "rtype": [0, 2, 4], "run": [0, 4, 13, 15, 18, 19, 20, 21, 22, 23], "run_ccsd": 0, "run_cisd": 0, "run_fci": [0, 15, 18], "run_mp2": 0, "run_sci": 0, "rung": 11, "runner": [15, 18], "rust": 22, "rvert": 0, "s_": [0, 14], "s_a": 0, "s_b": 0, "sa": 9, "same": [0, 9, 11, 12, 13, 14, 15, 18, 20], "sampl": [0, 4, 5, 6, 9], "sample_slater_determin": [0, 7], "sample_state_vector": [0, 7], "sampler": [0, 4, 17, 21], "samplerpubresult": 4, "sandwich": 13, "satisfi": [0, 12, 16, 20, 22], "save": [0, 18, 22], "scalar": [0, 16], "scale": [8, 13, 15, 19], "scf": [0, 15, 18, 20, 21, 23], "scf_func": 0, "scheme": 8, "sci": 0, "sci_energi": 0, "sci_vec": 0, "scipi": [0, 2, 3, 15, 16, 18, 21, 23], "search": 14, "second": [0, 2, 4, 8], "section": [8, 19], "sector": [0, 1, 2, 4, 15], "see": [0, 2, 4, 11, 13, 14, 19, 22, 23], "seed": [0, 4, 5, 6, 9, 13, 14, 19, 20, 21], "seen": 20, "select": 3, "sens": [13, 23], "separ": [0, 11, 14], "sequenc": [0, 2, 4, 13], "seri": 2, "serial": 0, "serializ": [15, 18], "set": [0, 1, 2, 4, 5, 8, 11, 12, 13, 19, 23], "setup": 11, "sever": [9, 13], "shape": [0, 2, 5, 11, 23], "share": 11, "shell": [11, 18], "shot": [0, 4, 20], "should": [0, 1, 2, 4, 5, 6, 9, 12, 22], "show": [13, 15, 16, 18, 19, 20], "shown": 16, "side": 0, "sigma": [0, 1, 4, 8, 9, 11, 12], "sign": 0, "signatur": 3, "signific": 23, "significantli": 13, "similar": 18, "simpl": [20, 22], "simpler": 0, "simpli": [4, 13, 14], "simplist": 23, "simul": [0, 4, 8, 11, 12, 14, 17, 21, 24], "simulate_qdrift_double_factor": [0, 7], "simulate_trotter_diag_coulomb_split_op": [0, 7], "simulate_trotter_double_factor": [0, 7, 8, 23], "simulate_trotter_step_double_factor": 23, "simulatetrotterdiagcoulombsplitopjw": [4, 7], "simulatetrotterdoublefactorizedjw": [4, 7, 13, 19], "sin": [0, 15], "sinc": [0, 2, 11, 12, 15, 18], "singl": [0, 1, 4, 6, 8, 13, 23], "singlefactorizedhamiltonian": [0, 7], "singular": [0, 2], "site": [0, 15, 18], "size": [0, 3, 15], "slater": [0, 4], "slater_determin": [0, 7], "slater_determinant_rdm": [0, 7], "slice": 2, "small": 2, "smaller": [0, 2, 8, 16, 23], "so": [0, 2, 6, 8, 11, 12, 13, 15, 16, 22, 23], "softwar": [0, 21], "solv": 3, "some": [0, 2, 6, 9, 13, 14, 16, 18, 20], "sometim": [0, 14], "sort": 20, "sourc": [0, 1, 2, 3, 4, 5, 6, 21], "space": [0, 9, 14, 15, 18, 20, 23], "span": [0, 2], "spars": [9, 16, 23], "sparsepauliop": 4, "sparsiti": 11, "spatial": [0, 1, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 23], "speci": [4, 6], "special": [2, 5, 11, 13, 21], "specif": 14, "specifi": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 15, 23], "spectral": 0, "spin": [0, 1, 2, 4, 5, 6, 7, 12, 13, 14, 15, 16, 18, 20, 21], "spin_squar": [0, 7], "spin_sum": 0, "spinless": [0, 4, 5, 6], "split": [0, 4, 23], "squar": [0, 2, 11, 13, 18, 20], "stack": 0, "stage": [4, 13, 19], "standard": 18, "standard_norm": [9, 13, 19], "star": 2, "start": 0, "state": [0, 1, 3, 4, 5, 9, 10, 11, 12, 13, 18, 20, 21, 23], "statevector": [0, 4, 7], "static": [0, 4], "statist": 20, "statu": [15, 18], "step": [0, 4, 8, 12, 15, 19, 23], "step_tim": 23, "still": [0, 8], "sto": [0, 15, 18, 23], "stop": [3, 15, 18], "store": [0, 2, 4, 6, 9, 11, 13, 18, 19, 23], "store_cisd_vec": 0, "store_fci_vec": 0, "store_sci_vec": 0, "store_t1": 0, "store_t2": 0, "str": [0, 2, 4, 6], "straightforward": 2, "strategi": 0, "strength": 0, "strictli": 3, "string": [0, 14, 16], "strings_a": 0, "strings_b": 0, "strings_to_address": [0, 7], "strings_to_indic": [0, 7], "structur": [0, 8], "sub": 0, "subclass": 4, "subdirectori": 22, "submit": 20, "subroutin": 12, "subspac": [0, 2, 16], "substitut": 0, "subsystem": [14, 22], "subtract": [0, 16], "success": [15, 18], "sudo": 22, "suffix": 15, "suggest": 19, "sum": [0, 4, 8, 23], "sum_": [0, 1, 2, 4, 8, 9, 11, 12, 23], "sum_j": 12, "sum_k": [8, 12], "sum_p": 0, "sum_t": 0, "summat": 0, "support": [0, 2, 9, 14, 16, 20, 22], "supportsapplyunitari": [0, 7], "supportsapproximateequ": [0, 7], "supportsdiagon": [0, 7], "supportsfermionoper": [0, 7], "supportslinearoper": [0, 7], "supportstrac": [0, 7], "suzuki": [0, 23], "swap": [0, 11, 13], "symmetr": [0, 2, 4, 5, 8, 11], "symmetri": [0, 12, 15, 18, 20, 21, 23], "system": [0, 4, 6, 12, 14, 22], "t": [0, 2, 4, 8, 11, 12, 20, 21], "t1": 0, "t1a": 0, "t1b": 0, "t2": [0, 2, 5, 18, 20], "t2_amplitud": 2, "t2aa": 0, "t2ab": 0, "t2bb": 0, "t_": 2, "tabl": [0, 16], "take": [0, 3, 18, 19], "taken": 11, "target": [2, 13], "target_orb": 0, "tau": [0, 1, 4, 8, 9, 11], "taylor": 2, "tensor": [0, 1, 2, 5, 8, 9, 18, 23], "term": [0, 2, 5, 8, 11, 16, 23], "test": [7, 21, 23], "text": [0, 8, 9], "th": [2, 12], "than": [0, 4, 5, 12, 13, 14, 18, 21], "thei": [0, 9, 11, 12, 16], "them": [11, 13, 14], "therefor": [0, 2, 11], "theta": [0, 15], "thi": [0, 2, 4, 5, 8, 9, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23], "think": 2, "third": [0, 2], "those": [3, 18], "though": 13, "three": [0, 1, 4, 9, 16], "threshold": [0, 2, 3], "thu": 8, "time": [0, 2, 3, 4, 9, 13, 14, 19, 20, 23], "titl": 21, "tmp": [9, 15, 18], "tmp4yegu0sa": 15, "tmpjk2lvol7": 18, "to_diag_coulomb_mat": 0, "to_fcidump": 0, "to_json": 0, "to_molecular_hamiltonian": 0, "to_number_represent": 0, "to_orbital_rot": 0, "to_paramet": [0, 18], "to_t_amplitud": 0, "to_z_represent": 0, "tol": [0, 2, 23], "toler": [0, 2, 4, 6, 11, 23], "too": 2, "top": 20, "topologi": [11, 13, 18], "toru": 0, "total": [0, 4, 8, 15, 18, 23], "tox": [15, 18], "trace": [0, 7, 9, 23], "tracea": [9, 23], "trajectori": 0, "transform": [0, 1, 4], "transformationpass": 4, "transpil": [4, 13, 17, 21], "transpiled_opt": 13, "treat": 0, "triangl": 11, "trianglular": [0, 2], "triangular": [0, 2, 4], "triplet": 6, "trotter": [0, 4, 21, 24], "true": [0, 2, 3, 4, 6, 16, 18, 20], "truncat": 8, "try": 23, "tunnel": 0, "tupl": [0, 1, 2, 4, 6, 12, 15, 16, 23], "tutori": [21, 23], "twice": [0, 15, 19], "two": [0, 2, 5, 8, 9, 11, 13, 14, 15, 18, 22, 23], "two_body_integr": 0, "two_body_tensor": [0, 2, 9, 23], "type": [0, 1, 2, 3, 4, 5, 6, 20, 22], "typeerror": 0, "typic": 0, "u": [0, 1, 2, 4, 8, 11, 12], "u_": 4, "u_k": 0, "ubuntu": 22, "uccsd": [0, 5, 20], "uccsdoprestrictedr": [0, 5, 7], "ucj": [0, 4, 5], "ucj_balanced_jw": 13, "ucj_op": [4, 13, 19, 20], "ucj_oper": 4, "ucjoper": [0, 4, 5, 7], "ucjoperatorjw": [4, 7], "ucjopspinbalanc": [0, 4, 5, 7, 11, 13, 18, 20], "ucjopspinbalancedjw": [4, 7, 13, 19, 20], "ucjopspinless": [0, 4, 5, 7], "ucjopspinlessjw": [4, 7], "ucjopspinunbalanc": [0, 4, 5, 7, 11, 20], "ucjopspinunbalancedjw": [4, 7, 13, 19, 20], "uhf": 20, "unbalanc": [0, 4, 5, 20], "uncorrel": 0, "under": [0, 4], "underli": 4, "unifi": 20, "uniform": [0, 4, 5], "unimpl": 4, "union": [2, 4], "unit": 2, "unitari": [0, 1, 2, 4, 5, 8, 10, 12, 14, 17, 21], "univers": 2, "unlik": 0, "unord": 0, "untouch": 0, "up": [0, 2, 6, 8, 14, 22], "updat": [0, 8], "upon": 16, "upper": [0, 2, 4, 11], "url": 21, "us": [0, 1, 2, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 21, 23], "usag": [0, 2, 16, 19], "user": 22, "userwarn": [9, 15, 18], "usual": 0, "util": [2, 5, 6, 8], "v": [0, 20], "v_": 0, "v_i": 2, "v_j": 2, "vacuum": 4, "valid": [0, 4, 5, 6], "valu": [0, 1, 2, 3, 4, 5, 6, 9, 11, 18, 19, 23], "valueerror": [0, 2, 4], "vari": [0, 4], "variabl": [14, 23], "variant": [11, 13, 18], "variat": [0, 3, 11, 18], "variation": 18, "varphi": 0, "vdot": [18, 21, 23], "ve": 23, "vec": [0, 1, 2, 4, 9, 12, 14, 16, 21, 23], "vec_a": 0, "vec_b": 0, "vector": [0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 15, 16, 18, 21], "verbos": 6, "verifi": 2, "version": 4, "vertic": 0, "via": [0, 23], "view": [0, 16], "volum": 22, "w": 0, "w_k": 0, "wa": [0, 3, 4, 11], "wai": 11, "want": 13, "warn": [9, 15, 18, 20], "water": 15, "wavefunct": [3, 18], "we": [0, 2, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23], "web": 22, "weight": 14, "well": [3, 14, 21, 22, 23], "when": [0, 3, 4, 9, 11, 13, 14, 16, 19, 21], "whenev": 0, "where": [0, 1, 2, 3, 4, 8, 11, 12, 14, 22, 23], "whether": [0, 1, 2, 3, 4, 5, 16], "which": [0, 2, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16, 22, 23], "while": [8, 11], "whose": [0, 2, 14], "width": 5, "wigner": [0, 4], "william": 2, "window": [21, 22], "wise": 2, "with_final_orbital_rot": [0, 5], "with_phase_angl": 0, "with_phi": 0, "within": [0, 2, 13, 16, 18, 21], "without": [11, 13, 18], "won": 21, "word": [0, 11, 20], "work": [9, 13, 15, 18, 19, 21, 22], "workflow": 20, "would": [13, 14], "wrapper": 23, "write": 23, "written": 8, "wrote": 23, "wsl": 22, "x": [0, 3, 4, 13, 15, 18, 19, 20], "x0": [3, 15, 18], "xx_plus_yi": [13, 19], "xxplusyyg": [13, 19], "y": 0, "yaml": 22, "yet": [9, 18], "yield": [0, 2, 4, 8, 11, 15, 23], "you": [0, 1, 2, 4, 9, 14, 18, 21, 22, 23], "your": [19, 22], "z": [0, 1, 2, 4, 5, 12, 16, 21], "z_represent": [0, 1, 4, 5], "zero": [0, 2, 4, 9, 19], "zip": [0, 15, 18, 23], "\u03c8": 18}, "titles": ["ffsim", "ffsim.contract", "ffsim.linalg", "ffsim.optimize", "ffsim.qiskit", "ffsim.random", "ffsim.testing", "API reference", "Double-factorized representation of the molecular Hamiltonian", "Hamiltonians", "Explanations", "The local unitary cluster Jastrow (LUCJ) ansatz", "Orbital rotations and quadratic Hamiltonians", "Qubit gate decompositions of fermionic gates", "State vectors and gates", "How to simulate entanglement forging", "How to use the FermionOperator class", "How-to guides", "How to simulate the local unitary cluster Jastrow (LUCJ) ansatz", "How to build and transpile Qiskit quantum circuits", "How to use ffsim\u2019s Qiskit Sampler primitive", "ffsim", "Installation", "Implementing Trotter simulation of the double-factorized Hamiltonian", "Tutorials"], "titleterms": {"": 20, "The": 11, "action": 9, "an": 20, "ansatz": [11, 15, 18], "api": 7, "applic": 8, "background": 8, "balanc": [11, 19], "brief": 8, "build": [15, 19, 23], "can": 20, "choos": 15, "circuit": [19, 20], "cite": 21, "class": 16, "close": 20, "cluster": [11, 13, 18, 19], "code": 21, "comput": 15, "content": 21, "contract": 1, "coulomb": [13, 19], "criteria": 20, "data": 9, "decomposit": 13, "determin": [13, 19], "diagon": [13, 19], "docker": 22, "doubl": [8, 13, 19, 23], "energi": 15, "entangl": 15, "evolut": [8, 12, 13, 19], "exampl": [20, 21], "explan": 10, "factor": [8, 13, 19, 23], "fermion": [13, 14], "fermionoper": 16, "ffsim": [0, 1, 2, 3, 4, 5, 6, 20, 21], "ffsimsampl": 20, "fock": [13, 19], "forg": 15, "formula": 8, "from": [20, 22], "gate": [13, 14, 19], "gener": [11, 18], "guid": 17, "hamiltonian": [8, 9, 12, 13, 19, 23], "hartre": [13, 19], "how": [15, 16, 17, 18, 19, 20], "implement": 23, "initi": 15, "instal": [21, 22], "jastrow": [11, 13, 18, 19], "linalg": 2, "linear": 18, "linearoper": 9, "local": [11, 13, 18], "lucj": [11, 18, 20], "merg": 13, "method": 18, "molecul": [15, 20], "molecular": 8, "more": 20, "number": [13, 19], "occup": 15, "open": 20, "oper": [9, 13, 15, 19], "optim": [3, 15, 18], "orbit": [12, 13, 19], "overview": 19, "pip": 22, "prepar": [13, 19], "primit": 20, "qiskit": [4, 19, 20], "quadrat": 12, "quantum": 19, "qubit": 13, "random": 5, "refer": [7, 15], "represent": [8, 9], "rotat": [12, 13, 19], "sampl": 20, "sampler": 20, "scipi": 9, "shell": 20, "simul": [13, 15, 18, 19, 23], "slater": [13, 19], "sourc": 22, "spin": [11, 19], "spinless": 14, "state": [14, 19], "sum": [13, 19], "suzuki": 8, "test": 6, "time": [8, 12], "transform": 19, "transpil": 19, "treat": 14, "trotter": [8, 13, 19, 23], "tutori": 24, "ucj": [11, 13, 18, 19], "unbalanc": [11, 19], "unitari": [11, 13, 18, 19], "us": [16, 20, 22], "vector": 14, "via": [8, 9], "within": 22}}) \ No newline at end of file +Search.setIndex({"alltitles": {"API reference": [[7, null]], "Application to the double-factorized Hamiltonian": [[8, "Application-to-the-double-factorized-Hamiltonian"]], "Application to time evolution via Trotter-Suzuki formulas": [[8, "Application-to-time-evolution-via-Trotter-Suzuki-formulas"]], "Brief background on Trotter-Suzuki formulas": [[8, "Brief-background-on-Trotter-Suzuki-formulas"]], "Build a molecule": [[15, "Build-a-molecule"]], "Build the Hamiltonian": [[23, "Build-the-Hamiltonian"]], "Choose reference occupations": [[15, "Choose-reference-occupations"]], "Circuit transpilation": [[19, "Circuit-transpilation"]], "Citing ffsim": [[21, "citing-ffsim"]], "Code example": [[21, "code-example"]], "Compute energy": [[15, "Compute-energy"]], "Contents": [[21, "contents"]], "Criteria for circuits that FfsimSampler can sample": [[20, "Criteria-for-circuits-that-FfsimSampler-can-sample"]], "Data representation": [[9, "Data-representation"]], "Diagonal Coulomb evolution": [[13, "Diagonal-Coulomb-evolution"], [19, "Diagonal-Coulomb-evolution"]], "Double-factorized representation": [[8, "Double-factorized-representation"]], "Double-factorized representation of the molecular Hamiltonian": [[8, null]], "Example of using FfsimSampler": [[20, "Example-of-using-FfsimSampler"]], "Explanations": [[10, null]], "Gates": [[14, "Gates"]], "General UCJ ansatz": [[18, "General-UCJ-ansatz"]], "Hamiltonians": [[9, null]], "Hartree-Fock and Slater determinant preparation": [[13, "Hartree-Fock-and-Slater-determinant-preparation"]], "How to build and transpile Qiskit quantum circuits": [[19, null]], "How to simulate entanglement forging": [[15, null]], "How to simulate the local unitary cluster Jastrow (LUCJ) ansatz": [[18, null]], "How to use ffsim\u2019s Qiskit Sampler primitive": [[20, null]], "How to use the FermionOperator class": [[16, null]], "How-to guides": [[17, null]], "Implement Trotter simulation": [[23, "Implement-Trotter-simulation"]], "Implementing Trotter simulation of the double-factorized Hamiltonian": [[23, null]], "Initialize ansatz operator": [[15, "Initialize-ansatz-operator"]], "Install from source": [[22, "install-from-source"]], "Installation": [[21, "installation"], [22, null]], "LUCJ ansatz": [[18, "LUCJ-ansatz"]], "Locality in the UCJ operator": [[13, "Locality-in-the-UCJ-operator"]], "Merging orbital rotations": [[13, "Merging-orbital-rotations"]], "More examples": [[20, "More-examples"]], "Number operator sum evolution": [[13, "Number-operator-sum-evolution"], [19, "Number-operator-sum-evolution"]], "Operator action via SciPy LinearOperators": [[9, "Operator-action-via-SciPy-LinearOperators"]], "Optimize energy": [[15, "Optimize-energy"]], "Optimize with the linear method": [[18, "Optimize-with-the-linear-method"]], "Orbital rotation": [[13, "Orbital-rotation"], [19, "Orbital-rotation"]], "Orbital rotations": [[12, "Orbital-rotations"]], "Orbital rotations and quadratic Hamiltonians": [[12, null]], "Overview of gates": [[19, "Overview-of-gates"]], "Pip install": [[22, "pip-install"]], "Prepare Hartree-Fock state": [[19, "Prepare-Hartree-Fock-state"]], "Prepare Slater determinant": [[19, "Prepare-Slater-determinant"]], "Qubit gate decompositions of fermionic gates": [[13, null]], "Sampling from an LUCJ circuit for a closed-shell molecule": [[20, "Sampling-from-an-LUCJ-circuit-for-a-closed-shell-molecule"]], "Sampling from an LUCJ circuit for an open-shell molecule": [[20, "Sampling-from-an-LUCJ-circuit-for-an-open-shell-molecule"]], "Spin-balanced and spin-unbalanced ansatzes": [[11, "Spin-balanced-and-spin-unbalanced-ansatzes"]], "Spin-balanced unitary cluster Jastrow (UCJ) operator": [[19, "Spin-balanced-unitary-cluster-Jastrow-(UCJ)-operator"]], "Spin-unbalanced unitary cluster Jastrow (UCJ) operator": [[19, "Spin-unbalanced-unitary-cluster-Jastrow-(UCJ)-operator"]], "State preparation gates": [[19, "State-preparation-gates"]], "State vectors": [[14, "State-vectors"]], "State vectors and gates": [[14, null]], "The general unitary cluster Jastrow (UCJ) ansatz": [[11, "The-general-unitary-cluster-Jastrow-(UCJ)-ansatz"]], "The local UCJ (LUCJ) ansatz": [[11, "The-local-UCJ-(LUCJ)-ansatz"]], "The local unitary cluster Jastrow (LUCJ) ansatz": [[11, null]], "Time evolution by a quadratic Hamiltonian": [[12, "Time-evolution-by-a-quadratic-Hamiltonian"]], "Treating spinless fermions": [[14, "Treating-spinless-fermions"]], "Trotter simulation of double-factorized Hamiltonian": [[13, "Trotter-simulation-of-double-factorized-Hamiltonian"], [19, "Trotter-simulation-of-double-factorized-Hamiltonian"]], "Tutorials": [[24, null]], "Unitary cluster Jastrow (UCJ) operator": [[13, "Unitary-cluster-Jastrow-(UCJ)-operator"]], "Unitary transformation gates": [[19, "Unitary-transformation-gates"]], "Use within Docker": [[22, "use-within-docker"]], "ffsim": [[0, null], [21, null]], "ffsim.contract": [[1, null]], "ffsim.linalg": [[2, null]], "ffsim.optimize": [[3, null]], "ffsim.qiskit": [[4, null]], "ffsim.random": [[5, null]], "ffsim.testing": [[6, null]]}, "docnames": ["api/ffsim", "api/ffsim.contract", "api/ffsim.linalg", "api/ffsim.optimize", "api/ffsim.qiskit", "api/ffsim.random", "api/ffsim.testing", "api/index", "explanations/double-factorized", "explanations/hamiltonians", "explanations/index", "explanations/lucj", "explanations/orbital-rotation", "explanations/qiskit-gate-decompositions", "explanations/state-vectors-and-gates", "how-to-guides/entanglement-forging", "how-to-guides/fermion-operator", "how-to-guides/index", "how-to-guides/lucj", "how-to-guides/qiskit-circuits", "how-to-guides/qiskit-sampler", "index", "install", "tutorials/double-factorized-trotter", "tutorials/index"], "envversion": {"nbsphinx": 4, "sphinx": 64, "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}, "filenames": ["api/ffsim.rst", "api/ffsim.contract.rst", "api/ffsim.linalg.rst", "api/ffsim.optimize.rst", "api/ffsim.qiskit.rst", "api/ffsim.random.rst", "api/ffsim.testing.rst", "api/index.md", "explanations/double-factorized.ipynb", "explanations/hamiltonians.ipynb", "explanations/index.md", "explanations/lucj.ipynb", "explanations/orbital-rotation.ipynb", "explanations/qiskit-gate-decompositions.ipynb", "explanations/state-vectors-and-gates.ipynb", "how-to-guides/entanglement-forging.ipynb", "how-to-guides/fermion-operator.ipynb", "how-to-guides/index.md", "how-to-guides/lucj.ipynb", "how-to-guides/qiskit-circuits.ipynb", "how-to-guides/qiskit-sampler.ipynb", "index.md", "install.md", "tutorials/double-factorized-trotter.ipynb", "tutorials/index.md"], "indexentries": {"__init__() (ffsim.qiskit.diagcoulombevolutionjw method)": [[4, "ffsim.qiskit.DiagCoulombEvolutionJW.__init__", false]], "__init__() (ffsim.qiskit.diagcoulombevolutionspinlessjw method)": [[4, "ffsim.qiskit.DiagCoulombEvolutionSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.dropnegligible method)": [[4, "ffsim.qiskit.DropNegligible.__init__", false]], "__init__() (ffsim.qiskit.ffsimsampler method)": [[4, "ffsim.qiskit.FfsimSampler.__init__", false]], "__init__() (ffsim.qiskit.givensansatzoperatorjw method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorJW.__init__", false]], "__init__() (ffsim.qiskit.givensansatzoperatorspinlessjw method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.givensansatzopjw method)": [[4, "ffsim.qiskit.GivensAnsatzOpJW.__init__", false]], "__init__() (ffsim.qiskit.givensansatzopspinlessjw method)": [[4, "ffsim.qiskit.GivensAnsatzOpSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.numnumansatzopspinbalancedjw method)": [[4, "ffsim.qiskit.NumNumAnsatzOpSpinBalancedJW.__init__", false]], "__init__() (ffsim.qiskit.numopsumevolutionjw method)": [[4, "ffsim.qiskit.NumOpSumEvolutionJW.__init__", false]], "__init__() (ffsim.qiskit.numopsumevolutionspinlessjw method)": [[4, "ffsim.qiskit.NumOpSumEvolutionSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.orbitalrotationjw method)": [[4, "ffsim.qiskit.OrbitalRotationJW.__init__", false]], "__init__() (ffsim.qiskit.orbitalrotationspinlessjw method)": [[4, "ffsim.qiskit.OrbitalRotationSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.preparehartreefockjw method)": [[4, "ffsim.qiskit.PrepareHartreeFockJW.__init__", false]], "__init__() (ffsim.qiskit.preparehartreefockspinlessjw method)": [[4, "ffsim.qiskit.PrepareHartreeFockSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.prepareslaterdeterminantjw method)": [[4, "ffsim.qiskit.PrepareSlaterDeterminantJW.__init__", false]], "__init__() (ffsim.qiskit.prepareslaterdeterminantspinlessjw method)": [[4, "ffsim.qiskit.PrepareSlaterDeterminantSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.simulatetrotterdiagcoulombsplitopjw method)": [[4, "ffsim.qiskit.SimulateTrotterDiagCoulombSplitOpJW.__init__", false]], "__init__() (ffsim.qiskit.simulatetrotterdoublefactorizedjw method)": [[4, "ffsim.qiskit.SimulateTrotterDoubleFactorizedJW.__init__", false]], "__init__() (ffsim.qiskit.ucjoperatorjw method)": [[4, "ffsim.qiskit.UCJOperatorJW.__init__", false]], "__init__() (ffsim.qiskit.ucjopspinbalancedjw method)": [[4, "ffsim.qiskit.UCJOpSpinBalancedJW.__init__", false]], "__init__() (ffsim.qiskit.ucjopspinlessjw method)": [[4, "ffsim.qiskit.UCJOpSpinlessJW.__init__", false]], "__init__() (ffsim.qiskit.ucjopspinunbalancedjw method)": [[4, "ffsim.qiskit.UCJOpSpinUnbalancedJW.__init__", false]], "__init_subclass__() (ffsim.qiskit.givensansatzoperatorjw method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorJW.__init_subclass__", false]], "__init_subclass__() (ffsim.qiskit.givensansatzoperatorspinlessjw method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW.__init_subclass__", false]], "__init_subclass__() (ffsim.qiskit.ucjoperatorjw method)": [[4, "ffsim.qiskit.UCJOperatorJW.__init_subclass__", false]], "__new__() (ffsim.qiskit.givensansatzoperatorjw static method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorJW.__new__", false]], "__new__() (ffsim.qiskit.givensansatzoperatorspinlessjw static method)": [[4, "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW.__new__", false]], "__new__() (ffsim.qiskit.ucjoperatorjw static method)": [[4, "ffsim.qiskit.UCJOperatorJW.__new__", false]], "action (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.action", false]], "active_space (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.active_space", false]], "addresses_to_strings() (in module ffsim)": [[0, "ffsim.addresses_to_strings", false]], "alpha (ffsim.spin attribute)": [[0, "ffsim.Spin.ALPHA", false]], "alpha_and_beta (ffsim.spin attribute)": [[0, "ffsim.Spin.ALPHA_AND_BETA", false]], "apply_diag_coulomb_evolution() (in module ffsim)": [[0, "ffsim.apply_diag_coulomb_evolution", false]], "apply_fsim_gate() (in module ffsim)": [[0, "ffsim.apply_fsim_gate", false]], "apply_fswap_gate() (in module ffsim)": [[0, "ffsim.apply_fswap_gate", false]], "apply_givens_rotation() (in module ffsim)": [[0, "ffsim.apply_givens_rotation", false]], "apply_hop_gate() (in module ffsim)": [[0, "ffsim.apply_hop_gate", false]], "apply_matrix_to_slices() (in module ffsim.linalg)": [[2, "ffsim.linalg.apply_matrix_to_slices", false]], "apply_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_interaction", false]], "apply_num_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_num_interaction", false]], "apply_num_op_prod_interaction() (in module ffsim)": [[0, "ffsim.apply_num_op_prod_interaction", false]], "apply_num_op_sum_evolution() (in module ffsim)": [[0, "ffsim.apply_num_op_sum_evolution", false]], "apply_on_site_interaction() (in module ffsim)": [[0, "ffsim.apply_on_site_interaction", false]], "apply_orbital_rotation() (in module ffsim)": [[0, "ffsim.apply_orbital_rotation", false]], "apply_tunneling_interaction() (in module ffsim)": [[0, "ffsim.apply_tunneling_interaction", false]], "apply_unitary() (in module ffsim)": [[0, "ffsim.apply_unitary", false]], "approx_eq() (in module ffsim)": [[0, "ffsim.approx_eq", false]], "assert_allclose_up_to_global_phase() (in module ffsim.testing)": [[6, "ffsim.testing.assert_allclose_up_to_global_phase", false]], "atom (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.atom", false]], "basis (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.basis", false]], "beta (ffsim.spin attribute)": [[0, "ffsim.Spin.BETA", false]], "bit_array (ffsim.bitstringtype attribute)": [[0, "ffsim.BitstringType.BIT_ARRAY", false]], "bitstringtype (class in ffsim)": [[0, "ffsim.BitstringType", false]], "c (ffsim.linalg.givensrotation attribute)": [[2, "ffsim.linalg.GivensRotation.c", false]], "ccsd_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_energy", false]], "ccsd_t1 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_t1", false]], "ccsd_t2 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_t2", false]], "cisd_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.cisd_energy", false]], "cisd_vec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.cisd_vec", false]], "coeffs (ffsim.productstatesum attribute)": [[0, "ffsim.ProductStateSum.coeffs", false]], "conserves_particle_number() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_particle_number", false]], "conserves_spin_z() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_spin_z", false]], "constant (ffsim.diagonalcoulombhamiltonian attribute)": [[0, "ffsim.DiagonalCoulombHamiltonian.constant", false]], "constant (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.constant", false]], "constant (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.constant", false]], "constant (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.constant", false]], "contract_diag_coulomb() (in module ffsim.contract)": [[1, "ffsim.contract.contract_diag_coulomb", false]], "contract_num_op_sum() (in module ffsim.contract)": [[1, "ffsim.contract.contract_num_op_sum", false]], "contract_one_body() (in module ffsim.contract)": [[1, "ffsim.contract.contract_one_body", false]], "core_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.core_energy", false]], "cre() (in module ffsim)": [[0, "ffsim.cre", false]], "cre_a() (in module ffsim)": [[0, "ffsim.cre_a", false]], "cre_b() (in module ffsim)": [[0, "ffsim.cre_b", false]], "des() (in module ffsim)": [[0, "ffsim.des", false]], "des_a() (in module ffsim)": [[0, "ffsim.des_a", false]], "des_b() (in module ffsim)": [[0, "ffsim.des_b", false]], "diag() (in module ffsim)": [[0, "ffsim.diag", false]], "diag_coulomb_linop() (in module ffsim.contract)": [[1, "ffsim.contract.diag_coulomb_linop", false]], "diag_coulomb_mats (ffsim.diagonalcoulombhamiltonian attribute)": [[0, "ffsim.DiagonalCoulombHamiltonian.diag_coulomb_mats", false]], "diag_coulomb_mats (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.diag_coulomb_mats", false]], "diag_coulomb_mats (ffsim.ucjopspinbalanced attribute)": [[0, "ffsim.UCJOpSpinBalanced.diag_coulomb_mats", false]], "diag_coulomb_mats (ffsim.ucjopspinless attribute)": [[0, "ffsim.UCJOpSpinless.diag_coulomb_mats", false]], "diag_coulomb_mats (ffsim.ucjopspinunbalanced attribute)": [[0, "ffsim.UCJOpSpinUnbalanced.diag_coulomb_mats", false]], "diag_coulomb_mats_alpha_alpha (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.diag_coulomb_mats_alpha_alpha", false]], "diag_coulomb_mats_alpha_alpha (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_alpha", false]], "diag_coulomb_mats_alpha_beta (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.diag_coulomb_mats_alpha_beta", false]], "diag_coulomb_mats_alpha_beta (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_beta", false]], "diagcoulombevolutionjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.DiagCoulombEvolutionJW", false]], "diagcoulombevolutionspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.DiagCoulombEvolutionSpinlessJW", false]], "diagonalcoulombhamiltonian (class in ffsim)": [[0, "ffsim.DiagonalCoulombHamiltonian", false]], "dim() (in module ffsim)": [[0, "ffsim.dim", false]], "dims() (in module ffsim)": [[0, "ffsim.dims", false]], "dipole_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.dipole_integrals", false]], "double_factorized() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized", false]], "double_factorized_t2() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized_t2", false]], "double_factorized_t2_alpha_beta() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized_t2_alpha_beta", false]], "doublefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.DoubleFactorizedHamiltonian", false]], "dropnegligible (class in ffsim.qiskit)": [[4, "ffsim.qiskit.DropNegligible", false]], "expectation_one_body_power() (in module ffsim)": [[0, "ffsim.expectation_one_body_power", false]], "expectation_one_body_product() (in module ffsim)": [[0, "ffsim.expectation_one_body_product", false]], "expectation_product_state() (ffsim.singlefactorizedhamiltonian method)": [[0, "ffsim.SingleFactorizedHamiltonian.expectation_product_state", false]], "expm_multiply_taylor() (in module ffsim.linalg)": [[2, "ffsim.linalg.expm_multiply_taylor", false]], "fci_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.fci_energy", false]], "fci_vec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.fci_vec", false]], "fermi_hubbard_1d() (in module ffsim)": [[0, "ffsim.fermi_hubbard_1d", false]], "fermi_hubbard_2d() (in module ffsim)": [[0, "ffsim.fermi_hubbard_2d", false]], "fermion_operator() (in module ffsim)": [[0, "ffsim.fermion_operator", false]], "fermionaction (class in ffsim)": [[0, "ffsim.FermionAction", false]], "fermionoperator (class in ffsim)": [[0, "ffsim.FermionOperator", false]], "ffsim": [[0, "module-ffsim", false]], "ffsim.contract": [[1, "module-ffsim.contract", false]], "ffsim.linalg": [[2, "module-ffsim.linalg", false]], "ffsim.optimize": [[3, "module-ffsim.optimize", false]], "ffsim.qiskit": [[4, "module-ffsim.qiskit", false]], "ffsim.random": [[5, "module-ffsim.random", false]], "ffsim.testing": [[6, "module-ffsim.testing", false]], "ffsim_vec_to_qiskit_vec() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.ffsim_vec_to_qiskit_vec", false]], "ffsimsampler (class in ffsim.qiskit)": [[4, "ffsim.qiskit.FfsimSampler", false]], "final_orbital_rotation (ffsim.hopgateansatzoperator attribute)": [[0, "ffsim.HopGateAnsatzOperator.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.ucjopspinbalanced attribute)": [[0, "ffsim.UCJOpSpinBalanced.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.ucjopspinless attribute)": [[0, "ffsim.UCJOpSpinless.final_orbital_rotation", false]], "final_orbital_rotation (ffsim.ucjopspinunbalanced attribute)": [[0, "ffsim.UCJOpSpinUnbalanced.final_orbital_rotation", false]], "final_state_vector() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.final_state_vector", false]], "from_diag_coulomb_mats() (ffsim.numnumansatzopspinbalanced static method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.from_diag_coulomb_mats", false]], "from_fcidump() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_fcidump", false]], "from_fcidump() (ffsim.molecularhamiltonian static method)": [[0, "ffsim.MolecularHamiltonian.from_fcidump", false]], "from_fermion_operator() (ffsim.diagonalcoulombhamiltonian static method)": [[0, "ffsim.DiagonalCoulombHamiltonian.from_fermion_operator", false]], "from_json() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_json", false]], "from_mole() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_mole", false]], "from_molecular_hamiltonian() (ffsim.doublefactorizedhamiltonian static method)": [[0, "ffsim.DoubleFactorizedHamiltonian.from_molecular_hamiltonian", false]], "from_molecular_hamiltonian() (ffsim.singlefactorizedhamiltonian static method)": [[0, "ffsim.SingleFactorizedHamiltonian.from_molecular_hamiltonian", false]], "from_orbital_rotation() (ffsim.givensansatzop static method)": [[0, "ffsim.GivensAnsatzOp.from_orbital_rotation", false]], "from_parameters() (ffsim.givensansatzop static method)": [[0, "ffsim.GivensAnsatzOp.from_parameters", false]], "from_parameters() (ffsim.givensansatzoperator static method)": [[0, "ffsim.GivensAnsatzOperator.from_parameters", false]], "from_parameters() (ffsim.hopgateansatzoperator static method)": [[0, "ffsim.HopGateAnsatzOperator.from_parameters", false]], "from_parameters() (ffsim.numnumansatzopspinbalanced static method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.from_parameters", false]], "from_parameters() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.from_parameters", false]], "from_parameters() (ffsim.uccsdoprestrictedreal static method)": [[0, "ffsim.UCCSDOpRestrictedReal.from_parameters", false]], "from_parameters() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_parameters", false]], "from_parameters() (ffsim.ucjopspinbalanced static method)": [[0, "ffsim.UCJOpSpinBalanced.from_parameters", false]], "from_parameters() (ffsim.ucjopspinless static method)": [[0, "ffsim.UCJOpSpinless.from_parameters", false]], "from_parameters() (ffsim.ucjopspinunbalanced static method)": [[0, "ffsim.UCJOpSpinUnbalanced.from_parameters", false]], "from_scf() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_scf", false]], "from_t_amplitudes() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.from_t_amplitudes", false]], "from_t_amplitudes() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_t_amplitudes", false]], "from_t_amplitudes() (ffsim.ucjopspinbalanced static method)": [[0, "ffsim.UCJOpSpinBalanced.from_t_amplitudes", false]], "from_t_amplitudes() (ffsim.ucjopspinless static method)": [[0, "ffsim.UCJOpSpinless.from_t_amplitudes", false]], "from_t_amplitudes() (ffsim.ucjopspinunbalanced static method)": [[0, "ffsim.UCJOpSpinUnbalanced.from_t_amplitudes", false]], "generate_norb_nelec() (in module ffsim.testing)": [[6, "ffsim.testing.generate_norb_nelec", false]], "generate_norb_nelec_spin() (in module ffsim.testing)": [[6, "ffsim.testing.generate_norb_nelec_spin", false]], "generate_norb_nocc() (in module ffsim.testing)": [[6, "ffsim.testing.generate_norb_nocc", false]], "generate_norb_spin() (in module ffsim.testing)": [[6, "ffsim.testing.generate_norb_spin", false]], "givens_decomposition() (in module ffsim.linalg)": [[2, "ffsim.linalg.givens_decomposition", false]], "givensansatzop (class in ffsim)": [[0, "ffsim.GivensAnsatzOp", false]], "givensansatzoperator (class in ffsim)": [[0, "ffsim.GivensAnsatzOperator", false]], "givensansatzoperatorjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.GivensAnsatzOperatorJW", false]], "givensansatzoperatorspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW", false]], "givensansatzopjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.GivensAnsatzOpJW", false]], "givensansatzopspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.GivensAnsatzOpSpinlessJW", false]], "givensrotation (class in ffsim.linalg)": [[2, "ffsim.linalg.GivensRotation", false]], "hamiltonian (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.hamiltonian", false]], "hartree_fock_state() (in module ffsim)": [[0, "ffsim.hartree_fock_state", false]], "hf_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.hf_energy", false]], "hf_mo_coeff (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.hf_mo_coeff", false]], "hf_mo_occ (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.hf_mo_occ", false]], "hopgateansatzoperator (class in ffsim)": [[0, "ffsim.HopGateAnsatzOperator", false]], "i (ffsim.linalg.givensrotation attribute)": [[2, "ffsim.linalg.GivensRotation.i", false]], "indices_to_strings() (in module ffsim)": [[0, "ffsim.indices_to_strings", false]], "init_cache() (in module ffsim)": [[0, "ffsim.init_cache", false]], "int (ffsim.bitstringtype attribute)": [[0, "ffsim.BitstringType.INT", false]], "interaction_pairs (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.interaction_pairs", false]], "interaction_pairs (ffsim.givensansatzoperator attribute)": [[0, "ffsim.GivensAnsatzOperator.interaction_pairs", false]], "interaction_pairs (ffsim.hopgateansatzoperator attribute)": [[0, "ffsim.HopGateAnsatzOperator.interaction_pairs", false]], "interaction_pairs (ffsim.numnumansatzopspinbalanced attribute)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.interaction_pairs", false]], "inverse() (ffsim.qiskit.diagcoulombevolutionjw method)": [[4, "ffsim.qiskit.DiagCoulombEvolutionJW.inverse", false]], "inverse() (ffsim.qiskit.diagcoulombevolutionspinlessjw method)": [[4, "ffsim.qiskit.DiagCoulombEvolutionSpinlessJW.inverse", false]], "inverse() (ffsim.qiskit.numopsumevolutionjw method)": [[4, "ffsim.qiskit.NumOpSumEvolutionJW.inverse", false]], "inverse() (ffsim.qiskit.numopsumevolutionspinlessjw method)": [[4, "ffsim.qiskit.NumOpSumEvolutionSpinlessJW.inverse", false]], "inverse() (ffsim.qiskit.orbitalrotationjw method)": [[4, "ffsim.qiskit.OrbitalRotationJW.inverse", false]], "inverse() (ffsim.qiskit.orbitalrotationspinlessjw method)": [[4, "ffsim.qiskit.OrbitalRotationSpinlessJW.inverse", false]], "is_antihermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_antihermitian", false]], "is_hermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_hermitian", false]], "is_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_orthogonal", false]], "is_real_symmetric() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_real_symmetric", false]], "is_special_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_special_orthogonal", false]], "is_unitary() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_unitary", false]], "j (ffsim.linalg.givensrotation attribute)": [[2, "ffsim.linalg.GivensRotation.j", false]], "jordan_wigner() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.jordan_wigner", false]], "linear_operator() (in module ffsim)": [[0, "ffsim.linear_operator", false]], "lup() (in module ffsim.linalg)": [[2, "ffsim.linalg.lup", false]], "many_body_order() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.many_body_order", false]], "match_global_phase() (in module ffsim.linalg)": [[2, "ffsim.linalg.match_global_phase", false]], "mergeorbitalrotations (class in ffsim.qiskit)": [[4, "ffsim.qiskit.MergeOrbitalRotations", false]], "minimize_linear_method() (in module ffsim.optimize)": [[3, "ffsim.optimize.minimize_linear_method", false]], "mo_coeff (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mo_coeff", false]], "mo_occ (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mo_occ", false]], "modified_cholesky() (in module ffsim.linalg)": [[2, "ffsim.linalg.modified_cholesky", false]], "module": [[0, "module-ffsim", false], [1, "module-ffsim.contract", false], [2, "module-ffsim.linalg", false], [3, "module-ffsim.optimize", false], [4, "module-ffsim.qiskit", false], [5, "module-ffsim.random", false], [6, "module-ffsim.testing", false]], "mole (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.mole", false]], "moleculardata (class in ffsim)": [[0, "ffsim.MolecularData", false]], "molecularhamiltonian (class in ffsim)": [[0, "ffsim.MolecularHamiltonian", false]], "mp2_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mp2_energy", false]], "mp2_t2 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mp2_t2", false]], "multireference_state() (in module ffsim)": [[0, "ffsim.multireference_state", false]], "multireference_state_prod() (in module ffsim)": [[0, "ffsim.multireference_state_prod", false]], "n_params() (ffsim.givensansatzop static method)": [[0, "ffsim.GivensAnsatzOp.n_params", false]], "n_params() (ffsim.numnumansatzopspinbalanced static method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.n_params", false]], "n_params() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.n_params", false]], "n_params() (ffsim.uccsdoprestrictedreal static method)": [[0, "ffsim.UCCSDOpRestrictedReal.n_params", false]], "n_params() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.n_params", false]], "n_params() (ffsim.ucjopspinbalanced static method)": [[0, "ffsim.UCJOpSpinBalanced.n_params", false]], "n_params() (ffsim.ucjopspinless static method)": [[0, "ffsim.UCJOpSpinless.n_params", false]], "n_params() (ffsim.ucjopspinunbalanced static method)": [[0, "ffsim.UCJOpSpinUnbalanced.n_params", false]], "n_reps (ffsim.realucjoperator property)": [[0, "ffsim.RealUCJOperator.n_reps", false]], "n_reps (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.n_reps", false]], "n_reps (ffsim.ucjopspinbalanced property)": [[0, "ffsim.UCJOpSpinBalanced.n_reps", false]], "n_reps (ffsim.ucjopspinless property)": [[0, "ffsim.UCJOpSpinless.n_reps", false]], "n_reps (ffsim.ucjopspinunbalanced property)": [[0, "ffsim.UCJOpSpinUnbalanced.n_reps", false]], "nelec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.nelec", false]], "nelec (ffsim.statevector attribute)": [[0, "ffsim.StateVector.nelec", false]], "norb (ffsim.diagonalcoulombhamiltonian property)": [[0, "ffsim.DiagonalCoulombHamiltonian.norb", false]], "norb (ffsim.doublefactorizedhamiltonian property)": [[0, "ffsim.DoubleFactorizedHamiltonian.norb", false]], "norb (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.norb", false]], "norb (ffsim.givensansatzoperator attribute)": [[0, "ffsim.GivensAnsatzOperator.norb", false]], "norb (ffsim.hopgateansatzoperator attribute)": [[0, "ffsim.HopGateAnsatzOperator.norb", false]], "norb (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.norb", false]], "norb (ffsim.molecularhamiltonian property)": [[0, "ffsim.MolecularHamiltonian.norb", false]], "norb (ffsim.numnumansatzopspinbalanced attribute)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.norb", false]], "norb (ffsim.realucjoperator property)": [[0, "ffsim.RealUCJOperator.norb", false]], "norb (ffsim.singlefactorizedhamiltonian property)": [[0, "ffsim.SingleFactorizedHamiltonian.norb", false]], "norb (ffsim.statevector attribute)": [[0, "ffsim.StateVector.norb", false]], "norb (ffsim.uccsdoprestrictedreal property)": [[0, "ffsim.UCCSDOpRestrictedReal.norb", false]], "norb (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.norb", false]], "norb (ffsim.ucjopspinbalanced property)": [[0, "ffsim.UCJOpSpinBalanced.norb", false]], "norb (ffsim.ucjopspinless property)": [[0, "ffsim.UCJOpSpinless.norb", false]], "norb (ffsim.ucjopspinunbalanced property)": [[0, "ffsim.UCJOpSpinUnbalanced.norb", false]], "normal_ordered() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.normal_ordered", false]], "num_op_sum_linop() (in module ffsim.contract)": [[1, "ffsim.contract.num_op_sum_linop", false]], "number_operator() (in module ffsim)": [[0, "ffsim.number_operator", false]], "numnumansatzopspinbalanced (class in ffsim)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced", false]], "numnumansatzopspinbalancedjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.NumNumAnsatzOpSpinBalancedJW", false]], "numopsumevolutionjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.NumOpSumEvolutionJW", false]], "numopsumevolutionspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.NumOpSumEvolutionSpinlessJW", false]], "one_body_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.one_body_integrals", false]], "one_body_linop() (in module ffsim.contract)": [[1, "ffsim.contract.one_body_linop", false]], "one_body_squares (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.one_body_squares", false]], "one_body_tensor (ffsim.diagonalcoulombhamiltonian attribute)": [[0, "ffsim.DiagonalCoulombHamiltonian.one_body_tensor", false]], "one_body_tensor (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.one_body_tensor", false]], "one_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.one_body_tensor", false]], "one_body_tensor (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.one_body_tensor", false]], "one_hot() (in module ffsim)": [[0, "ffsim.one_hot", false]], "one_hot() (in module ffsim.linalg)": [[2, "ffsim.linalg.one_hot", false]], "orb (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.orb", false]], "orbital_rotations (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.orbital_rotations", false]], "orbital_rotations (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.orbital_rotations", false]], "orbital_rotations (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.orbital_rotations", false]], "orbital_rotations (ffsim.ucjopspinbalanced attribute)": [[0, "ffsim.UCJOpSpinBalanced.orbital_rotations", false]], "orbital_rotations (ffsim.ucjopspinless attribute)": [[0, "ffsim.UCJOpSpinless.orbital_rotations", false]], "orbital_rotations (ffsim.ucjopspinunbalanced attribute)": [[0, "ffsim.UCJOpSpinUnbalanced.orbital_rotations", false]], "orbital_symmetries (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.orbital_symmetries", false]], "orbitalrotationjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.OrbitalRotationJW", false]], "orbitalrotationspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.OrbitalRotationSpinlessJW", false]], "phase_angles (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.phase_angles", false]], "phis (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.phis", false]], "pre_init (in module ffsim.qiskit)": [[4, "ffsim.qiskit.PRE_INIT", false]], "pre_init_passes() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.pre_init_passes", false]], "preparehartreefockjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.PrepareHartreeFockJW", false]], "preparehartreefockspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.PrepareHartreeFockSpinlessJW", false]], "prepareslaterdeterminantjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.PrepareSlaterDeterminantJW", false]], "prepareslaterdeterminantspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.PrepareSlaterDeterminantSpinlessJW", false]], "productstatesum (class in ffsim)": [[0, "ffsim.ProductStateSum", false]], "qiskit_vec_to_ffsim_vec() (in module ffsim.qiskit)": [[4, "ffsim.qiskit.qiskit_vec_to_ffsim_vec", false]], "random_antihermitian() (in module ffsim.random)": [[5, "ffsim.random.random_antihermitian", false]], "random_diagonal_coulomb_hamiltonian() (in module ffsim.random)": [[5, "ffsim.random.random_diagonal_coulomb_hamiltonian", false]], "random_double_factorized_hamiltonian() (in module ffsim.random)": [[5, "ffsim.random.random_double_factorized_hamiltonian", false]], "random_fermion_hamiltonian() (in module ffsim.random)": [[5, "ffsim.random.random_fermion_hamiltonian", false]], "random_fermion_operator() (in module ffsim.random)": [[5, "ffsim.random.random_fermion_operator", false]], "random_hermitian() (in module ffsim.random)": [[5, "ffsim.random.random_hermitian", false]], "random_molecular_hamiltonian() (in module ffsim.random)": [[5, "ffsim.random.random_molecular_hamiltonian", false]], "random_nelec() (in module ffsim.testing)": [[6, "ffsim.testing.random_nelec", false]], "random_occupied_orbitals() (in module ffsim.testing)": [[6, "ffsim.testing.random_occupied_orbitals", false]], "random_orthogonal() (in module ffsim.random)": [[5, "ffsim.random.random_orthogonal", false]], "random_real_symmetric_matrix() (in module ffsim.random)": [[5, "ffsim.random.random_real_symmetric_matrix", false]], "random_special_orthogonal() (in module ffsim.random)": [[5, "ffsim.random.random_special_orthogonal", false]], "random_state_vector() (in module ffsim.random)": [[5, "ffsim.random.random_state_vector", false]], "random_statevector() (in module ffsim.random)": [[5, "ffsim.random.random_statevector", false]], "random_t2_amplitudes() (in module ffsim.random)": [[5, "ffsim.random.random_t2_amplitudes", false]], "random_two_body_tensor() (in module ffsim.random)": [[5, "ffsim.random.random_two_body_tensor", false]], "random_uccsd_restricted() (in module ffsim.random)": [[5, "ffsim.random.random_uccsd_restricted", false]], "random_ucj_op_spin_balanced() (in module ffsim.random)": [[5, "ffsim.random.random_ucj_op_spin_balanced", false]], "random_ucj_op_spin_unbalanced() (in module ffsim.random)": [[5, "ffsim.random.random_ucj_op_spin_unbalanced", false]], "random_ucj_op_spinless() (in module ffsim.random)": [[5, "ffsim.random.random_ucj_op_spinless", false]], "random_ucj_operator() (in module ffsim.random)": [[5, "ffsim.random.random_ucj_operator", false]], "random_unitary() (in module ffsim.random)": [[5, "ffsim.random.random_unitary", false]], "rdm() (in module ffsim)": [[0, "ffsim.rdm", false]], "rdms() (in module ffsim)": [[0, "ffsim.rdms", false]], "realucjoperator (class in ffsim)": [[0, "ffsim.RealUCJOperator", false]], "reduced_matrix() (in module ffsim.linalg)": [[2, "ffsim.linalg.reduced_matrix", false]], "reduced_matrix_product_states() (ffsim.singlefactorizedhamiltonian method)": [[0, "ffsim.SingleFactorizedHamiltonian.reduced_matrix_product_states", false]], "rotated() (ffsim.molecularhamiltonian method)": [[0, "ffsim.MolecularHamiltonian.rotated", false]], "run() (ffsim.qiskit.dropnegligible method)": [[4, "ffsim.qiskit.DropNegligible.run", false]], "run() (ffsim.qiskit.ffsimsampler method)": [[4, "ffsim.qiskit.FfsimSampler.run", false]], "run() (ffsim.qiskit.mergeorbitalrotations method)": [[4, "ffsim.qiskit.MergeOrbitalRotations.run", false]], "run_ccsd() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_ccsd", false]], "run_cisd() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_cisd", false]], "run_fci() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_fci", false]], "run_mp2() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_mp2", false]], "run_sci() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.run_sci", false]], "s (ffsim.linalg.givensrotation attribute)": [[2, "ffsim.linalg.GivensRotation.s", false]], "sample_slater_determinant() (in module ffsim)": [[0, "ffsim.sample_slater_determinant", false]], "sample_state_vector() (in module ffsim)": [[0, "ffsim.sample_state_vector", false]], "scf (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.scf", false]], "sci_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.sci_energy", false]], "sci_vec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.sci_vec", false]], "simulate_qdrift_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_qdrift_double_factorized", false]], "simulate_trotter_diag_coulomb_split_op() (in module ffsim)": [[0, "ffsim.simulate_trotter_diag_coulomb_split_op", false]], "simulate_trotter_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_trotter_double_factorized", false]], "simulatetrotterdiagcoulombsplitopjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.SimulateTrotterDiagCoulombSplitOpJW", false]], "simulatetrotterdoublefactorizedjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.SimulateTrotterDoubleFactorizedJW", false]], "singlefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.SingleFactorizedHamiltonian", false]], "slater_determinant() (in module ffsim)": [[0, "ffsim.slater_determinant", false]], "slater_determinant_rdm() (in module ffsim)": [[0, "ffsim.slater_determinant_rdm", false]], "slater_determinant_rdms() (in module ffsim)": [[0, "ffsim.slater_determinant_rdms", false]], "spin (class in ffsim)": [[0, "ffsim.Spin", false]], "spin (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.spin", false]], "spin (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.spin", false]], "spin_square() (in module ffsim)": [[0, "ffsim.spin_square", false]], "states (ffsim.productstatesum attribute)": [[0, "ffsim.ProductStateSum.states", false]], "statevector (class in ffsim)": [[0, "ffsim.StateVector", false]], "string (ffsim.bitstringtype attribute)": [[0, "ffsim.BitstringType.STRING", false]], "strings_to_addresses() (in module ffsim)": [[0, "ffsim.strings_to_addresses", false]], "strings_to_indices() (in module ffsim)": [[0, "ffsim.strings_to_indices", false]], "supportsapplyunitary (class in ffsim)": [[0, "ffsim.SupportsApplyUnitary", false]], "supportsapproximateequality (class in ffsim)": [[0, "ffsim.SupportsApproximateEquality", false]], "supportsdiagonal (class in ffsim)": [[0, "ffsim.SupportsDiagonal", false]], "supportsfermionoperator (class in ffsim)": [[0, "ffsim.SupportsFermionOperator", false]], "supportslinearoperator (class in ffsim)": [[0, "ffsim.SupportsLinearOperator", false]], "supportstrace (class in ffsim)": [[0, "ffsim.SupportsTrace", false]], "symmetry (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.symmetry", false]], "thetas (ffsim.givensansatzop attribute)": [[0, "ffsim.GivensAnsatzOp.thetas", false]], "thetas (ffsim.givensansatzoperator attribute)": [[0, "ffsim.GivensAnsatzOperator.thetas", false]], "thetas (ffsim.hopgateansatzoperator attribute)": [[0, "ffsim.HopGateAnsatzOperator.thetas", false]], "thetas (ffsim.numnumansatzopspinbalanced attribute)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.thetas", false]], "to_diag_coulomb_mats() (ffsim.numnumansatzopspinbalanced method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.to_diag_coulomb_mats", false]], "to_fcidump() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.to_fcidump", false]], "to_json() (ffsim.moleculardata method)": [[0, "ffsim.MolecularData.to_json", false]], "to_molecular_hamiltonian() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_molecular_hamiltonian", false]], "to_number_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_number_representation", false]], "to_orbital_rotation() (ffsim.givensansatzop method)": [[0, "ffsim.GivensAnsatzOp.to_orbital_rotation", false]], "to_parameters() (ffsim.givensansatzop method)": [[0, "ffsim.GivensAnsatzOp.to_parameters", false]], "to_parameters() (ffsim.givensansatzoperator method)": [[0, "ffsim.GivensAnsatzOperator.to_parameters", false]], "to_parameters() (ffsim.hopgateansatzoperator method)": [[0, "ffsim.HopGateAnsatzOperator.to_parameters", false]], "to_parameters() (ffsim.numnumansatzopspinbalanced method)": [[0, "ffsim.NumNumAnsatzOpSpinBalanced.to_parameters", false]], "to_parameters() (ffsim.realucjoperator method)": [[0, "ffsim.RealUCJOperator.to_parameters", false]], "to_parameters() (ffsim.uccsdoprestrictedreal method)": [[0, "ffsim.UCCSDOpRestrictedReal.to_parameters", false]], "to_parameters() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_parameters", false]], "to_parameters() (ffsim.ucjopspinbalanced method)": [[0, "ffsim.UCJOpSpinBalanced.to_parameters", false]], "to_parameters() (ffsim.ucjopspinless method)": [[0, "ffsim.UCJOpSpinless.to_parameters", false]], "to_parameters() (ffsim.ucjopspinunbalanced method)": [[0, "ffsim.UCJOpSpinUnbalanced.to_parameters", false]], "to_t_amplitudes() (ffsim.realucjoperator method)": [[0, "ffsim.RealUCJOperator.to_t_amplitudes", false]], "to_t_amplitudes() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_t_amplitudes", false]], "to_z_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_z_representation", false]], "trace() (in module ffsim)": [[0, "ffsim.trace", false]], "two_body_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.two_body_integrals", false]], "two_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.two_body_tensor", false]], "uccsdoprestrictedreal (class in ffsim)": [[0, "ffsim.UCCSDOpRestrictedReal", false]], "ucjoperator (class in ffsim)": [[0, "ffsim.UCJOperator", false]], "ucjoperatorjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.UCJOperatorJW", false]], "ucjopspinbalanced (class in ffsim)": [[0, "ffsim.UCJOpSpinBalanced", false]], "ucjopspinbalancedjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.UCJOpSpinBalancedJW", false]], "ucjopspinless (class in ffsim)": [[0, "ffsim.UCJOpSpinless", false]], "ucjopspinlessjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.UCJOpSpinlessJW", false]], "ucjopspinunbalanced (class in ffsim)": [[0, "ffsim.UCJOpSpinUnbalanced", false]], "ucjopspinunbalancedjw (class in ffsim.qiskit)": [[4, "ffsim.qiskit.UCJOpSpinUnbalancedJW", false]], "vec (ffsim.statevector attribute)": [[0, "ffsim.StateVector.vec", false]], "z_representation (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.z_representation", false]]}, "objects": {"": [[0, 0, 0, "-", "ffsim"]], "ffsim": [[0, 1, 1, "", "BitstringType"], [0, 1, 1, "", "DiagonalCoulombHamiltonian"], [0, 1, 1, "", "DoubleFactorizedHamiltonian"], [0, 1, 1, "", "FermionAction"], [0, 1, 1, "", "FermionOperator"], [0, 1, 1, "", "GivensAnsatzOp"], [0, 1, 1, "", "GivensAnsatzOperator"], [0, 1, 1, "", "HopGateAnsatzOperator"], [0, 1, 1, "", "MolecularData"], [0, 1, 1, "", "MolecularHamiltonian"], [0, 1, 1, "", "NumNumAnsatzOpSpinBalanced"], [0, 1, 1, "", "ProductStateSum"], [0, 1, 1, "", "RealUCJOperator"], [0, 1, 1, "", "SingleFactorizedHamiltonian"], [0, 1, 1, "", "Spin"], [0, 1, 1, "", "StateVector"], [0, 1, 1, "", "SupportsApplyUnitary"], [0, 1, 1, "", "SupportsApproximateEquality"], [0, 1, 1, "", "SupportsDiagonal"], [0, 1, 1, "", "SupportsFermionOperator"], [0, 1, 1, "", "SupportsLinearOperator"], [0, 1, 1, "", "SupportsTrace"], [0, 1, 1, "", "UCCSDOpRestrictedReal"], [0, 1, 1, "", "UCJOpSpinBalanced"], [0, 1, 1, "", "UCJOpSpinUnbalanced"], [0, 1, 1, "", "UCJOpSpinless"], [0, 1, 1, "", "UCJOperator"], [0, 5, 1, "", "addresses_to_strings"], [0, 5, 1, "", "apply_diag_coulomb_evolution"], [0, 5, 1, "", "apply_fsim_gate"], [0, 5, 1, "", "apply_fswap_gate"], [0, 5, 1, "", "apply_givens_rotation"], [0, 5, 1, "", "apply_hop_gate"], [0, 5, 1, "", "apply_num_interaction"], [0, 5, 1, "", "apply_num_num_interaction"], [0, 5, 1, "", "apply_num_op_prod_interaction"], [0, 5, 1, "", "apply_num_op_sum_evolution"], [0, 5, 1, "", "apply_on_site_interaction"], [0, 5, 1, "", "apply_orbital_rotation"], [0, 5, 1, "", "apply_tunneling_interaction"], [0, 5, 1, "", "apply_unitary"], [0, 5, 1, "", "approx_eq"], [1, 0, 0, "-", "contract"], [0, 5, 1, "", "cre"], [0, 5, 1, "", "cre_a"], [0, 5, 1, "", "cre_b"], [0, 5, 1, "", "des"], [0, 5, 1, "", "des_a"], [0, 5, 1, "", "des_b"], [0, 5, 1, "", "diag"], [0, 5, 1, "", "dim"], [0, 5, 1, "", "dims"], [0, 5, 1, "", "expectation_one_body_power"], [0, 5, 1, "", "expectation_one_body_product"], [0, 5, 1, "", "fermi_hubbard_1d"], [0, 5, 1, "", "fermi_hubbard_2d"], [0, 5, 1, "", "fermion_operator"], [0, 5, 1, "", "hartree_fock_state"], [0, 5, 1, "", "indices_to_strings"], [0, 5, 1, "", "init_cache"], [2, 0, 0, "-", "linalg"], [0, 5, 1, "", "linear_operator"], [0, 5, 1, "", "multireference_state"], [0, 5, 1, "", "multireference_state_prod"], [0, 5, 1, "", "number_operator"], [0, 5, 1, "", "one_hot"], [3, 0, 0, "-", "optimize"], [4, 0, 0, "-", "qiskit"], [5, 0, 0, "-", "random"], [0, 5, 1, "", "rdm"], [0, 5, 1, "", "rdms"], [0, 5, 1, "", "sample_slater_determinant"], [0, 5, 1, "", "sample_state_vector"], [0, 5, 1, "", "simulate_qdrift_double_factorized"], [0, 5, 1, "", "simulate_trotter_diag_coulomb_split_op"], [0, 5, 1, "", "simulate_trotter_double_factorized"], [0, 5, 1, "", "slater_determinant"], [0, 5, 1, "", "slater_determinant_rdm"], [0, 5, 1, "", "slater_determinant_rdms"], [0, 5, 1, "", "spin_square"], [0, 5, 1, "", "strings_to_addresses"], [0, 5, 1, "", "strings_to_indices"], [6, 0, 0, "-", "testing"], [0, 5, 1, "", "trace"]], "ffsim.BitstringType": [[0, 2, 1, "", "BIT_ARRAY"], [0, 2, 1, "", "INT"], [0, 2, 1, "", "STRING"]], "ffsim.DiagonalCoulombHamiltonian": [[0, 2, 1, "", "constant"], [0, 2, 1, "", "diag_coulomb_mats"], [0, 3, 1, "", "from_fermion_operator"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"]], "ffsim.DoubleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 2, 1, "", "diag_coulomb_mats"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_molecular_hamiltonian"], [0, 3, 1, "", "to_number_representation"], [0, 3, 1, "", "to_z_representation"], [0, 2, 1, "", "z_representation"]], "ffsim.FermionAction": [[0, 2, 1, "", "action"], [0, 2, 1, "", "orb"], [0, 2, 1, "", "spin"]], "ffsim.FermionOperator": [[0, 3, 1, "", "conserves_particle_number"], [0, 3, 1, "", "conserves_spin_z"], [0, 3, 1, "", "many_body_order"], [0, 3, 1, "", "normal_ordered"]], "ffsim.GivensAnsatzOp": [[0, 3, 1, "", "from_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 2, 1, "", "interaction_pairs"], [0, 3, 1, "", "n_params"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "phase_angles"], [0, 2, 1, "", "phis"], [0, 2, 1, "", "thetas"], [0, 3, 1, "", "to_orbital_rotation"], [0, 3, 1, "", "to_parameters"]], "ffsim.GivensAnsatzOperator": [[0, 3, 1, "", "from_parameters"], [0, 2, 1, "", "interaction_pairs"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "thetas"], [0, 3, 1, "", "to_parameters"]], "ffsim.HopGateAnsatzOperator": [[0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 2, 1, "", "interaction_pairs"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "thetas"], [0, 3, 1, "", "to_parameters"]], "ffsim.MolecularData": [[0, 2, 1, "", "active_space"], [0, 2, 1, "", "atom"], [0, 2, 1, "", "basis"], [0, 2, 1, "", "ccsd_energy"], [0, 2, 1, "", "ccsd_t1"], [0, 2, 1, "", "ccsd_t2"], [0, 2, 1, "", "cisd_energy"], [0, 2, 1, "", "cisd_vec"], [0, 2, 1, "", "core_energy"], [0, 2, 1, "", "dipole_integrals"], [0, 2, 1, "", "fci_energy"], [0, 2, 1, "", "fci_vec"], [0, 3, 1, "", "from_fcidump"], [0, 3, 1, "", "from_json"], [0, 3, 1, "", "from_mole"], [0, 3, 1, "", "from_scf"], [0, 4, 1, "", "hamiltonian"], [0, 2, 1, "", "hf_energy"], [0, 2, 1, "", "hf_mo_coeff"], [0, 2, 1, "", "hf_mo_occ"], [0, 2, 1, "", "mo_coeff"], [0, 2, 1, "", "mo_occ"], [0, 4, 1, "", "mole"], [0, 2, 1, "", "mp2_energy"], [0, 2, 1, "", "mp2_t2"], [0, 2, 1, "", "nelec"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "one_body_integrals"], [0, 2, 1, "", "orbital_symmetries"], [0, 3, 1, "", "run_ccsd"], [0, 3, 1, "", "run_cisd"], [0, 3, 1, "", "run_fci"], [0, 3, 1, "", "run_mp2"], [0, 3, 1, "", "run_sci"], [0, 4, 1, "", "scf"], [0, 2, 1, "", "sci_energy"], [0, 2, 1, "", "sci_vec"], [0, 2, 1, "", "spin"], [0, 2, 1, "", "symmetry"], [0, 3, 1, "", "to_fcidump"], [0, 3, 1, "", "to_json"], [0, 2, 1, "", "two_body_integrals"]], "ffsim.MolecularHamiltonian": [[0, 2, 1, "", "constant"], [0, 3, 1, "", "from_fcidump"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 3, 1, "", "rotated"], [0, 2, 1, "", "two_body_tensor"]], "ffsim.NumNumAnsatzOpSpinBalanced": [[0, 3, 1, "", "from_diag_coulomb_mats"], [0, 3, 1, "", "from_parameters"], [0, 2, 1, "", "interaction_pairs"], [0, 3, 1, "", "n_params"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "thetas"], [0, 3, 1, "", "to_diag_coulomb_mats"], [0, 3, 1, "", "to_parameters"]], "ffsim.ProductStateSum": [[0, 2, 1, "", "coeffs"], [0, 2, 1, "", "states"]], "ffsim.RealUCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.SingleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 3, 1, "", "expectation_product_state"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_squares"], [0, 2, 1, "", "one_body_tensor"], [0, 3, 1, "", "reduced_matrix_product_states"]], "ffsim.Spin": [[0, 2, 1, "", "ALPHA"], [0, 2, 1, "", "ALPHA_AND_BETA"], [0, 2, 1, "", "BETA"]], "ffsim.StateVector": [[0, 2, 1, "", "nelec"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "vec"]], "ffsim.UCCSDOpRestrictedReal": [[0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "norb"], [0, 3, 1, "", "to_parameters"]], "ffsim.UCJOpSpinBalanced": [[0, 2, 1, "", "diag_coulomb_mats"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"]], "ffsim.UCJOpSpinUnbalanced": [[0, 2, 1, "", "diag_coulomb_mats"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"]], "ffsim.UCJOpSpinless": [[0, 2, 1, "", "diag_coulomb_mats"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"]], "ffsim.UCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 3, 1, "", "n_params"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.contract": [[1, 5, 1, "", "contract_diag_coulomb"], [1, 5, 1, "", "contract_num_op_sum"], [1, 5, 1, "", "contract_one_body"], [1, 5, 1, "", "diag_coulomb_linop"], [1, 5, 1, "", "num_op_sum_linop"], [1, 5, 1, "", "one_body_linop"]], "ffsim.linalg": [[2, 1, 1, "", "GivensRotation"], [2, 5, 1, "", "apply_matrix_to_slices"], [2, 5, 1, "", "double_factorized"], [2, 5, 1, "", "double_factorized_t2"], [2, 5, 1, "", "double_factorized_t2_alpha_beta"], [2, 5, 1, "", "expm_multiply_taylor"], [2, 5, 1, "", "givens_decomposition"], [2, 5, 1, "", "is_antihermitian"], [2, 5, 1, "", "is_hermitian"], [2, 5, 1, "", "is_orthogonal"], [2, 5, 1, "", "is_real_symmetric"], [2, 5, 1, "", "is_special_orthogonal"], [2, 5, 1, "", "is_unitary"], [2, 5, 1, "", "lup"], [2, 5, 1, "", "match_global_phase"], [2, 5, 1, "", "modified_cholesky"], [2, 5, 1, "", "one_hot"], [2, 5, 1, "", "reduced_matrix"]], "ffsim.linalg.GivensRotation": [[2, 2, 1, "", "c"], [2, 2, 1, "", "i"], [2, 2, 1, "", "j"], [2, 2, 1, "", "s"]], "ffsim.optimize": [[3, 5, 1, "", "minimize_linear_method"]], "ffsim.qiskit": [[4, 1, 1, "", "DiagCoulombEvolutionJW"], [4, 1, 1, "", "DiagCoulombEvolutionSpinlessJW"], [4, 1, 1, "", "DropNegligible"], [4, 1, 1, "", "FfsimSampler"], [4, 1, 1, "", "GivensAnsatzOpJW"], [4, 1, 1, "", "GivensAnsatzOpSpinlessJW"], [4, 1, 1, "", "GivensAnsatzOperatorJW"], [4, 1, 1, "", "GivensAnsatzOperatorSpinlessJW"], [4, 1, 1, "", "MergeOrbitalRotations"], [4, 1, 1, "", "NumNumAnsatzOpSpinBalancedJW"], [4, 1, 1, "", "NumOpSumEvolutionJW"], [4, 1, 1, "", "NumOpSumEvolutionSpinlessJW"], [4, 1, 1, "", "OrbitalRotationJW"], [4, 1, 1, "", "OrbitalRotationSpinlessJW"], [4, 6, 1, "", "PRE_INIT"], [4, 1, 1, "", "PrepareHartreeFockJW"], [4, 1, 1, "", "PrepareHartreeFockSpinlessJW"], [4, 1, 1, "", "PrepareSlaterDeterminantJW"], [4, 1, 1, "", "PrepareSlaterDeterminantSpinlessJW"], [4, 1, 1, "", "SimulateTrotterDiagCoulombSplitOpJW"], [4, 1, 1, "", "SimulateTrotterDoubleFactorizedJW"], [4, 1, 1, "", "UCJOpSpinBalancedJW"], [4, 1, 1, "", "UCJOpSpinUnbalancedJW"], [4, 1, 1, "", "UCJOpSpinlessJW"], [4, 1, 1, "", "UCJOperatorJW"], [4, 5, 1, "", "ffsim_vec_to_qiskit_vec"], [4, 5, 1, "", "final_state_vector"], [4, 5, 1, "", "jordan_wigner"], [4, 5, 1, "", "pre_init_passes"], [4, 5, 1, "", "qiskit_vec_to_ffsim_vec"]], "ffsim.qiskit.DiagCoulombEvolutionJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.DiagCoulombEvolutionSpinlessJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.DropNegligible": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "run"]], "ffsim.qiskit.FfsimSampler": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "run"]], "ffsim.qiskit.GivensAnsatzOpJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.GivensAnsatzOpSpinlessJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.GivensAnsatzOperatorJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "__init_subclass__"], [4, 3, 1, "", "__new__"]], "ffsim.qiskit.GivensAnsatzOperatorSpinlessJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "__init_subclass__"], [4, 3, 1, "", "__new__"]], "ffsim.qiskit.MergeOrbitalRotations": [[4, 3, 1, "", "run"]], "ffsim.qiskit.NumNumAnsatzOpSpinBalancedJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.NumOpSumEvolutionJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.NumOpSumEvolutionSpinlessJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.OrbitalRotationJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.OrbitalRotationSpinlessJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "inverse"]], "ffsim.qiskit.PrepareHartreeFockJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.PrepareHartreeFockSpinlessJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.PrepareSlaterDeterminantJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.PrepareSlaterDeterminantSpinlessJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.SimulateTrotterDiagCoulombSplitOpJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.SimulateTrotterDoubleFactorizedJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.UCJOpSpinBalancedJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.UCJOpSpinUnbalancedJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.UCJOpSpinlessJW": [[4, 3, 1, "", "__init__"]], "ffsim.qiskit.UCJOperatorJW": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "__init_subclass__"], [4, 3, 1, "", "__new__"]], "ffsim.random": [[5, 5, 1, "", "random_antihermitian"], [5, 5, 1, "", "random_diagonal_coulomb_hamiltonian"], [5, 5, 1, "", "random_double_factorized_hamiltonian"], [5, 5, 1, "", "random_fermion_hamiltonian"], [5, 5, 1, "", "random_fermion_operator"], [5, 5, 1, "", "random_hermitian"], [5, 5, 1, "", "random_molecular_hamiltonian"], [5, 5, 1, "", "random_orthogonal"], [5, 5, 1, "", "random_real_symmetric_matrix"], [5, 5, 1, "", "random_special_orthogonal"], [5, 5, 1, "", "random_state_vector"], [5, 5, 1, "", "random_statevector"], [5, 5, 1, "", "random_t2_amplitudes"], [5, 5, 1, "", "random_two_body_tensor"], [5, 5, 1, "", "random_uccsd_restricted"], [5, 5, 1, "", "random_ucj_op_spin_balanced"], [5, 5, 1, "", "random_ucj_op_spin_unbalanced"], [5, 5, 1, "", "random_ucj_op_spinless"], [5, 5, 1, "", "random_ucj_operator"], [5, 5, 1, "", "random_unitary"]], "ffsim.testing": [[6, 5, 1, "", "assert_allclose_up_to_global_phase"], [6, 5, 1, "", "generate_norb_nelec"], [6, 5, 1, "", "generate_norb_nelec_spin"], [6, 5, 1, "", "generate_norb_nocc"], [6, 5, 1, "", "generate_norb_spin"], [6, 5, 1, "", "random_nelec"], [6, 5, 1, "", "random_occupied_orbitals"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function", "6": "py:data"}, "terms": {"": [0, 2, 4, 8, 9, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23], "0": [0, 2, 3, 4, 6, 8, 9, 11, 13, 14, 15, 16, 18, 19, 20, 21, 23], "00": 18, "000": 20, "0000000": [15, 18], "0000000000011100000000000111": 20, "0000000000011100000000011100": 20, "0000000000011100100000001100": 20, "0000000000110100000000001101": 20, "0000000001011000000000010110": 20, "0000000001011000100000000110": 20, "0000000001110000000000000111": 20, "0000000111100000011111": 20, "0000000111100110000111": 20, "0000010101100001011011": 20, "0000010110100001011011": 20, "0000100101100000111011": 20, "0000100110100000111011": 20, "0000111100001111": 20, "0000111100011011": 20, "0000111100011101": 20, "0000111100101011": 20, "0001": 3, "0001000001010000000000000111": 20, "0001110100001111": 20, "00016343445189686165": 18, "000e": 18, "0010000000011000000000010110": 20, "0010011100101101": 20, "0010101100001111": 20, "0010101100101101": 20, "001011": [0, 14], "0010110100100111": 20, "0010110100101011": 20, "0010523491138414635": 18, "001101": [0, 14], "001110": [0, 14], "0032781409953260296": 18, "0033881655844765417": 18, "003816852276304379": 18, "00552022j": 16, "005e": 15, "01": [15, 18], "0100000000100100000000000111": 20, "0100000110100100001111": 20, "010011": [0, 14], "0101": 0, "0101000001100000011111": 20, "010101": [0, 14], "010110": [0, 14], "01074568": 16, "0110": 0, "02": [15, 18], "02122442107773": 18, "02242": 2, "02459434j": 14, "024e": 18, "02625": 2, "02998708j": 14, "03": 15, "03101213j": 14, "03525116j": 14, "03668541730983632": 23, "04": [15, 18], "04758323886585292": 18, "05": [0, 2, 3, 4, 18], "05395": 4, "06": 18, "0609050": 5, "0625": [0, 16], "06273307": 14, "06551571": 14, "06677383j": 14, "066e": 15, "06844774j": 14, "07": [6, 18], "08": [0, 2, 3, 4, 18], "08957": 2, "09723851": 14, "0b001011": 0, "0b010101": 0, "0b010110": 0, "0b100101": 0, "0b100110": 0, "0j": 16, "0x7f505591c340": 19, "0x7f5056069090": 19, "0x7f5056069510": 19, "0x7f50560b6b60": 19, "0x7f505611d7e0": 19, "0x7f505611dab0": 19, "0x7f505611e4d0": 19, "0x7f50567714e0": 19, "1": [0, 2, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23], "10": [13, 18, 19, 20, 23], "100": 15, "1000": 3, "1000000101100000111011": 20, "100011": [0, 14], "100101": [0, 14], "100110": [0, 14], "101": 20, "1024": 4, "104": [15, 21], "1077416827960702": 20, "108": [20, 23], "10_000": 20, "11": [0, 13, 19, 20, 23], "1102529j": 14, "11157654": 14, "112": 15, "12": [2, 13, 15, 16, 18, 23], "1207": 0, "12204343": 14, "1234": [9, 13, 14, 15, 19, 21], "12345": 20, "125": [0, 16], "1278053627110062": 20, "1294": [15, 18], "12j": 16, "13": [0, 13, 18, 23], "13113848": 14, "132e": [15, 18], "133": 20, "13327423j": 14, "137e": 18, "13957088j": 14, "14": [13, 20], "15": [13, 15], "151e": 18, "152e": 18, "1561685j": 14, "15624569": 14, "15828306": 14, "15x15": 15, "16": [13, 20], "17": 13, "1711": [2, 4], "17181289596": 21, "17276745j": 14, "172e": 18, "17558331": 14, "18": 13, "180": 15, "18007105": 14, "1808": 2, "18j": 16, "19": 0, "1e": [0, 2, 3, 4, 6, 15, 23], "1j": [0, 9, 16, 23], "2": [0, 1, 2, 4, 5, 8, 9, 11, 13, 14, 15, 16, 18, 19, 20, 23], "20835741": 14, "20881506": 14, "21": 0, "210": 20, "2104": 2, "2190712273": 9, "21928194": 14, "21984743e": 16, "22392824": 14, "23": 15, "23550198": 14, "23611476": 14, "24": [13, 19], "25": [0, 16], "25j": [0, 16], "26": 23, "26121865": 14, "286e": 18, "29821173j": 14, "2d": 0, "2j": [0, 2, 16], "2n": 14, "3": [0, 2, 9, 11, 13, 14, 15, 16, 18, 19, 20, 23], "30052742j": 14, "315": 18, "31980058j": 14, "31g": [20, 21], "32": [13, 19], "329": 18, "33731417j": 14, "337e": 18, "339": 18, "342e": 18, "3484557082523": 20, "35": [0, 23], "36730125j": 14, "3714141": 14, "3736011916390138e": 18, "38435478j": 14, "39": [13, 14, 15, 16, 18, 19, 20], "39075171": 14, "3j": 16, "4": [0, 2, 8, 9, 13, 14, 15, 16, 18, 19, 20, 21, 23], "418e": 15, "427e": 15, "4390672": 14, "45619739104838": 20, "46": 18, "460e": 18, "464957764796": 23, "46x46": 18, "47": 20, "478": 15, "48": [13, 20], "49094286j": 14, "499": 18, "4j": 16, "5": [0, 3, 9, 13, 14, 15, 16, 18, 19, 20, 23], "51253171j": 14, "520e": 18, "527e": 18, "55717072551538": 9, "558e": 18, "56": [13, 19, 20], "561e": 18, "5626": 18, "562e": 18, "57": 20, "58888": 22, "5j": [0, 16], "6": [0, 9, 13, 14, 15, 16, 19, 20, 21, 23], "603e": 15, "6083": 0, "6332495815006": 15, "64": 14, "65": 20, "66": 20, "67794403659725": 15, "6787887956297": 15, "6787887956314": 15, "68381565459354": 15, "684e": 18, "6g": [0, 15, 18, 23], "6j": 16, "7": [0, 9, 13, 14, 15, 16, 18, 19, 23], "70": 20, "705e": 18, "72": 18, "7288249991515": 15, "72x72": 18, "73105542j": 14, "744e": 15, "748e": 15, "75": [15, 20], "77": 18, "786e": 18, "792e": 18, "8": [0, 13, 15, 16, 18, 19, 20, 23], "8266321248744": 18, "8266321248745": 18, "835236570774": 20, "842e": 18, "87160024816276": 18, "87361987555248": 18, "87363426228193": 18, "87363426607693": 18, "87363433774676": 18, "87387392107806": 18, "87421536374038": 18, "8742165643862": 18, "9": [13, 14, 16, 18, 19, 23], "9289": 18, "9402435115158845": 23, "948e": 18, "949": 18, "958": 15, "9630419334855": 20, "9632214497840799": 18, "9644176461515346": 18, "9645028365517818": 18, "99": 9, "9924": 20, "9985212854200776": 23, "9985212854200908": 23, "9991": 20, "9996731164188856": 23, "A": [0, 1, 2, 3, 4, 5, 6, 8, 12, 13, 14, 16, 22, 23], "AND": 15, "As": [0, 11, 13, 14, 18, 19, 23], "By": 21, "For": [0, 3, 4, 8, 9, 11, 14, 15, 16, 22, 23], "If": [0, 1, 2, 3, 4, 5, 6, 13, 16], "In": [0, 8, 9, 11, 13, 14, 15, 16, 18, 19, 20, 23], "It": [0, 2, 3, 4, 13, 14, 16, 18, 20, 22], "Its": [3, 4], "NO": [15, 18], "No": 2, "Of": 11, "On": [14, 22], "One": [0, 23], "Such": 16, "That": [0, 3, 12, 16], "The": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23], "Their": 19, "Then": [0, 13], "There": 13, "These": [0, 11, 16, 19], "To": [0, 8, 9, 11, 14, 18, 23], "With": [11, 14, 23], "_": [0, 1, 2, 4, 8, 11, 12, 15, 23], "_1": 12, "_2": 12, "__init__": 4, "__init_subclass__": 4, "__new__": 4, "_factr": 18, "_i": [0, 4], "_k": [0, 8, 11], "_nestedsequ": 4, "_supportsarrai": 4, "a_": [0, 4, 8, 9, 12, 16], "a_j": 1, "a_p": 0, "a_q": 0, "ab": [0, 23], "abil": 8, "abl": 22, "about": 21, "abov": [13, 16], "absenc": [0, 1, 4], "absolut": [0, 2, 4, 6], "acceler": 22, "accept": [12, 18], "access": [0, 9, 22], "accommod": 4, "accomod": 8, "accur": 8, "achiev": [2, 23], "across": 22, "act": [0, 2, 4, 9, 13, 15, 16], "action": [0, 1, 12, 16, 22, 23], "activ": [0, 15, 18, 20, 23], "active_spac": [0, 15, 18, 20, 21, 23], "actual": [6, 11], "ad": [0, 13, 18], "add": [13, 18], "addit": [0, 8, 16, 23], "addition": 2, "address": [0, 13], "addresses_to_str": [0, 7, 14], "adjac": 13, "advantag": 18, "after": [3, 18], "al": 2, "algebra": [2, 9, 16], "algorithm": [0, 2, 3, 18, 21], "alia": [0, 2], "align": [0, 11, 12], "all": [0, 1, 2, 3, 4, 6, 11, 13, 16, 20, 22], "alloc": 0, "allow": [0, 2, 11, 13, 18, 22, 23], "along": 0, "alpha": [0, 1, 2, 4, 6, 9, 11, 13, 14, 15, 16, 19, 20], "alpha_alpha_indic": 0, "alpha_and_beta": 0, "alpha_beta_indic": 0, "alpha_i": 0, "alpha_j": 0, "alreadi": [0, 4, 12], "also": [0, 2, 3, 9, 12, 14, 16, 18, 23], "altern": [0, 8], "alwai": [0, 2, 5, 12, 14, 23], "amen": 13, "amplitud": [0, 2, 5, 18, 20], "an": [0, 1, 2, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23], "angl": 0, "ani": [0, 3, 4, 11, 12, 19, 20], "annihil": [0, 16], "anoth": [2, 6], "ansatz": [0, 3, 4, 5, 10, 13, 17, 19, 20, 21], "ansatz_oper": 0, "ansatz_st": 18, "anti": [2, 5], "anticommut": 12, "ao": 0, "ap": 2, "api": [14, 21], "appear": [0, 2, 13, 16, 20], "append": [0, 6, 13, 18, 19, 20], "appli": [0, 1, 2, 3, 4, 9, 11, 12, 13, 14, 18, 19, 20, 21, 23], "applic": 12, "apply_": 14, "apply_diag_coulomb_evolut": [0, 7, 8, 23], "apply_fsim_g": [0, 7], "apply_fswap_g": [0, 7], "apply_givens_rot": [0, 7], "apply_hop_g": [0, 7], "apply_matrix_to_slic": [2, 7], "apply_num_interact": [0, 7], "apply_num_num_interact": [0, 7], "apply_num_op_prod_interact": [0, 7], "apply_num_op_sum_evolut": [0, 7, 12, 23], "apply_on_site_interact": [0, 7, 14], "apply_orbital_rot": [0, 7, 12, 14, 21], "apply_quad_ham_evolut": 12, "apply_tunneling_interact": [0, 7, 14], "apply_unitari": [0, 7, 18], "appropri": [0, 11], "approx": 8, "approx_eq": [0, 7], "approxim": [0, 2, 3, 8, 18, 23], "apt": 22, "ar": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 19, 20, 22], "arbitrari": [4, 20], "arch": 22, "arg": [0, 4], "argument": [0, 2, 3, 8, 9, 12, 14, 23], "aris": 8, "arithmet": 16, "around": 23, "arrai": [0, 1, 2, 4, 6, 9, 11, 14, 16], "arxiv": [0, 2, 4, 5], "ascend": 20, "assembl": 2, "assert": 14, "assert_allclose_up_to_global_phas": [6, 7], "assertionerror": 6, "associ": [0, 3, 14, 16, 18], "assum": [0, 4, 14], "asterisk": 0, "asymmetr": 8, "atol": [0, 2, 4, 6], "atom": [0, 15, 18, 20, 21, 23], "attempt": 2, "attribut": [0, 3, 9, 15, 18, 20], "author": 21, "auto": 0, "avail": [9, 19, 22], "avoid": [0, 9, 16], "awar": 16, "ax": [0, 2], "axi": [0, 2], "b": [0, 2, 3, 6, 12, 15, 18], "back": 4, "backend": [13, 19], "backflow": 3, "background": 23, "balanc": [0, 4, 5, 18, 20], "barrier": 20, "base": [0, 2, 4], "basepass": 4, "basesamplerv2": 4, "basi": [0, 2, 4, 12, 15, 18, 20, 21, 23], "basic": [9, 13], "basis_g": [13, 19], "bear": 23, "becaus": [0, 2, 8, 9, 13, 15, 16, 18], "been": [0, 8], "befor": [0, 13, 16, 22, 23], "begin": [0, 2, 11, 12, 14, 20, 23], "behavior": [2, 4, 5, 19], "being": [2, 16, 18], "below": [0, 18, 23], "benchmark": 0, "beta": [0, 1, 2, 4, 6, 9, 11, 13, 14, 15, 16, 19, 20], "beta_i": 0, "beta_j": 0, "better": 8, "between": [0, 1, 2, 3, 11, 13], "bfg": [0, 2, 3, 15, 18], "bibtex": 21, "bit": [0, 13, 14], "bit_arrai": 0, "bitstr": [0, 14, 20], "bitstring_typ": [0, 14], "bitstringtyp": [0, 7, 14], "bla": 22, "bloc": 20, "block": 2, "block_diag": [0, 2], "bmod": 0, "bodi": [0, 1, 2, 5, 8, 9, 18, 23], "bond": 15, "bond_angle_deg": 15, "bond_dist": 18, "bool": [0, 1, 2, 3, 4, 5, 6], "both": [0, 1, 2, 4, 11, 15], "bound": [0, 2], "boundari": 0, "box": 13, "bq": 2, "bracket": 0, "braket": 0, "branch": 21, "brickwork": 15, "browser": 22, "buffer": 4, "build": [13, 17, 18, 20, 21, 22], "built": [19, 20, 23], "byte": [0, 4], "bz2": 0, "c": [2, 18], "c2v": 15, "cach": 0, "calcul": [0, 14, 18], "call": [0, 3, 4, 8, 9, 12, 14, 16, 18, 20, 23], "callabl": [3, 18], "callback": [0, 2, 3, 18], "can": [0, 1, 2, 4, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 21, 22, 23], "cannot": 20, "canon": 0, "casci": [15, 18], "case": [0, 6, 13, 15], "categori": 21, "caus": 0, "cc": [18, 20], "ccsd": [0, 18, 20], "ccsd_energi": 0, "ccsd_t1": 0, "ccsd_t2": 0, "cd": 22, "cdot": 2, "cell": [9, 13, 14, 18, 19, 20, 23], "certain": [2, 13], "challeng": 11, "character": 0, "check": [2, 4, 6], "chemcor": 23, "chemic": 0, "chemical_potenti": 0, "chemistri": 21, "choic": [0, 6, 13, 14], "choleski": [0, 2], "choos": [2, 14], "chosen": 0, "ci": [15, 18], "circuit": [0, 4, 8, 13, 14, 17, 21], "circul": 0, "cisd": 0, "cisd_energi": 0, "cisd_vec": 0, "class": [0, 2, 4, 5, 9, 11, 15, 17, 18, 20, 21, 23], "clement": 2, "clone": 22, "close": [11, 18], "cluster": [0, 4, 5, 10, 17, 21], "co": [0, 15], "code": [4, 9, 13, 14, 16, 18, 19, 20, 23], "coeff": [0, 1, 4, 13, 19], "coeffici": [0, 1, 2, 4, 12, 16], "collect": [0, 2, 4, 18], "column": [0, 2, 12, 14], "com": [21, 22], "comb": 4, "combin": [0, 1, 4, 12, 13, 16], "command": 22, "commonli": [8, 20], "commun": [21, 22], "commut": [0, 8], "compact": [8, 23], "compar": [0, 6, 23], "compil": 22, "complet": 0, "complex": [0, 1, 2, 4, 5, 9], "compon": [0, 16, 21], "compos": [4, 22], "compress": [0, 2], "compris": [0, 16], "comput": [0, 2, 4, 9, 12, 18, 21, 23], "concaten": [0, 14], "concret": 9, "condit": 0, "configur": [0, 4, 13, 14, 22], "conflict": 6, "conj": [2, 12, 20], "conjug": 2, "connect": [0, 11, 13], "consecut": [4, 20], "conserv": [0, 5, 16, 21], "conserves_particle_numb": [0, 16], "conserves_spin_z": [0, 16], "consid": [11, 12, 13], "consist": [0, 9, 13], "constant": [0, 5, 8, 9, 11, 13, 19], "constrain": 2, "constraint": [11, 18], "construct": [0, 1, 3, 4, 13, 14, 15, 16, 18, 19, 20, 23], "contain": [0, 2, 3, 13, 16, 20, 21, 22], "contract": [2, 7, 21], "contract_diag_coulomb": [1, 7], "contract_num_op_sum": [1, 7], "contract_one_bodi": [1, 7], "contrast": 14, "control": [3, 13], "conveni": 14, "convent": 0, "converg": [3, 15, 18, 20, 23], "convers": [11, 18], "convert": [0, 1, 4, 14, 16, 18, 20, 21, 23], "coordin": 0, "coov": 20, "copi": [0, 16], "core": 0, "core_energi": 0, "correl": 3, "correspond": [0, 2, 3, 4, 8, 12, 13, 14, 18], "cost": 0, "coulomb": [0, 1, 2, 4, 5, 8, 11, 23], "count": [0, 13, 20], "count_op": [13, 19], "coupl": 0, "cours": 11, "cp": [13, 19], "cphaseg": 13, "cre": [0, 7], "cre_a": [0, 7, 16], "cre_b": [0, 7, 16], "creat": [0, 4, 13, 14, 16, 19, 20, 21, 23], "creation": [0, 4, 12, 16], "criteria": 16, "current": [0, 2, 18], "d": [2, 22], "d2h": 18, "dag": 4, "dagcircuit": 4, "dagger": [0, 1, 2, 8, 11, 12, 16], "dagger_": [0, 4, 8, 9, 12], "dagger_i": 1, "dagger_p": 0, "dagger_q": 0, "data": [0, 5, 13, 15, 16, 18, 20, 21, 23], "daunt": 8, "de": [0, 7], "decompos": [2, 4, 8, 13, 19], "decomposit": [0, 2, 4, 8, 10, 19, 21, 23], "decreas": [0, 18], "def": [2, 12, 15, 18, 23], "default": [0, 2, 3, 4, 5, 8, 9, 23], "default_rng": [0, 4, 5, 6, 9, 13, 15, 19, 20], "default_shot": [4, 20], "defaultdict": 18, "defin": [0, 2, 13, 15, 18, 20, 23], "definit": [0, 2, 3, 14], "demonstr": [14, 18, 20], "denot": [0, 1, 2, 4, 12], "dens": 15, "densiti": 0, "depend": [0, 2, 3, 22, 23], "depolar": 4, "deprec": [0, 4, 5], "depth": 11, "deriv": 8, "des_a": [0, 7, 16], "des_b": [0, 7, 16], "descend": [0, 16], "describ": [0, 1, 2, 8, 11, 12, 13, 16, 23], "descript": [0, 4], "design": [0, 2, 12], "desir": [0, 2, 5, 6], "destroi": [0, 16], "detail": [13, 19], "determin": [0, 2, 4, 14], "determinant": 0, "dev": 22, "devel": 22, "develop": [4, 21], "devic": [13, 19], "df_hamiltonian": [13, 19, 23], "df_hamiltonian_alt": 23, "diag": [0, 7], "diag_coulomb_indic": [0, 2], "diag_coulomb_jw": 13, "diag_coulomb_linop": [1, 7], "diag_coulomb_mat": [0, 2, 13, 19, 20, 23], "diag_coulomb_mats_alpha_alpha": 0, "diag_coulomb_mats_alpha_beta": 0, "diagcoulombevolutionjw": [4, 7, 13, 19, 20], "diagcoulombevolutionspinlessjw": [4, 7], "diagon": [0, 1, 2, 4, 5, 8, 11, 23], "diagonal_coulomb_mat": 2, "diagonalcoulombhamiltonian": [0, 4, 5, 7], "dict": [0, 2, 3, 15, 18], "dictionari": [0, 16], "did": 0, "differ": [0, 1, 2, 3, 9, 11, 13, 18, 22, 23], "dim": [0, 5, 7, 14, 16], "dim_a": [0, 14], "dim_b": [0, 14], "dimens": [0, 2, 5, 14], "dimension": [0, 2, 4, 14], "dipol": 0, "dipole_integr": 0, "direct": [0, 23], "directli": [0, 13, 18, 22, 23], "directori": 22, "discuss": [8, 12, 13], "disjoint": 2, "disk": 0, "displai": [13, 16, 20], "distinguish": 14, "distribut": [4, 5], "divid": 8, "divis": [0, 16], "dnf": 22, "do": [8, 13, 16], "doc": [15, 18, 21], "docker": 21, "dockerfil": 22, "docstr": 0, "document": [0, 2], "doe": [0, 4, 16, 18, 20], "don": 11, "dooh": [20, 21, 23], "dot": 0, "doubl": [0, 2, 4, 5, 10, 21, 24], "double_factor": [0, 2, 7], "double_factorized_t2": [2, 7], "double_factorized_t2_alpha_beta": [2, 7], "doublefactorizedhamiltonian": [0, 4, 5, 7, 23], "down": 14, "draw": [13, 19], "drop": [4, 15, 18], "dropneglig": [4, 7], "dtype": [0, 2, 4, 5, 9, 15, 18], "due": 20, "dump": [15, 18], "duplic": 0, "dure": 4, "e": [0, 2, 4, 8, 9, 11, 15, 16, 18, 20], "e_corr": [18, 20], "each": [0, 2, 3, 4, 8, 11, 14, 16, 18, 22, 23], "edg": 0, "effect": [0, 4, 13], "effici": [8, 13, 16], "eig": [9, 16], "eigendecomposit": 12, "eigenvalu": [0, 2, 3, 9], "eigenvector": [0, 2], "eigh": [12, 23], "eigsh": 9, "einsum": 23, "either": [0, 1, 2, 4, 6, 11], "electon": 4, "electron": [0, 1, 4, 5, 9, 13, 14, 15, 19, 20, 23], "element": [0, 1, 2, 4, 20, 23], "ell": 2, "els": [0, 5, 14], "elsewher": 0, "enabl": 2, "encount": 20, "end": [0, 2, 11, 12, 20, 23], "energi": [0, 3, 9, 12, 18, 20, 21, 23], "energy_nuc": [15, 18], "enforc": 0, "enough": 4, "ensur": 9, "entangl": [0, 17, 21], "entir": [2, 8], "entri": [0, 2, 4, 11, 14, 23], "enum": 0, "enumer": [0, 18], "environ": 22, "epsilon": 3, "epsmch": 18, "equal": [0, 2, 6, 13], "equal_nan": 6, "equilibrium": 15, "equival": [0, 4], "err_msg": 6, "error": [0, 2, 4, 6, 23], "especi": 16, "estim": 9, "et": 2, "etc": 0, "ethen": 18, "evalu": [3, 15], "even": 13, "everi": 12, "everywher": 14, "evolut": [0, 4, 9, 23], "evolv": [0, 23], "evolved_vec": 9, "evolved_vec_2": 9, "exact": [2, 8, 9, 23], "exact_st": 23, "exampl": [0, 4, 9, 11, 13, 14, 15, 16, 18, 19, 22], "exce": [2, 15, 23], "except": [0, 2, 3], "excit": 13, "exist": [2, 4], "exp": [0, 2, 4, 6], "expand": 0, "expanded_diag_coulomb_mat": 2, "expanded_orbital_rot": 2, "expans": [2, 3], "expect": [0, 3], "expectation_one_body_pow": [0, 7], "expectation_one_body_product": [0, 7], "expectation_product_st": 0, "expens": [0, 2], "explain": [9, 11, 13, 14, 18, 23], "explan": [0, 19, 21], "explicit": 0, "explicitli": 0, "exploit": 21, "expm": 2, "expm_multipli": [9, 23], "expm_multiply_taylor": [2, 7], "exponenti": [8, 9, 23], "expos": [4, 13], "express": [11, 14, 23], "extend": 4, "extra": 8, "extract": 20, "f": [3, 14, 15, 18, 20, 23], "facilit": 11, "fact": 15, "factor": [0, 2, 4, 5, 10, 21, 24], "failur": 6, "fake_provid": [13, 19], "fals": [0, 1, 2, 4, 5, 15, 16, 18], "far": 16, "fast": 0, "faster": [18, 21], "fault": 11, "fci": [0, 14, 15, 18], "fci_energi": 0, "fci_vec": 0, "fcidump": 0, "fcivec": 0, "fedora": 22, "feenberg": 3, "fermi": 0, "fermi_hubbard_1d": [0, 7], "fermi_hubbard_2d": [0, 7], "fermion": [0, 4, 5, 6, 8, 10, 11, 12, 16, 19, 20, 21], "fermion_oper": [0, 7], "fermionact": [0, 7], "fermionoper": [0, 4, 5, 7, 17, 21], "few": [14, 22], "fewer": [13, 19, 23], "ffsim": [7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23], "ffsim_vec_to_qiskit_vec": [4, 7], "ffsimsampl": [4, 7], "fidel": 23, "field": [0, 2], "fifth": 13, "file": [0, 22], "filter": 0, "final": [0, 3, 4, 5, 13, 19, 23], "final_orbital_rot": 0, "final_st": [18, 23], "final_state_vector": [4, 7], "finish": 23, "finit": 3, "first": [0, 2, 4, 8, 13, 14, 18, 20, 23], "fix": 14, "flag": 0, "float": [0, 2, 3, 4, 5, 6, 9, 12, 23], "float64": [9, 15, 18], "fock": [0, 4, 11, 14, 18, 21, 23], "focu": 9, "follow": [0, 2, 3, 4, 9, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23], "foot": 0, "forg": [0, 17, 21], "form": [0, 1, 2, 4, 8, 9, 11, 12, 16, 20, 23], "format": [0, 4], "formula": [0, 23], "fourth": [8, 13], "frac": [0, 2], "frac12": [0, 8, 9, 11], "frac18": 0, "framework": 22, "from": [0, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23], "from_diag_coulomb_mat": 0, "from_fcidump": 0, "from_fermion_oper": 0, "from_json": 0, "from_mol": 0, "from_molecular_hamiltonian": [0, 23], "from_orbital_rot": 0, "from_paramet": [0, 13, 18], "from_scf": [0, 15, 18, 20, 21, 23], "from_t_amplitud": [0, 18, 20], "frozen": [18, 20], "fsim": 0, "fswap": 0, "ftol": [3, 18], "full": [0, 2, 13, 14, 15], "fulli": 9, "fun": [3, 15, 18], "function": [0, 1, 2, 3, 5, 8, 9, 12, 14, 15, 16, 18, 19, 23], "fundament": 12, "further": [13, 14], "furthermor": [0, 2], "g": [0, 4, 15], "g_": 2, "g_1": 2, "g_i": 3, "g_k": 2, "g_l": 2, "gate": [0, 4, 10, 11, 15, 20, 21], "gener": [0, 3, 4, 5, 6, 8, 13, 14, 15, 19, 20, 21], "generate_norb_nelec": [6, 7], "generate_norb_nelec_spin": [6, 7], "generate_norb_nocc": [6, 7], "generate_norb_spin": [6, 7], "generate_preset_pass_manag": [13, 19], "genericbackendv2": [13, 19], "get": [0, 14, 15, 18, 20, 21, 23], "get_count": 20, "get_hcor": [15, 18], "get_ovlp": [15, 18], "git": 22, "github": [21, 22], "give": [0, 2, 8, 14, 19], "given": [0, 2, 4, 6, 8, 12], "givens_ansatz_op": 4, "givens_ansatz_oper": 4, "givens_decomposit": [2, 7], "givensansatzop": [0, 4, 7], "givensansatzoper": [0, 4, 7], "givensansatzoperatorjw": [4, 7], "givensansatzoperatorspinlessjw": [4, 7], "givensansatzopjw": [4, 7], "givensansatzopspinlessjw": [4, 7], "givensrot": [2, 7], "global": [4, 6], "global_depolar": 4, "go": [0, 13, 16], "good": 16, "gradient": [2, 3, 18], "greater": 3, "ground": [9, 18], "gt": [15, 18, 19, 20], "gto": [15, 18, 20, 21, 23], "gtol": 3, "guarante": [4, 19], "guess": [3, 18], "guid": [11, 15, 18, 19, 20, 21], "gzip": 0, "h": [0, 8, 9, 15, 18, 20, 23], "h1_x": 15, "h2_x": 15, "h2_y": 15, "h_": [0, 2, 8, 9], "h_0": [8, 23], "h_k": [8, 23], "ha": [0, 1, 2, 4, 8, 11, 12, 13, 14, 18], "haar": 5, "ham": 14, "hamiltonian": [0, 3, 4, 5, 10, 15, 18, 20, 21, 24], "hand": 14, "handl": [20, 23], "happen": 13, "hardwar": 13, "hartre": [0, 4, 11, 14, 18, 21, 23], "hartree_fock": 0, "hartree_fock_jw": 13, "hartree_fock_st": [0, 7, 9, 14, 18, 21, 23], "hasattr": 18, "hash": 16, "have": [0, 2, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22], "height": 5, "helper": 16, "here": [0, 2, 8, 12, 13, 15, 23], "hermitian": [0, 2, 5, 12], "hess_inv": [15, 18], "hf": [15, 18], "hf_energi": 0, "hf_mo_coeff": 0, "hf_mo_occ": 0, "high": 13, "higher": [0, 8, 23], "ho": 20, "hold": [0, 3], "home": [15, 18, 22], "hop": [0, 15], "hopgateansatzoper": [0, 7, 15], "hot": [0, 2], "how": [0, 8, 9, 11, 12, 13, 14, 21, 23], "howev": [8, 13, 21], "http": [0, 21, 22], "hubbard": 0, "hydroxyl": 20, "hyperparamet": [3, 18], "i": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23], "idea": 11, "ident": 0, "ignor": [0, 2, 8], "ij": [0, 1, 2, 4, 8, 11, 12], "ijab": 2, "ik": 12, "imag": 22, "implement": [0, 1, 3, 4, 8, 9, 11, 12, 13, 15, 18, 20, 21, 22, 24], "import": [0, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23], "impos": [11, 18], "improv": [3, 23], "includ": [0, 2, 4, 5, 8, 9, 12, 13, 14, 15, 18, 19, 21, 22], "incorpor": 0, "increas": [0, 14, 23], "increment": 3, "incur": 3, "independ": [0, 1, 4, 15], "index": [0, 2, 11, 14, 16], "indic": [0, 1, 2, 4, 11, 14, 16], "indices_to_str": [0, 7], "individu": [8, 14, 16], "info": 18, "inform": [0, 9, 16, 18, 21, 23], "init_cach": [0, 7], "initi": [0, 3, 4, 5, 6, 9, 11, 13, 18, 19, 20, 23], "initial_st": 23, "initiali": 15, "input": [0, 1, 3, 4, 5, 6, 18, 20], "insert": 13, "instanc": [5, 9, 23], "instead": [0, 2, 4, 5, 18, 23], "instruct": [21, 22], "instructionset": 19, "int": [0, 1, 2, 3, 4, 5, 6, 12, 15, 23], "int32": 0, "integ": [0, 2, 4, 6, 14], "integr": [0, 4], "interact": [0, 1, 2, 4, 11, 13, 18, 20], "interaction_pair": [0, 13, 15, 18, 20], "interfac": [18, 22], "interferomet": 2, "intermedi": 18, "intermediate_result": [3, 18], "intern": 16, "interpret": [0, 11], "intor_symmetr": [15, 18], "introduc": [11, 12, 23], "invers": 4, "involv": [0, 12, 13], "ip": 2, "ipykernel_4360": 9, "is_antihermitian": [2, 7], "is_hermitian": [2, 7], "is_orthogon": [2, 7], "is_real_symmetr": [2, 7], "is_special_orthogon": [2, 7], "is_unitari": [2, 7], "isclos": 0, "isn": 4, "issu": [9, 13], "item": 20, "iter": [0, 3, 4, 6, 18], "itertool": 2, "its": [0, 2, 4, 9, 13, 14, 15, 16, 23], "itself": [0, 14, 16], "j": [0, 1, 2, 4, 8, 11, 12, 14, 15, 16], "jac": [3, 15, 18], "jastrow": [0, 3, 4, 5, 10, 17, 21], "ji": [0, 4, 11, 12], "jk": 12, "job": [4, 20], "jordan": [0, 4], "jordan_wign": [4, 7], "jq": 2, "json": [0, 15, 18], "jupyt": 22, "just": [0, 14, 18, 22, 23], "jwt": 4, "k": [0, 2, 3, 8, 9, 11, 16, 20, 23], "kappa": 0, "kappa_": 0, "keep": [0, 2], "kei": 20, "kij": 23, "know": 15, "known": [0, 8], "kpi": 23, "kqi": 23, "krj": 23, "kron": 0, "ksj": 23, "kwarg": [0, 4], "l": [0, 2, 3, 8, 11, 15, 18, 23], "label": [4, 14], "ladder": [8, 11], "lambda": [0, 4, 20], "lambda_i": [0, 1, 4, 12], "lambda_k": 12, "langl": 0, "larger": [0, 2, 3, 16], "last": [0, 2, 3, 4], "later": [19, 23], "lattic": [0, 11, 13, 18, 20], "layer": [0, 2, 13, 20], "lbfgsinvhessproduct": [15, 18], "ldot": [0, 2, 8, 11, 23], "lead": 0, "least": 2, "left": [0, 4, 12, 14, 16], "len": [15, 18, 23], "length": [0, 4, 5, 14, 15], "leq": [0, 2], "less": [2, 11], "let": [0, 13, 14, 16, 18, 19, 20, 23], "level": 23, "lexicograph": [0, 16], "lib": [15, 18], "libopenbla": 22, "librari": [0, 21], "like": [4, 11, 18, 22], "limit": [0, 2, 11, 13, 15, 18], "linalg": [0, 7, 9, 12, 16, 18, 21, 23], "lindep": 3, "line": [0, 11, 13, 18], "linear": [0, 1, 2, 3, 4, 9, 12, 13, 16], "linear_oper": [0, 7, 9, 16, 18, 21, 23], "linearli": 8, "linearoper": [0, 1, 3, 16, 18, 21, 23], "linop": [9, 16, 21, 23], "linux": 22, "list": [0, 2, 4, 6, 11, 14, 15, 18, 20, 23], "ll": [9, 12, 13, 15, 18, 20, 23], "lm": 16, "load": 0, "local": [10, 17, 21], "localhost": 22, "log": [0, 4], "logarithm": 11, "logic": [12, 15], "longer": 11, "longest": 0, "lookup": 0, "losslessli": 0, "low": [0, 8, 23], "lower": [0, 2], "lowest": [0, 13, 14], "lt": [15, 18, 19, 20], "lu": 2, "lucj": [10, 13, 17, 21], "lup": [2, 7], "lvert": [0, 4, 11, 14], "lzma": 0, "m": [0, 1, 2, 12], "m_": [0, 1, 2], "maco": 22, "made": 23, "magnitud": 0, "mai": [0, 2, 3, 4, 11, 22, 23], "main": [18, 22], "maintain": 8, "make": [11, 13], "manag": [4, 13, 19, 22], "mani": [0, 9, 12, 14, 21], "manual": 23, "many_body_ord": 0, "map": [0, 4, 12, 13, 16], "mapsto": [0, 4, 12], "mat": [0, 1, 2, 4, 12, 14], "mat_aa": 2, "mat_ab": 2, "mat_alpha_beta": 1, "mat_bb": 2, "match": [0, 2], "match_global_phas": [2, 7], "math": [5, 15], "mathbf": [0, 8, 11, 12], "mathcal": [0, 1, 4, 8, 11, 12], "matric": [0, 1, 2, 4, 11, 12, 23], "matrix": [0, 1, 2, 3, 4, 5, 8, 9, 11, 12, 14, 16], "max": [3, 23], "max_error": 23, "max_term_length": 5, "max_vec": [0, 2, 23], "maxfun": 15, "maximum": [0, 2, 3, 5, 23], "maxit": [3, 18], "mcscf": [15, 18], "mea": 20, "meant": [4, 19], "measur": [5, 8, 20], "measure_al": 20, "mention": 8, "merg": [4, 19], "mergeorbitalrot": [4, 7, 13], "messag": [6, 15, 18], "method": [0, 2, 3, 4, 11, 15, 16, 20, 21], "mid": 20, "might": 2, "mind": 23, "minim": [0, 2, 3, 13, 15, 18], "minimize_linear_method": [3, 7, 18], "minimizz": 15, "minimum": 4, "mk": 2, "mkap": 2, "mkbq": 2, "mkip": 2, "mkjq": 2, "mkpq": 2, "mo_coeff": 0, "mo_occ": 0, "mode": 12, "model": 0, "modifi": [0, 2], "modified_choleski": [2, 7], "modul": [0, 14, 15, 19, 20], "mol": [15, 18, 20, 21, 23], "mol_data": [15, 18, 20, 21, 23], "mol_hamiltonian": [9, 15, 18, 20, 23], "mole": [0, 15, 18, 20, 21, 23], "molecul": [0, 18, 21, 23], "molecular": [0, 5, 9, 10, 14, 15, 18, 20, 21, 23], "moleculardata": [0, 7, 15, 18, 20, 21, 23], "molecularhamiltonian": [0, 5, 7, 9, 23], "more": [0, 2, 3, 4, 8, 9, 11, 13, 14, 19, 23], "most": [0, 2, 16, 20], "motiv": 13, "mp2": 0, "mp2_energi": 0, "mp2_t2": 0, "mpl": [13, 19], "msg": [15, 18], "mu": 0, "much": [0, 2, 8, 13, 21], "multipl": [0, 9, 16, 23], "multipli": [0, 16], "multiport": 2, "multirefer": 0, "multireference_st": [0, 7], "multireference_state_prod": [0, 7, 15], "must": [0, 2, 3, 4, 16, 20], "n": [0, 2, 3, 8, 9, 11, 12, 14, 20, 21, 23], "n2": [20, 21, 23], "n_": [0, 1, 4, 8, 11, 12, 14], "n_alpha": [4, 6, 20], "n_beta": [4, 6, 20], "n_frozen": [20, 23], "n_i": 4, "n_j": 4, "n_layer": 15, "n_p": 0, "n_param": [0, 13], "n_qubit": 4, "n_rep": [0, 5, 13, 18, 19, 20], "n_sampl": 0, "n_step": [0, 4, 13, 19, 23], "n_term": 5, "n_vec": 2, "n_x": 0, "n_y": 0, "name": [0, 9, 13, 14, 19, 22], "namedtupl": [0, 2], "nan": 6, "nao_nr": [15, 18, 20, 21, 23], "nativ": 21, "navig": 22, "ndarrai": [0, 1, 2, 3, 4, 5, 6, 12, 18, 23], "nearest": 0, "nearest_neighbor_interact": 0, "need": [0, 4, 9, 11, 13, 20, 22, 23], "neg": [0, 4], "neglig": 4, "neighbor": [0, 13], "nelec": [0, 1, 4, 6, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23], "nelectron": 18, "neq": 0, "nest": 2, "network": 11, "new": [0, 4, 12, 16], "newli": 0, "next": [13, 15, 23], "nfev": [3, 15, 18], "nit": [15, 18], "nitrogen": [20, 23], "njev": [15, 18], "nlinop": [3, 18], "nn": 0, "nocc": [0, 5, 6], "nocc_a": 2, "nocc_b": 2, "noisi": [4, 11], "non": [4, 11], "none": [0, 1, 2, 3, 4, 5, 6], "nonzero": [0, 2, 11], "norb": [0, 1, 2, 4, 5, 6, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23], "norb_i": 0, "norb_rang": 6, "norb_x": 0, "norm": [0, 18], "normal": [0, 15, 16], "normal_ord": [0, 16], "note": [0, 2, 3, 13, 14, 16, 19, 21], "notebook": 22, "noth": 4, "notic": 18, "notimplementederror": 4, "now": [9, 13, 15, 18, 20, 23], "np": [0, 2, 4, 5, 6, 9, 12, 13, 15, 18, 19, 20, 21, 23], "num_num_ansatz_op": 4, "num_op_sum_linop": [1, 7], "number": [0, 1, 2, 3, 4, 5, 6, 8, 9, 12, 14, 15, 16, 18, 21, 23], "number_oper": [0, 7], "numer": [0, 2, 4, 16], "numnumansatzopspinbalanc": [0, 4, 7], "numnumansatzopspinbalancedjw": [4, 7], "numopsumevolutionjw": [4, 7, 13, 19], "numopsumevolutionspinlessjw": [4, 7], "numpi": [0, 1, 2, 4, 6, 9, 11, 12, 13, 14, 15, 18, 19, 20, 21, 23], "o": [0, 15, 20], "o_1": 0, "o_2": 0, "o_k": 0, "obj": 0, "object": [0, 2, 3, 4, 5, 9, 16, 18, 20], "obtain": [0, 8, 9, 12, 13, 18, 23], "occ_a": 6, "occ_b": 6, "occup": [0, 6, 8, 12, 14], "occupi": [0, 4, 5, 6, 13, 14], "occupied_orbit": [0, 4, 13, 19, 20], "often": [8, 11, 18], "onc": [12, 13, 22], "one": [0, 1, 2, 4, 5, 8, 9, 13, 14, 18, 20, 22, 23], "one_body_basis_chang": 23, "one_body_energi": 23, "one_body_integr": 0, "one_body_linop": [1, 7], "one_body_squar": 0, "one_body_tensor": [0, 9, 23], "one_hot": [0, 2, 7], "one_rdm": 0, "ones": 9, "onli": [0, 2, 4, 8, 11, 12, 13, 20, 22], "onsit": 0, "onto": [13, 16], "op": [0, 4, 16], "op1": [0, 16], "op2": [0, 16], "op3": 16, "op4": 16, "opaqu": 13, "open": [0, 11], "openbla": 22, "oper": [0, 1, 2, 3, 4, 5, 8, 11, 12, 16, 18, 22, 23], "oppos": 13, "opposit": [18, 20], "optim": [0, 2, 4, 7, 11, 13, 19, 21], "optimization_level": [13, 19], "optimize_kwarg": 3, "optimize_regular": 3, "optimize_vari": 3, "optimizeresult": [3, 18], "option": [0, 1, 2, 3, 4, 9, 15, 18, 22], "orb": [0, 16], "orbit": [0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 18, 20, 21, 23], "orbital_rot": [0, 1, 2, 4, 12, 13, 14, 19, 20, 21, 23], "orbital_rotation_a": 2, "orbital_rotation_b": 2, "orbital_symmetri": 0, "orbitalrotationjw": [4, 7, 13, 19, 20], "orbitalrotationspinlessjw": [4, 7], "order": [0, 1, 2, 4, 8, 9, 13, 14, 16, 19, 20, 23], "ordereddict": [13, 19], "org": 0, "origin": [0, 2, 11, 13, 23], "orthogon": [2, 5], "other": [0, 4, 11, 14, 18, 19, 20], "otherwis": 0, "our": [15, 18, 20, 23], "out": [2, 23], "output": [0, 3, 4, 13, 18, 20], "over": 0, "overrid": [0, 2], "overridden": 4, "overwritten": [0, 15, 18], "own": 4, "p": [0, 2, 8, 9, 11, 13, 18, 19, 20], "packag": [15, 18, 22], "pacman": 22, "pad": 0, "page": [8, 9, 11, 12, 13, 14], "pair": [0, 1, 2, 4, 6, 11, 13, 14], "pairs_aa": [13, 18, 20], "pairs_ab": [13, 18, 20], "pairs_bb": 20, "paper": 11, "parallel": [2, 11, 13], "param": 0, "paramet": [0, 1, 2, 3, 4, 5, 6, 11, 15, 18], "parameter_valu": 4, "params_to_vec": [3, 18], "pars": [15, 18], "part": [0, 5, 8, 12, 14, 15], "particl": [0, 5, 6, 12, 16, 21], "pass": [0, 1, 2, 4, 9, 12, 13, 14, 15, 16, 18, 19], "pass_manag": [13, 19], "passmanag": [4, 13], "path": 0, "pathlik": 0, "pattern": [13, 15], "pauli": 0, "per": 23, "perform": [0, 2, 3, 8, 9, 12, 13, 20, 23], "period": 0, "periodic_i": 0, "periodic_x": 0, "permut": 2, "persist": 22, "ph": 5, "phase": [0, 2, 4, 6, 13], "phase_angl": 0, "phaseg": 13, "phi": [0, 2, 6], "phi_0": 11, "pi": [0, 15], "piec": [9, 16], "pip": 21, "pipelin": 13, "pivot": 2, "pk": 2, "place": [0, 2, 11, 13, 16, 22], "plain": 14, "pmatrix": [0, 2], "point": 0, "polar": 0, "posit": [2, 3, 14], "possibl": [0, 2, 6, 20, 21], "possibli": [0, 18], "potenti": 0, "power": 0, "pq": [0, 2, 8, 9], "pqr": [0, 2, 8, 9, 23], "practic": 8, "pre": [11, 19], "pre_init": [4, 7, 13, 19], "pre_init_pass": [4, 7, 19], "precis": 6, "prepar": [0, 4, 20], "preparehartreefockjw": [4, 7, 13, 19, 20], "preparehartreefockspinlessjw": [4, 7, 20], "prepareslaterdeterminantjw": [4, 7, 13, 19, 20], "prepareslaterdeterminantspinlessjw": [4, 7, 20], "present": 3, "preserv": [16, 20], "preset_passmanag": [13, 19], "previou": [18, 20], "previous": [8, 13, 14, 18], "primit": [4, 17, 21], "primitivejob": 4, "primitiveresult": 4, "print": [0, 6, 13, 14, 15, 16, 18, 20, 21, 23], "probabl": [0, 4], "problem": 3, "process": 0, "processor": 11, "prod": 15, "prod_": [0, 4, 11], "prod_k": 8, "prod_state_sum": 0, "produc": [0, 13], "product": [0, 2, 8, 14, 15, 16], "productstatesum": [0, 7], "programmat": 16, "properti": [0, 2, 12], "proport": [0, 8], "protocol": 0, "provid": [9, 13, 19, 22], "pseudorandom": [0, 4, 5, 6], "psi": [0, 11], "pub": [4, 20], "pub_result": 20, "put": 15, "py": [9, 15, 18], "pypi": 22, "pyscf": [0, 4, 14, 15, 18, 20, 21, 23], "python3": [15, 18], "q": [0, 8, 9, 13, 19], "qdrift": 0, "qi": 0, "qiskit": [7, 13, 17, 21, 22], "qiskit_vec_to_ffsim_vec": [4, 7], "qk": 2, "quadrat": [8, 10, 21, 23], "qualnam": 0, "quantifi": 2, "quantiti": 0, "quantum": [0, 4, 8, 11, 13, 14, 17, 20, 21], "quantumcircuit": [4, 13, 19, 20], "quantumregist": [13, 19, 20], "qubit": [0, 4, 10, 11, 15, 19, 20, 21], "r": [0, 2, 8, 9], "radic": 20, "radius_1": 15, "radius_2": 15, "rais": [0, 2, 4, 6], "random": [0, 4, 6, 7, 9, 13, 14, 15, 16, 19, 20, 21], "random_antihermitian": [5, 7], "random_diagonal_coulomb_hamiltonian": [5, 7], "random_double_factorized_hamiltonian": [5, 7, 13, 19], "random_fermion_hamiltonian": [5, 7], "random_fermion_oper": [5, 7], "random_hermitian": [5, 7], "random_molecular_hamiltonian": [5, 7], "random_nelec": [6, 7], "random_occupied_orbit": [6, 7], "random_orthogon": [5, 7], "random_real_symmetric_matrix": [5, 7, 9, 13, 19, 20], "random_special_orthogon": [5, 7], "random_state_vector": [5, 7, 16], "random_statevector": [5, 7], "random_t2_amplitud": [5, 7], "random_two_body_tensor": [5, 7, 9], "random_uccsd_restrict": [5, 7], "random_ucj_op_spin_balanc": [5, 7, 13, 19], "random_ucj_op_spin_unbalanc": [5, 7, 19], "random_ucj_op_spinless": [5, 7], "random_ucj_oper": [5, 7], "random_unitari": [5, 7, 13, 14, 19, 20, 21], "rang": [0, 2, 6, 13, 14, 15, 18, 20, 21, 23], "rangl": [0, 4, 11, 14], "rank": [0, 2, 5, 8, 13], "rather": [0, 5, 12, 14], "rccsd": 20, "rdm": [0, 7], "rdm1": 0, "rdm2": 0, "rdm3": 0, "rdm4": 0, "reach": 18, "read": 0, "real": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 18, 21], "realucjoper": [0, 7], "reason": [4, 12], "recal": 13, "recommend": [4, 13, 16, 19, 21], "reconstruct": [0, 2, 23], "reconstruct_t2_alpha_beta": 2, "recover": 0, "reduc": [0, 2, 13], "reduced_matrix": [2, 7], "reduced_matrix_product_st": 0, "reduct": 18, "redund": 11, "refer": [0, 2, 3, 4, 5, 6, 11, 12, 14, 18, 21], "reference_occup": [0, 15], "reference_occupations_spati": 15, "reference_st": 18, "regress": 0, "regular": [3, 18], "rel": [0, 2, 4, 6, 18], "rel_reduction_of_f_": 18, "relat": 12, "releas": 21, "reorder": [0, 8], "rep": 13, "repeat": 15, "repeatedli": 12, "repetit": [0, 5, 11, 13, 18], "repositori": 22, "repr": 16, "repres": [0, 2, 3, 4, 6, 9, 11, 14, 16, 18, 19], "represent": [0, 1, 2, 4, 5, 10, 14, 16, 21, 23], "reproduc": 23, "requir": [0, 9, 11, 13, 14, 22], "reshap": 14, "respect": [0, 2, 3, 23], "rest": [0, 13], "restrict": [0, 13, 18], "result": [0, 1, 2, 3, 4, 5, 8, 9, 11, 13, 15, 18, 19, 20, 23], "retain": [0, 13], "retriev": 20, "return": [0, 1, 2, 3, 4, 5, 6, 12, 15, 16, 18, 23], "return_lower_rank": 0, "revers": 20, "rewrit": 0, "rewritten": 12, "rhf": [0, 15, 18, 20, 21, 23], "right": [0, 4, 12, 14, 16], "ring": 0, "rise": [2, 8], "rng": [9, 13, 15, 19, 20], "rohf": 20, "root": 0, "rotat": [0, 1, 2, 4, 5, 8, 10, 11, 14, 21, 23], "rotated_vec": 14, "routin": [2, 9, 16], "row": [0, 2, 14], "rtol": [0, 2, 4, 6], "rtype": [0, 2, 4], "run": [0, 4, 13, 15, 18, 19, 20, 21, 22, 23], "run_ccsd": 0, "run_cisd": 0, "run_fci": [0, 15, 18], "run_mp2": 0, "run_sci": 0, "rung": 11, "runner": [15, 18], "rust": 22, "rvert": 0, "s_": [0, 14], "s_a": 0, "s_b": 0, "sa": 9, "same": [0, 9, 11, 12, 13, 14, 15, 18, 20], "sampl": [0, 4, 5, 6, 9], "sample_slater_determin": [0, 7], "sample_state_vector": [0, 7], "sampler": [0, 4, 17, 21], "samplerpubresult": 4, "sandwich": 13, "satisfi": [0, 12, 16, 20, 22], "save": [0, 18, 22], "scalar": [0, 16], "scale": [8, 13, 15, 19], "scf": [0, 15, 18, 20, 21, 23], "scf_func": 0, "scheme": 8, "sci": 0, "sci_energi": 0, "sci_vec": 0, "scipi": [0, 2, 3, 15, 16, 18, 21, 23], "search": 14, "second": [0, 2, 4, 8], "section": [8, 19], "sector": [0, 1, 2, 4, 15], "see": [0, 2, 4, 11, 13, 14, 19, 22, 23], "seed": [0, 4, 5, 6, 9, 13, 14, 19, 20, 21], "seen": 20, "select": 3, "sens": [13, 23], "separ": [0, 11, 14], "sequenc": [0, 2, 4, 13], "seri": 2, "serial": 0, "serializ": [15, 18], "set": [0, 1, 2, 4, 5, 8, 11, 12, 13, 19, 23], "setup": 11, "sever": [9, 13], "shape": [0, 2, 5, 11, 23], "share": 11, "shell": [11, 18], "shot": [0, 4, 20], "should": [0, 1, 2, 4, 5, 6, 9, 12, 22], "show": [13, 15, 16, 18, 19, 20], "shown": 16, "side": 0, "sigma": [0, 1, 4, 8, 9, 11, 12], "sign": 0, "signatur": 3, "signific": 23, "significantli": 13, "similar": 18, "simpl": [20, 22], "simpler": 0, "simpli": [4, 13, 14], "simplist": 23, "simul": [0, 4, 8, 11, 12, 14, 17, 21, 24], "simulate_qdrift_double_factor": [0, 7], "simulate_trotter_diag_coulomb_split_op": [0, 7], "simulate_trotter_double_factor": [0, 7, 8, 23], "simulate_trotter_step_double_factor": 23, "simulatetrotterdiagcoulombsplitopjw": [4, 7], "simulatetrotterdoublefactorizedjw": [4, 7, 13, 19], "sin": [0, 15], "sinc": [0, 2, 11, 12, 15, 18], "singl": [0, 1, 4, 6, 8, 13, 23], "singlefactorizedhamiltonian": [0, 7], "singular": [0, 2], "site": [0, 15, 18], "size": [0, 3, 15], "slater": [0, 4], "slater_determin": [0, 7], "slater_determinant_rdm": [0, 7], "slice": 2, "small": 2, "smaller": [0, 2, 8, 16, 23], "so": [0, 2, 6, 8, 11, 12, 13, 15, 16, 22, 23], "softwar": [0, 21], "solv": 3, "some": [0, 2, 6, 9, 13, 14, 16, 18, 20], "sometim": [0, 14], "sort": 20, "sourc": [0, 1, 2, 3, 4, 5, 6, 21], "space": [0, 9, 14, 15, 18, 20, 23], "span": [0, 2], "spars": [9, 16, 23], "sparsepauliop": 4, "sparsiti": 11, "spatial": [0, 1, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 23], "speci": [4, 6], "special": [2, 5, 11, 13, 21], "specif": 14, "specifi": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 15, 23], "spectral": 0, "spin": [0, 1, 2, 4, 5, 6, 7, 12, 13, 14, 15, 16, 18, 20, 21], "spin_squar": [0, 7], "spin_sum": 0, "spinless": [0, 4, 5, 6], "split": [0, 4, 23], "squar": [0, 2, 11, 13, 18, 20], "stack": 0, "stage": [4, 13, 19], "standard": 18, "standard_norm": [9, 13, 19], "star": 2, "start": 0, "state": [0, 1, 3, 4, 5, 9, 10, 11, 12, 13, 18, 20, 21, 23], "statevector": [0, 4, 7], "static": [0, 4], "statist": 20, "statu": [15, 18], "step": [0, 4, 8, 12, 15, 19, 23], "step_tim": 23, "still": [0, 8], "sto": [0, 15, 18, 23], "stop": [3, 15, 18], "store": [0, 2, 4, 6, 9, 11, 13, 18, 19, 23], "store_cisd_vec": 0, "store_fci_vec": 0, "store_sci_vec": 0, "store_t1": 0, "store_t2": 0, "str": [0, 2, 4, 6], "straightforward": 2, "strategi": 0, "strength": 0, "strictli": 3, "string": [0, 14, 16], "strings_a": 0, "strings_b": 0, "strings_to_address": [0, 7], "strings_to_indic": [0, 7], "structur": [0, 8], "sub": 0, "subclass": 4, "subdirectori": 22, "submit": 20, "subroutin": 12, "subspac": [0, 2, 16], "substitut": 0, "subsystem": [14, 22], "subtract": [0, 16], "success": [15, 18], "sudo": 22, "suffix": 15, "suggest": 19, "sum": [0, 4, 8, 23], "sum_": [0, 1, 2, 4, 8, 9, 11, 12, 23], "sum_j": 12, "sum_k": [8, 12], "sum_p": 0, "sum_t": 0, "summat": 0, "support": [0, 2, 9, 14, 16, 20, 22], "supportsapplyunitari": [0, 7], "supportsapproximateequ": [0, 7], "supportsdiagon": [0, 7], "supportsfermionoper": [0, 7], "supportslinearoper": [0, 7], "supportstrac": [0, 7], "suzuki": [0, 23], "swap": [0, 11, 13], "symmetr": [0, 2, 4, 5, 8, 11], "symmetri": [0, 12, 15, 18, 20, 21, 23], "system": [0, 4, 6, 12, 14, 22], "t": [0, 2, 4, 8, 11, 12, 20, 21], "t1": 0, "t1a": 0, "t1b": 0, "t2": [0, 2, 5, 18, 20], "t2_amplitud": 2, "t2aa": 0, "t2ab": 0, "t2bb": 0, "t_": 2, "tabl": [0, 16], "take": [0, 3, 18, 19], "taken": 11, "target": [2, 13], "target_orb": 0, "tau": [0, 1, 4, 8, 9, 11], "taylor": 2, "tensor": [0, 1, 2, 5, 8, 9, 18, 23], "term": [0, 2, 5, 8, 11, 16, 23], "test": [7, 21, 23], "text": [0, 8, 9], "th": [2, 12], "than": [0, 4, 5, 12, 13, 14, 18, 21], "thei": [0, 9, 11, 12, 16], "them": [11, 13, 14], "therefor": [0, 2, 11], "theta": [0, 15], "thi": [0, 2, 4, 5, 8, 9, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23], "think": 2, "third": [0, 2], "those": [3, 18], "though": 13, "three": [0, 1, 4, 9, 16], "threshold": [0, 2, 3], "thu": 8, "time": [0, 2, 3, 4, 9, 13, 14, 19, 20, 23], "titl": 21, "tmp": [9, 15, 18], "tmpipmpgn90": 18, "tmpjtn9ltdu": 15, "to_diag_coulomb_mat": 0, "to_fcidump": 0, "to_json": 0, "to_molecular_hamiltonian": 0, "to_number_represent": 0, "to_orbital_rot": 0, "to_paramet": [0, 18], "to_t_amplitud": 0, "to_z_represent": 0, "tol": [0, 2, 23], "toler": [0, 2, 4, 6, 11, 23], "too": 2, "top": 20, "topologi": [11, 13, 18], "toru": 0, "total": [0, 4, 8, 15, 18, 23], "tox": [15, 18], "trace": [0, 7, 9, 23], "tracea": [9, 23], "trajectori": 0, "transform": [0, 1, 4], "transformationpass": 4, "transpil": [4, 13, 17, 21], "transpiled_opt": 13, "treat": 0, "triangl": 11, "trianglular": [0, 2], "triangular": [0, 2, 4], "triplet": 6, "trotter": [0, 4, 21, 24], "true": [0, 2, 3, 4, 6, 16, 18, 20], "truncat": 8, "try": 23, "tunnel": 0, "tupl": [0, 1, 2, 4, 6, 12, 15, 16, 23], "tutori": [21, 23], "twice": [0, 15, 19], "two": [0, 2, 5, 8, 9, 11, 13, 14, 15, 18, 22, 23], "two_body_integr": 0, "two_body_tensor": [0, 2, 9, 23], "type": [0, 1, 2, 3, 4, 5, 6, 20, 22], "typeerror": 0, "typic": 0, "u": [0, 1, 2, 4, 8, 11, 12], "u_": 4, "u_k": 0, "ubuntu": 22, "uccsd": [0, 5, 20], "uccsdoprestrictedr": [0, 5, 7], "ucj": [0, 4, 5], "ucj_balanced_jw": 13, "ucj_op": [4, 13, 19, 20], "ucj_oper": 4, "ucjoper": [0, 4, 5, 7], "ucjoperatorjw": [4, 7], "ucjopspinbalanc": [0, 4, 5, 7, 11, 13, 18, 20], "ucjopspinbalancedjw": [4, 7, 13, 19, 20], "ucjopspinless": [0, 4, 5, 7], "ucjopspinlessjw": [4, 7], "ucjopspinunbalanc": [0, 4, 5, 7, 11, 20], "ucjopspinunbalancedjw": [4, 7, 13, 19, 20], "uhf": 20, "unbalanc": [0, 4, 5, 20], "uncorrel": 0, "under": [0, 4], "underli": 4, "unifi": 20, "uniform": [0, 4, 5], "unimpl": 4, "union": [2, 4], "unit": 2, "unitari": [0, 1, 2, 4, 5, 8, 10, 12, 14, 17, 21], "univers": 2, "unlik": 0, "unord": 0, "untouch": 0, "up": [0, 2, 6, 8, 14, 22], "updat": [0, 8], "upon": 16, "upper": [0, 2, 4, 11], "url": 21, "us": [0, 1, 2, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 21, 23], "usag": [0, 2, 16, 19], "user": 22, "userwarn": [9, 15, 18], "usual": 0, "util": [2, 5, 6, 8], "v": [0, 20], "v_": 0, "v_i": 2, "v_j": 2, "vacuum": 4, "valid": [0, 4, 5, 6], "valu": [0, 1, 2, 3, 4, 5, 6, 9, 11, 18, 19, 23], "valueerror": [0, 2, 4], "vari": [0, 4], "variabl": [14, 23], "variant": [11, 13, 18], "variat": [0, 3, 11, 18], "variation": 18, "varphi": 0, "vdot": [18, 21, 23], "ve": 23, "vec": [0, 1, 2, 4, 9, 12, 14, 16, 21, 23], "vec_a": 0, "vec_b": 0, "vector": [0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 15, 16, 18, 21], "verbos": 6, "verifi": 2, "version": 4, "vertic": 0, "via": [0, 23], "view": [0, 16], "volum": 22, "w": 0, "w_k": 0, "wa": [0, 3, 4, 11], "wai": 11, "want": 13, "warn": [9, 15, 18, 20], "water": 15, "wavefunct": [3, 18], "we": [0, 2, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23], "web": 22, "weight": 14, "well": [3, 14, 21, 22, 23], "when": [0, 3, 4, 9, 11, 13, 14, 16, 19, 21], "whenev": 0, "where": [0, 1, 2, 3, 4, 8, 11, 12, 14, 22, 23], "whether": [0, 1, 2, 3, 4, 5, 16], "which": [0, 2, 4, 5, 8, 9, 11, 12, 13, 14, 15, 16, 22, 23], "while": [8, 11], "whose": [0, 2, 14], "width": 5, "wigner": [0, 4], "william": 2, "window": [21, 22], "wise": 2, "with_final_orbital_rot": [0, 5], "with_phase_angl": 0, "with_phi": 0, "within": [0, 2, 13, 16, 18, 21], "without": [11, 13, 18], "won": 21, "word": [0, 11, 20], "work": [9, 13, 15, 18, 19, 21, 22], "workflow": 20, "would": [13, 14], "wrapper": 23, "write": 23, "written": 8, "wrote": 23, "wsl": 22, "x": [0, 3, 4, 13, 15, 18, 19, 20], "x0": [3, 15, 18], "xx_plus_yi": [13, 19], "xxplusyyg": [13, 19], "y": 0, "yaml": 22, "yet": [9, 18], "yield": [0, 2, 4, 8, 11, 15, 23], "you": [0, 1, 2, 4, 9, 14, 18, 21, 22, 23], "your": [19, 22], "z": [0, 1, 2, 4, 5, 12, 16, 21], "z_represent": [0, 1, 4, 5], "zero": [0, 2, 4, 9, 19], "zip": [0, 15, 18, 23], "\u03c8": 18}, "titles": ["ffsim", "ffsim.contract", "ffsim.linalg", "ffsim.optimize", "ffsim.qiskit", "ffsim.random", "ffsim.testing", "API reference", "Double-factorized representation of the molecular Hamiltonian", "Hamiltonians", "Explanations", "The local unitary cluster Jastrow (LUCJ) ansatz", "Orbital rotations and quadratic Hamiltonians", "Qubit gate decompositions of fermionic gates", "State vectors and gates", "How to simulate entanglement forging", "How to use the FermionOperator class", "How-to guides", "How to simulate the local unitary cluster Jastrow (LUCJ) ansatz", "How to build and transpile Qiskit quantum circuits", "How to use ffsim\u2019s Qiskit Sampler primitive", "ffsim", "Installation", "Implementing Trotter simulation of the double-factorized Hamiltonian", "Tutorials"], "titleterms": {"": 20, "The": 11, "action": 9, "an": 20, "ansatz": [11, 15, 18], "api": 7, "applic": 8, "background": 8, "balanc": [11, 19], "brief": 8, "build": [15, 19, 23], "can": 20, "choos": 15, "circuit": [19, 20], "cite": 21, "class": 16, "close": 20, "cluster": [11, 13, 18, 19], "code": 21, "comput": 15, "content": 21, "contract": 1, "coulomb": [13, 19], "criteria": 20, "data": 9, "decomposit": 13, "determin": [13, 19], "diagon": [13, 19], "docker": 22, "doubl": [8, 13, 19, 23], "energi": 15, "entangl": 15, "evolut": [8, 12, 13, 19], "exampl": [20, 21], "explan": 10, "factor": [8, 13, 19, 23], "fermion": [13, 14], "fermionoper": 16, "ffsim": [0, 1, 2, 3, 4, 5, 6, 20, 21], "ffsimsampl": 20, "fock": [13, 19], "forg": 15, "formula": 8, "from": [20, 22], "gate": [13, 14, 19], "gener": [11, 18], "guid": 17, "hamiltonian": [8, 9, 12, 13, 19, 23], "hartre": [13, 19], "how": [15, 16, 17, 18, 19, 20], "implement": 23, "initi": 15, "instal": [21, 22], "jastrow": [11, 13, 18, 19], "linalg": 2, "linear": 18, "linearoper": 9, "local": [11, 13, 18], "lucj": [11, 18, 20], "merg": 13, "method": 18, "molecul": [15, 20], "molecular": 8, "more": 20, "number": [13, 19], "occup": 15, "open": 20, "oper": [9, 13, 15, 19], "optim": [3, 15, 18], "orbit": [12, 13, 19], "overview": 19, "pip": 22, "prepar": [13, 19], "primit": 20, "qiskit": [4, 19, 20], "quadrat": 12, "quantum": 19, "qubit": 13, "random": 5, "refer": [7, 15], "represent": [8, 9], "rotat": [12, 13, 19], "sampl": 20, "sampler": 20, "scipi": 9, "shell": 20, "simul": [13, 15, 18, 19, 23], "slater": [13, 19], "sourc": 22, "spin": [11, 19], "spinless": 14, "state": [14, 19], "sum": [13, 19], "suzuki": 8, "test": 6, "time": [8, 12], "transform": 19, "transpil": 19, "treat": 14, "trotter": [8, 13, 19, 23], "tutori": 24, "ucj": [11, 13, 18, 19], "unbalanc": [11, 19], "unitari": [11, 13, 18, 19], "us": [16, 20, 22], "vector": 14, "via": [8, 9], "within": 22}}) \ No newline at end of file diff --git a/dev/tutorials/double-factorized-trotter.html b/dev/tutorials/double-factorized-trotter.html index 357906415..740974f8d 100644 --- a/dev/tutorials/double-factorized-trotter.html +++ b/dev/tutorials/double-factorized-trotter.html @@ -5,7 +5,7 @@ - + Implementing Trotter simulation of the double-factorized Hamiltonian - ffsim 0.0.48.dev0 @@ -455,7 +455,7 @@

Build the Hamiltonian
-Maximum error in a tensor entry: 0.03668541730983521
+Maximum error in a tensor entry: 0.03668541730983632
 

@@ -596,7 +596,7 @@

Implement Trotter simulation
-Fidelity of Trotter-evolved state with exact state: 0.9402393562196085
+Fidelity of Trotter-evolved state with exact state: 0.9402435115158845
 

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

@@ -623,7 +623,7 @@

Implement Trotter simulation
-Fidelity of Trotter-evolved state with exact state: 0.9985211214229854
+Fidelity of Trotter-evolved state with exact state: 0.9985212854200908
 

In the code cell below, we reproduce the results of our manually implemented function using ffsim’s built-in implementation.

@@ -651,7 +651,7 @@

Implement Trotter simulation
-Fidelity of Trotter-evolved state with exact state: 0.9985211214229489
+Fidelity of Trotter-evolved state with exact state: 0.9985212854200776
 

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

@@ -679,7 +679,7 @@

Implement Trotter simulation
-Fidelity of Trotter-evolved state with exact state: 0.9996731166932697
+Fidelity of Trotter-evolved state with exact state: 0.9996731164188856
 

You’ve made it to the end of this tutorial!

diff --git a/dev/tutorials/double-factorized-trotter.ipynb b/dev/tutorials/double-factorized-trotter.ipynb index e153556d5..a6877f265 100644 --- a/dev/tutorials/double-factorized-trotter.ipynb +++ b/dev/tutorials/double-factorized-trotter.ipynb @@ -18,10 +18,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:34.672179Z", - "iopub.status.busy": "2024-10-13T14:03:34.671986Z", - "iopub.status.idle": "2024-10-13T14:03:35.430109Z", - "shell.execute_reply": "2024-10-13T14:03:35.429527Z" + "iopub.execute_input": "2024-10-14T00:43:00.247638Z", + "iopub.status.busy": "2024-10-14T00:43:00.247446Z", + "iopub.status.idle": "2024-10-14T00:43:01.004447Z", + "shell.execute_reply": "2024-10-14T00:43:01.003869Z" } }, "outputs": [ @@ -80,10 +80,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.433903Z", - "iopub.status.busy": "2024-10-13T14:03:35.432770Z", - "iopub.status.idle": "2024-10-13T14:03:35.437548Z", - "shell.execute_reply": "2024-10-13T14:03:35.437103Z" + "iopub.execute_input": "2024-10-14T00:43:01.007572Z", + "iopub.status.busy": "2024-10-14T00:43:01.007062Z", + "iopub.status.idle": "2024-10-14T00:43:01.011349Z", + "shell.execute_reply": "2024-10-14T00:43:01.010884Z" } }, "outputs": [], @@ -106,10 +106,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.439333Z", - "iopub.status.busy": "2024-10-13T14:03:35.439154Z", - "iopub.status.idle": "2024-10-13T14:03:35.443165Z", - "shell.execute_reply": "2024-10-13T14:03:35.442756Z" + "iopub.execute_input": "2024-10-14T00:43:01.013297Z", + "iopub.status.busy": "2024-10-14T00:43:01.012933Z", + "iopub.status.idle": "2024-10-14T00:43:01.017246Z", + "shell.execute_reply": "2024-10-14T00:43:01.016774Z" } }, "outputs": [ @@ -172,10 +172,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.445058Z", - "iopub.status.busy": "2024-10-13T14:03:35.444622Z", - "iopub.status.idle": "2024-10-13T14:03:35.448162Z", - "shell.execute_reply": "2024-10-13T14:03:35.447751Z" + "iopub.execute_input": "2024-10-14T00:43:01.019302Z", + "iopub.status.busy": "2024-10-14T00:43:01.018946Z", + "iopub.status.idle": "2024-10-14T00:43:01.023373Z", + "shell.execute_reply": "2024-10-14T00:43:01.022785Z" } }, "outputs": [ @@ -208,10 +208,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.449886Z", - "iopub.status.busy": "2024-10-13T14:03:35.449568Z", - "iopub.status.idle": "2024-10-13T14:03:35.453274Z", - "shell.execute_reply": "2024-10-13T14:03:35.452728Z" + "iopub.execute_input": "2024-10-14T00:43:01.025216Z", + "iopub.status.busy": "2024-10-14T00:43:01.024884Z", + "iopub.status.idle": "2024-10-14T00:43:01.028948Z", + "shell.execute_reply": "2024-10-14T00:43:01.028456Z" } }, "outputs": [ @@ -242,10 +242,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.455151Z", - "iopub.status.busy": "2024-10-13T14:03:35.454818Z", - "iopub.status.idle": "2024-10-13T14:03:35.475461Z", - "shell.execute_reply": "2024-10-13T14:03:35.474859Z" + "iopub.execute_input": "2024-10-14T00:43:01.030950Z", + "iopub.status.busy": "2024-10-14T00:43:01.030595Z", + "iopub.status.idle": "2024-10-14T00:43:01.049876Z", + "shell.execute_reply": "2024-10-14T00:43:01.049405Z" } }, "outputs": [ @@ -253,7 +253,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Maximum error in a tensor entry: 0.03668541730983521\n" + "Maximum error in a tensor entry: 0.03668541730983632\n" ] } ], @@ -302,10 +302,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.477558Z", - "iopub.status.busy": "2024-10-13T14:03:35.477220Z", - "iopub.status.idle": "2024-10-13T14:03:35.481430Z", - "shell.execute_reply": "2024-10-13T14:03:35.480849Z" + "iopub.execute_input": "2024-10-14T00:43:01.051669Z", + "iopub.status.busy": "2024-10-14T00:43:01.051481Z", + "iopub.status.idle": "2024-10-14T00:43:01.055775Z", + "shell.execute_reply": "2024-10-14T00:43:01.055291Z" } }, "outputs": [], @@ -360,10 +360,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.483284Z", - "iopub.status.busy": "2024-10-13T14:03:35.482939Z", - "iopub.status.idle": "2024-10-13T14:03:35.486589Z", - "shell.execute_reply": "2024-10-13T14:03:35.486008Z" + "iopub.execute_input": "2024-10-14T00:43:01.057735Z", + "iopub.status.busy": "2024-10-14T00:43:01.057265Z", + "iopub.status.idle": "2024-10-14T00:43:01.060982Z", + "shell.execute_reply": "2024-10-14T00:43:01.060356Z" } }, "outputs": [], @@ -400,10 +400,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.488606Z", - "iopub.status.busy": "2024-10-13T14:03:35.488125Z", - "iopub.status.idle": "2024-10-13T14:03:35.586922Z", - "shell.execute_reply": "2024-10-13T14:03:35.586303Z" + "iopub.execute_input": "2024-10-14T00:43:01.062823Z", + "iopub.status.busy": "2024-10-14T00:43:01.062638Z", + "iopub.status.idle": "2024-10-14T00:43:01.160548Z", + "shell.execute_reply": "2024-10-14T00:43:01.160021Z" } }, "outputs": [], @@ -439,10 +439,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.590380Z", - "iopub.status.busy": "2024-10-13T14:03:35.589875Z", - "iopub.status.idle": "2024-10-13T14:03:35.639449Z", - "shell.execute_reply": "2024-10-13T14:03:35.638864Z" + "iopub.execute_input": "2024-10-14T00:43:01.162793Z", + "iopub.status.busy": "2024-10-14T00:43:01.162384Z", + "iopub.status.idle": "2024-10-14T00:43:01.211652Z", + "shell.execute_reply": "2024-10-14T00:43:01.211155Z" } }, "outputs": [ @@ -450,7 +450,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9402393562196085\n" + "Fidelity of Trotter-evolved state with exact state: 0.9402435115158845\n" ] } ], @@ -480,10 +480,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.641570Z", - "iopub.status.busy": "2024-10-13T14:03:35.641186Z", - "iopub.status.idle": "2024-10-13T14:03:35.855304Z", - "shell.execute_reply": "2024-10-13T14:03:35.854788Z" + "iopub.execute_input": "2024-10-14T00:43:01.213347Z", + "iopub.status.busy": "2024-10-14T00:43:01.213159Z", + "iopub.status.idle": "2024-10-14T00:43:01.426388Z", + "shell.execute_reply": "2024-10-14T00:43:01.425857Z" } }, "outputs": [ @@ -491,7 +491,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9985211214229854\n" + "Fidelity of Trotter-evolved state with exact state: 0.9985212854200908\n" ] } ], @@ -521,10 +521,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.857394Z", - "iopub.status.busy": "2024-10-13T14:03:35.857203Z", - "iopub.status.idle": "2024-10-13T14:03:35.985868Z", - "shell.execute_reply": "2024-10-13T14:03:35.985287Z" + "iopub.execute_input": "2024-10-14T00:43:01.428324Z", + "iopub.status.busy": "2024-10-14T00:43:01.427964Z", + "iopub.status.idle": "2024-10-14T00:43:01.553343Z", + "shell.execute_reply": "2024-10-14T00:43:01.552888Z" } }, "outputs": [ @@ -532,7 +532,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9985211214229489\n" + "Fidelity of Trotter-evolved state with exact state: 0.9985212854200776\n" ] } ], @@ -563,10 +563,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-10-13T14:03:35.987801Z", - "iopub.status.busy": "2024-10-13T14:03:35.987459Z", - "iopub.status.idle": "2024-10-13T14:03:36.090076Z", - "shell.execute_reply": "2024-10-13T14:03:36.089595Z" + "iopub.execute_input": "2024-10-14T00:43:01.555068Z", + "iopub.status.busy": "2024-10-14T00:43:01.554883Z", + "iopub.status.idle": "2024-10-14T00:43:01.660956Z", + "shell.execute_reply": "2024-10-14T00:43:01.660447Z" } }, "outputs": [ @@ -574,7 +574,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9996731166932697\n" + "Fidelity of Trotter-evolved state with exact state: 0.9996731164188856\n" ] } ], diff --git a/dev/tutorials/index.html b/dev/tutorials/index.html index 1b30720b5..68d6a0ba9 100644 --- a/dev/tutorials/index.html +++ b/dev/tutorials/index.html @@ -5,7 +5,7 @@ - + Tutorials - ffsim 0.0.48.dev0