From 5934a5e5bb2d922714381643917ef4d160bb9fad Mon Sep 17 00:00:00 2001 From: kevinsung Date: Fri, 27 Oct 2023 15:56:46 +0000 Subject: [PATCH] deploy: 8c2ee157423f8dde82bab4fa72c90cb2bf7348c9 --- .doctrees/api/ffsim.contract.doctree | Bin 67927 -> 78926 bytes .doctrees/api/ffsim.doctree | Bin 475473 -> 475473 bytes .doctrees/environment.pickle | Bin 1500441 -> 1516781 bytes .../nbsphinx/tutorials/01-introduction.ipynb | 24 ++-- .../tutorials/02-orbital-rotation.ipynb | 32 ++--- .../tutorials/03-double-factorized.ipynb | 128 +++++++++--------- .doctrees/nbsphinx/tutorials/04-lucj.ipynb | 56 ++++---- .../tutorials/05-entanglement-forging.ipynb | 28 ++-- .../tutorials/06-fermion-operator.ipynb | 126 ++++++++--------- .../tutorials/03-double-factorized.doctree | Bin 54592 -> 54670 bytes .doctrees/tutorials/04-lucj.doctree | Bin 38275 -> 38269 bytes .../tutorials/05-entanglement-forging.doctree | Bin 15260 -> 15254 bytes .../tutorials/06-fermion-operator.doctree | Bin 41445 -> 41385 bytes _modules/ffsim/contract/one_body.html | 31 ++++- api/ffsim.contract.html | 32 ++++- api/ffsim.html | 20 +-- genindex.html | 2 + index.html | 1 + objects.inv | Bin 3506 -> 3522 bytes searchindex.js | 2 +- tutorials/01-introduction.ipynb | 24 ++-- tutorials/02-orbital-rotation.ipynb | 32 ++--- tutorials/03-double-factorized.html | 48 +++---- tutorials/03-double-factorized.ipynb | 128 +++++++++--------- tutorials/04-lucj.html | 24 ++-- tutorials/04-lucj.ipynb | 56 ++++---- tutorials/05-entanglement-forging.html | 4 +- tutorials/05-entanglement-forging.ipynb | 28 ++-- tutorials/06-fermion-operator.html | 54 ++++---- tutorials/06-fermion-operator.ipynb | 126 ++++++++--------- 30 files changed, 533 insertions(+), 473 deletions(-) diff --git a/.doctrees/api/ffsim.contract.doctree b/.doctrees/api/ffsim.contract.doctree index c81d128e3b277252489d960d1eb8a9823c349996..e6508797584620697975f81f6d6ab4447efdb505 100644 GIT binary patch delta 8130 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 G(!T-PUB^`b delta 4739 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 diff --git a/.doctrees/api/ffsim.doctree b/.doctrees/api/ffsim.doctree index f2874522abb652b2c6fcd08bccbf568baecd2501..f5ca5f9f9db66fb77a48c7595f430da34dfa7984 100644 GIT binary patch delta 283 zcmccEBzv(*wqXn7G4bgJGK?bAV?-G_rq?JiI!{-XU{psF+rCTM(ODWs*Hit_kzT7)qn=wQel*u{y>#c jVfq|ZMi*igxBpUO1Y#y2W(HywAZ7((w(Y;v*u$j&ENxQj delta 311 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 e^lYY;sJ&lu1&#BFglOLW_ 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�QW*9i50!o1#`Ll)zy6+%M@DU;G?>8le_Y1kxkkb{q@V ziXxD{5FY@cfFkTn3sw}0Kzc-cfV<7<-7h260Ln_bMSOspP0@))YMeB7%7hxqN&3c& zbF>QZN}q;Exq>Ai0V5qD9MF$3Y8#41x*`x*UX+cr{*a>cAx6eU{o|FLbmud=YQ+{Vf``?0XVOg zqA!}NxBHWO*BWw2I;^xuD-zWal++=XLuplFOO&6a_M@aTjX1RFE-@V)NKz+IQcFnH zwnprN?oNhsk_X&pBywo>F<4v*Nl~L5m;|{Urc$>@6;V<+>YbuCqlvd9aOh;Nl!{(R zQJYW_d?uFiJDRB-{K=E@B7ExT=s{qd)J#otU=lzcqmXUT+{d^m_}G>&dcT<(;ZGi@ z_s@o}%=*DY=W42&QiVyt@EKv4QXM#Ke8qTohY!6xgeLefdh9(lE`+b{)30zR@1i|D z+UcfrRj~LHJ4`gsN8!%DpO~>@Wx&LkVG*K@cFS15x)Fge_r&@R~vB z98L)P4Z>%X@VY^m(~zV%q!FrM-Y=3+-ZYXFL=nPU2BASTA-rP{PEf+T2H{W)N%5XR z*cwX+9~gv=afEQpAS@$6Nd-vq+)l|kr5 z3Evom#fc=vDN3jUm(eDPP|g@h9!n;K?+ikA3L$)N5cW~Rj|QQ4Gm_$hLGVo_gr5vT zNOMB?*&sO6fKXNAx@=IQ(n*qE4MNilLbz%We#s<+KMX>&2t1i>I|EFdXD3__z8gdiG(=QedY%^={JA4rj5 z5DM<9SA{8A24(hqk|f6<)ZRk~c?O~NB0?xI2#M8%(83@bSV{=348ry0gwVzy^j=8_ z?SN24mE>{_q1ZPyDxjB6AFkQ4}a7z7-K0%4Xx!0{&#=3oK@ zb>RQ;fE_6FGz#rM@6xYaIPiqqcN+v8Y64+_LBKI45EdB(99;rou|dEAB@mVv1RO~M zVOePv6{DUD$B;l-VI;x9BM?>@1ROg8VKpXbp(7#OrxS?sJfL5>aNr2(A2J9ySOmga zOweLQj@aLNok9>E)303VA%x*cgHTQh&tQTcH)6==bOHg`gs=1<5#QdT6Ugls^(%-6 zY5v;`$~q^>@fA!UuDLjt5O(MUg0M@!azSi}GuUeoATq>+{RRQzLQFVl5FjeVgf}r^ zt`FFs3xYySd7DyjI0jco^eY#Hf%x`&1_6RVO!yEJ^bimeKGq2Y;8T312YmSU7dipo zCTnHY4JuK~Jhd}_M~~XO@?frlyJMA<*3=i*U3DA^Nl@cp5~d187O2fuElrE&=B(P3 zmImKJ{UR+H?I})KU`z*hr?Rpw^4VpI)o=tCYJIoou-J!RuYAT5+lLe?W za`v*SpG|^TjnJmJ<~OKUud=2Zo@$@LMb+-QUA^X4MNq?wqhTQ9Lska}p-FKv5E_h_ zR5oN-jf;>{i?c8Z(io)N;+A?USRo*(+7x%xQ|Y9l;*te5Q}Ep1O-@}XpIO>jx@#YF zS5#(y+~h?166m1lS@50u+0A$1vszcBTHFAax^{*NZz-$&eunCj@b#^W)dc)swODP2 z|DRi|HV-0bXCTl5&Tkg0nL+qY7*gT2O+8RCQj-FS)ZL4FLZ$AV#)qLAq^bb>3{ulb z;!hq`TSk*a&5Jv0Ra0r| z*y5&I>RTXKqp81wZVgg5drh66gR!?-ToH5p%bzoI7L|Eb#b z`YUQ$GO0sXj*jWb)6Zfdu%h{hg(RO}uc#Np>chln1lqgXCrTyN7E%1ff||*o?l};4 zfiOv8XnY>dq_lHrEdHO^Ig|+VfOfsJb7(>^VST^EAC$d15@jTZM%Kp~hQy-K2+WjL z6dKtZCn~ArN;W_$Qq`|RAV(#d3=teX+XayuJ?jl28$HYFtDg;mAdS*qg4hehTU!+R zp-d$YE3TrFzYBpI+*&XobVgRd>ZT2-wXRtb8cSO-rnnSZvEqG4Lmw<-(UQ=nSjLJa zp_#NGKf}jkpdeAG*OJii!16Iu%U~WECq1$xv=vSoyfl^Vo(K&M5eTkY+?(XM;<6G! z^|^2HL@lR&5Li;a_SJ;%*B3*7@uzJRRosTQk+_=N;&z6n4aG0RtByt7?MjnisAX`Q z4U6vsc-Xxb=}e@Ggd&}-aZMkKbP_H6Ez(KcM$;%KX^Eau^m=xblQiZNQBKk_Z$>%O zXv+-ZOV;v4MAsGwL7_Y$(ayKSG3Xch&Rklq*y23MxC!bNrp8lUC@h`_l%yeRUJw(V zT7Azi-b#VmK!o3%W6*`bsvXjwr~d2{yy2c zoT8La@>euNXOF z2&`^az)U2$mr^`{mTW!*yF|#zu3z@o&YJ6t3Kdp&TUL+!puJGV-9e2)36ENw4tNdj zm{d^-i%+;1tDP~r;x5*T@fO6wG-|#M5iL2J;=1<`>EKdP#v&zpRaDF1+Ky|SOM5ia zV8KeOrI8g=hK~iEA2y=0V$zs9%0_CEb}fDtZpWh`+nn)KMG{UqHQ)Mv@maX%7*aWD z%J>mrCL@QGjVT{ZWSelxNxB_$it5Y$Q&dmRo^p~F3_k6Q>wxnwL0rkx&}7xhkh19$ z#tj)ZzH-du8RN#4RZbc+g317ntYjlj5;CNG(y)<3#+D5mHDqiBt%S*^olOb|&`z%8 zSH123zj*+A0FYpK18n+3Sd-qs1H|(TI6#DfXF~D{Z-4MyjFlr992lbB3P5|9!9&Ji z0cCGvki|u*DW%Ck|K%nEodulB0?V0sJ3&MJ>NS`p-k|AMaIYm3*lvf0e=;yCfDH`s z>GC$b;@jgth=uZLfK3nqTPKhSY&!tGosn9Un^}^Xmwb>p4&}(EY;T+1Bmr{)<`2xPr|W@KywePGVk4 zelD`BfMtt{w-r!Mum~cTUsRF-oGS#*??XLj>m3C2oPQ1<@N!O|FT7;LWw^j*rh^LE z>5XoD^3X!6%DWe6kjV4^dElG_SjhzM1waw$>4}Pvw!vK)afN!Y%pUKvP!I10_JSZI z-G8;o@e*x`YQO#}9HAgmd{E)Ils0@$^Iu\n" ] } @@ -246,10 +246,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:10.598208Z", - "iopub.status.busy": "2023-10-27T03:05:10.597724Z", - "iopub.status.idle": "2023-10-27T03:05:14.139838Z", - "shell.execute_reply": "2023-10-27T03:05:14.139253Z" + "iopub.execute_input": "2023-10-27T15:56:31.320238Z", + "iopub.status.busy": "2023-10-27T15:56:31.319937Z", + "iopub.status.idle": "2023-10-27T15:56:35.282027Z", + "shell.execute_reply": "2023-10-27T15:56:35.281277Z" } }, "outputs": [ @@ -261,10 +261,10 @@ " message: STOP: TOTAL NO. of f AND g EVALUATIONS EXCEEDS LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.45946564739053\n", - " x: [-3.765e-01 8.190e-02 ... -5.784e-01 1.644e-01]\n", - " nit: 16\n", - " jac: [-1.646e-03 9.805e-05 ... -1.137e-05 -1.251e-04]\n", + " fun: -77.45847049044065\n", + " x: [-3.706e-01 8.437e-02 ... 5.969e-01 2.892e-01]\n", + " nit: 15\n", + " jac: [ 4.411e-03 -8.157e-04 ... -6.338e-04 1.933e-04]\n", " nfev: 1034\n", " njev: 22\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" diff --git a/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb b/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb index 03c556894..24677cfb4 100644 --- a/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb +++ b/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb @@ -14,10 +14,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:16.248103Z", - "iopub.status.busy": "2023-10-27T03:05:16.246192Z", - "iopub.status.idle": "2023-10-27T03:05:16.873689Z", - "shell.execute_reply": "2023-10-27T03:05:16.872788Z" + "iopub.execute_input": "2023-10-27T15:56:37.070428Z", + "iopub.status.busy": "2023-10-27T15:56:37.070004Z", + "iopub.status.idle": "2023-10-27T15:56:37.665177Z", + "shell.execute_reply": "2023-10-27T15:56:37.664437Z" } }, "outputs": [ @@ -90,10 +90,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:16.877753Z", - "iopub.status.busy": "2023-10-27T03:05:16.877167Z", - "iopub.status.idle": "2023-10-27T03:05:16.929555Z", - "shell.execute_reply": "2023-10-27T03:05:16.928339Z" + "iopub.execute_input": "2023-10-27T15:56:37.670102Z", + "iopub.status.busy": "2023-10-27T15:56:37.668895Z", + "iopub.status.idle": "2023-10-27T15:56:37.698420Z", + "shell.execute_reply": "2023-10-27T15:56:37.697754Z" } }, "outputs": [ @@ -101,7 +101,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialialization: -75.68366174447618\n" + "Energy at initialialization: -75.6836617444762\n" ] } ], @@ -135,10 +135,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:16.935598Z", - "iopub.status.busy": "2023-10-27T03:05:16.935182Z", - "iopub.status.idle": "2023-10-27T03:05:19.090629Z", - "shell.execute_reply": "2023-10-27T03:05:19.089696Z" + "iopub.execute_input": "2023-10-27T15:56:37.702992Z", + "iopub.status.busy": "2023-10-27T15:56:37.701930Z", + "iopub.status.idle": "2023-10-27T15:56:40.173563Z", + "shell.execute_reply": "2023-10-27T15:56:40.172738Z" } }, "outputs": [ @@ -150,7 +150,7 @@ " message: Maximum number of function evaluations has been exceeded.\n", " success: False\n", " status: 2\n", - " fun: -75.69448131020114\n", + " fun: -75.69448131113485\n", " x: [ 1.354e+00 9.651e-02 -1.863e-03 1.095e+00 -2.132e-01]\n", " nfev: 100\n", " maxcv: 0.0\n" diff --git a/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb b/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb index 737161603..17d56189a 100644 --- a/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb +++ b/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:20.826794Z", - "iopub.status.busy": "2023-10-27T03:05:20.826354Z", - "iopub.status.idle": "2023-10-27T03:05:21.191528Z", - "shell.execute_reply": "2023-10-27T03:05:21.190910Z" + "iopub.execute_input": "2023-10-27T15:56:41.814382Z", + "iopub.status.busy": "2023-10-27T15:56:41.813941Z", + "iopub.status.idle": "2023-10-27T15:56:42.177500Z", + "shell.execute_reply": "2023-10-27T15:56:42.176750Z" } }, "outputs": [ @@ -40,9 +40,9 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0)): -0.25,\n", + " (cre_b(1), des_b(5), cre_a(4)): 1+1j,\n", " (cre_a(0), des_a(3)): 0.5,\n", - " (cre_b(1), des_b(5), cre_a(4)): 1+1j\n", + " (cre_a(3), des_a(0)): -0.25\n", "})" ] }, @@ -76,17 +76,17 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.196565Z", - "iopub.status.busy": "2023-10-27T03:05:21.195229Z", - "iopub.status.idle": "2023-10-27T03:05:21.202666Z", - "shell.execute_reply": "2023-10-27T03:05:21.202084Z" + "iopub.execute_input": "2023-10-27T15:56:42.180809Z", + "iopub.status.busy": "2023-10-27T15:56:42.180437Z", + "iopub.status.idle": "2023-10-27T15:56:42.185404Z", + "shell.execute_reply": "2023-10-27T15:56:42.184750Z" } }, "outputs": [ { "data": { "text/plain": [ - "'FermionOperator({((True, False, 3), (False, False, 0)): -0.25+0j, ((True, False, 0), (False, False, 3)): 0.5+0j, ((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j})'" + "'FermionOperator({((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j, ((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j})'" ] }, "execution_count": 2, @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.208130Z", - "iopub.status.busy": "2023-10-27T03:05:21.206968Z", - "iopub.status.idle": "2023-10-27T03:05:21.215617Z", - "shell.execute_reply": "2023-10-27T03:05:21.214933Z" + "iopub.execute_input": "2023-10-27T15:56:42.188816Z", + "iopub.status.busy": "2023-10-27T15:56:42.188104Z", + "iopub.status.idle": "2023-10-27T15:56:42.193682Z", + "shell.execute_reply": "2023-10-27T15:56:42.192973Z" } }, "outputs": [ @@ -121,16 +121,16 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", - " (cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0)): -0.5,\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)): 1,\n", " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", - " (des_a(3), des_b(3)): 0.0625,\n", - " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", + " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", + " (cre_a(3), des_a(0)): -0.5,\n", + " (cre_a(0), des_a(3)): 1,\n", + " (cre_b(2)): 0-0.25j,\n", + " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", + " (des_a(3), des_b(3)): 0.0625,\n", " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j\n", "})" ] @@ -169,10 +169,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.223002Z", - "iopub.status.busy": "2023-10-27T03:05:21.219475Z", - "iopub.status.idle": "2023-10-27T03:05:21.229733Z", - "shell.execute_reply": "2023-10-27T03:05:21.229048Z" + "iopub.execute_input": "2023-10-27T15:56:42.196824Z", + "iopub.status.busy": "2023-10-27T15:56:42.196346Z", + "iopub.status.idle": "2023-10-27T15:56:42.201953Z", + "shell.execute_reply": "2023-10-27T15:56:42.201326Z" } }, "outputs": [ @@ -180,16 +180,16 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0), cre_b(2)): -1,\n", - " (cre_b(2)): -5,\n", - " (cre_a(3), des_a(0)): 0+3j,\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)): 0-6j,\n", " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", - " (des_a(3), des_b(3)): 0-1.25j,\n", - " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", + " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", + " (cre_a(3), des_a(0)): 0+3j,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_b(2)): -5,\n", + " (cre_a(3), des_a(0), cre_b(2)): -1,\n", + " (des_a(3), des_b(3)): 0-1.25j,\n", " (cre_a(0), des_a(3), cre_b(2)): 2\n", "})" ] @@ -219,10 +219,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.234131Z", - "iopub.status.busy": "2023-10-27T03:05:21.233065Z", - "iopub.status.idle": "2023-10-27T03:05:21.240141Z", - "shell.execute_reply": "2023-10-27T03:05:21.239585Z" + "iopub.execute_input": "2023-10-27T15:56:42.205470Z", + "iopub.status.busy": "2023-10-27T15:56:42.205033Z", + "iopub.status.idle": "2023-10-27T15:56:42.211108Z", + "shell.execute_reply": "2023-10-27T15:56:42.210442Z" } }, "outputs": [ @@ -230,14 +230,14 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (des_b(3), des_a(3)): 0+1.25j,\n", - " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", " (cre_b(2), cre_a(3), des_a(0)): -1,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", + " (cre_b(2)): -5,\n", + " (des_b(3), des_a(3)): 0+1.25j,\n", " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,\n", - " (cre_b(2), cre_a(0), des_a(3)): 2,\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(0), des_a(3)): 2,\n", " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", " (cre_a(3), des_a(0)): 0+3j\n", "})" @@ -264,10 +264,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.244450Z", - "iopub.status.busy": "2023-10-27T03:05:21.243285Z", - "iopub.status.idle": "2023-10-27T03:05:21.250663Z", - "shell.execute_reply": "2023-10-27T03:05:21.250096Z" + "iopub.execute_input": "2023-10-27T15:56:42.214641Z", + "iopub.status.busy": "2023-10-27T15:56:42.214210Z", + "iopub.status.idle": "2023-10-27T15:56:42.220562Z", + "shell.execute_reply": "2023-10-27T15:56:42.219879Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.254249Z", - "iopub.status.busy": "2023-10-27T03:05:21.253812Z", - "iopub.status.idle": "2023-10-27T03:05:21.262971Z", - "shell.execute_reply": "2023-10-27T03:05:21.262375Z" + "iopub.execute_input": "2023-10-27T15:56:42.224072Z", + "iopub.status.busy": "2023-10-27T15:56:42.223577Z", + "iopub.status.idle": "2023-10-27T15:56:42.229192Z", + "shell.execute_reply": "2023-10-27T15:56:42.228560Z" } }, "outputs": [ @@ -340,21 +340,21 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.267860Z", - "iopub.status.busy": "2023-10-27T03:05:21.266431Z", - "iopub.status.idle": "2023-10-27T03:05:21.275640Z", - "shell.execute_reply": "2023-10-27T03:05:21.275026Z" + "iopub.execute_input": "2023-10-27T15:56:42.234118Z", + "iopub.status.busy": "2023-10-27T15:56:42.233634Z", + "iopub.status.idle": "2023-10-27T15:56:42.242733Z", + "shell.execute_reply": "2023-10-27T15:56:42.242056Z" } }, "outputs": [ { "data": { "text/plain": [ - "array([ 0. +0.j , 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " -0.04860684-0.04058205j, 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.10673406+0.06752782j, 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0. +0.j ])" ] }, "execution_count": 8, @@ -379,10 +379,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.280309Z", - "iopub.status.busy": "2023-10-27T03:05:21.279234Z", - "iopub.status.idle": "2023-10-27T03:05:21.295396Z", - "shell.execute_reply": "2023-10-27T03:05:21.294821Z" + "iopub.execute_input": "2023-10-27T15:56:42.246326Z", + "iopub.status.busy": "2023-10-27T15:56:42.245873Z", + "iopub.status.idle": "2023-10-27T15:56:42.261857Z", + "shell.execute_reply": "2023-10-27T15:56:42.261249Z" } }, "outputs": [ diff --git a/.doctrees/tutorials/03-double-factorized.doctree b/.doctrees/tutorials/03-double-factorized.doctree index 31edac0e700e0e3ebc3430fc5ec2a91f46268577..dde9bd067d13e9b8c80c559d3fbe433c00fbb987 100644 GIT binary patch delta 3254 zcmeHJ-%C_M6n1oV+f`D6@}YFcqI&6GXYS10dq>2gkRZcSgTn1nFH1sTVGlt+NQlaX z#geo7mTLvV>PxZ@Mfszben2nLKTz}}S@hmh=iYV6-6HI9VPA$hANTv_%=zw_nOAc) ztm5(iRy!GFTPlZQsD@%fD5)HUtKg<6)2ySAUIvz}TpNMWM;=1wL!)6B8( zvwXQ+Q!pVU)&uT~_ZBy$#M0rm6NX^Hb~v*v!3qp47Ur}8gOt2OC=Ba8IDR;~y^*2= z$`L3Vm;!@p?{43f4VYh+&i2bAiLUfe*h>#}ovGMaMs_xq*a=_tjZivNRR!Z?2Vkn> zRHZM=qc69W7>Rue3vD~#M_0JwXBnQefA=#6V@J-02K@f)<(1wnlRLBZ&)zItmK7_@ z>-kf9U*@hJU+M_UPX7TEg$K!f&`z65;s|8#jgTR{QTyR(TQeTXb=9dtNP#3hvfrmh z_4;3t3PPfD&y%weqTn2y#_<`f;+Q|v>tHc`DTrdwGnv8J+T<~!a`x16m~d#!o`BVd z4LIwY{)S_LG?=*(L^1fDd4jWvnO?$kpJ%>=Nk7E0Jx#?=xl{nc#q2e57naj5w9e^* zR&{D46oc@*N4jBjR>HyQTFAU?h!i$cgyw$E@7nsW#a3QyVzKz*<`(N+5?iVrzaD+{ qS_@%2k}-@wyBUn)@|#XAuc4DljXElD6q>VH1`l2tpDPT+|Q= z&gzqBA4KT((6SIjT0*EBJ=sgo^%T_qP-k{VYgehq?O|WeJ@+^F{O&pT%(>@IWb2mZ z>jL-dCq*uBk|-A;C!B*)7t}UvZW{@WSWZZdYeE;6;er(25se6)GGZ~C$%JMQmFYrS zk`fcAMFUlhmtxRLTbiiOZ7FPnFn1XYor?&BB;^K@7m2tonPFOt6<0Wp6AIz(@%U!T zEB~-WJ2VtJV}c7yaG%~Fk`v3efBVVxKQZ`ndT>9rm}H!y4Ka(+OI=cF;ekk)WgjWk zsU;{fnF-CLsz!8XQ)b!%y=D|G@W4tjnC59kg9-ZxO7(1{8NX8tW98i4ML?f8dRQ&R z-00g+^xsZ&WRgKAlkDiNW~Xx5X)enSgktvs!-1L_=$JnauVR<0Ra23w*JPhVbZ~yzyXkyJEs?xQa5I`G(Ttzf;tr@N9Cn!StCxnd(x^ z{KKiYL50KG@&%ZgX+$kM^8=-8XRM}tEY})^GmoAko+@;DSU&dnYY>K)JK@G$25zfXT$k1@;`1TZJlty#GQK zVA6B*L19)+CNqo42@W#Mrl#hT>mBr%EX^j1+ZtdIongC+&CEhU!8K;`dwWS_^@1%j zlMmQ=;FJ{uT3&_4L~93SOwrBj9VQ7fwocA&ke?h7UF>FQXlib1YG7(=!leKO6;=w- zx`uithQ_J728Id>hI*D}7GS2Ho}Pk&iJp;}8AQfN&(aVqGx=PYjIWuVfw?76!dOAq zT+htV0L%nyG1fCS2WbJynCclBfwUOMLhQ>+OD(ffFf=xV+MkyN=37h_3-#d0V2_=W zVHYtZT)UZZ-(>w3S5TmOlN6}cF*zyuCB?P4LpBI&$RhNS6TCLz5kt+vfxvXmIXN*h zjHQT?fnoB)Ix#Az;9#ubOl}J1QpiXxE}qO6X);+anq#QBdGp$sJxcW!CguhvmIfv! z24<$H<%6-FxdF5ku+TFxHV0;DBL#3!nF5OoP%!{3IgIoyER8@+Xl7T)%PawAc9>CF ziOImC23Vk&7#f0#1O;6SJz#MJWSW4D(iJe%Gd2d57AD|Q$k=#teXHi=Esai-lN)9Z zO2=*9(wN3bs>={LnL1%71vgL^O8}NkJ|M_8S+`~9Aa>^F`ql)JgONU|Z+iO)QUi`I L4%;l=nZpABS&tCi delta 2225 zcmeynim7=u6H5c@)QXKPr}!C-CZFeT1(N}jmkR6zvf>5zfXT$k1@;`1TZJlty#GQK zVA6B*L19)+CUe8d2@W#MCMFh>>mBr%%#9|C+ZtdIongC+&D>By!8K;`dwWS_^>&eB zlMe{8Pd;epj#GvFb&^6ODGKO%0OalWmpp4Pv)gdyz z#(I_(APHjyT?;)U6H71?ti@Q**aE@@nrm(dGS@g3VqacbYMGUSp`n=tl%ECWn@tu8 z^_U#nz&?cByP0wSKPiFgZaQ>!pPKc^4ez2$?F=OfaSol)J-Np%?_(^4nw uq!0$82jJ$l&BlY-eZUAV0cYrMt&d3!MtY?_w#n1m4-Hz!Z5HoL;{gC{SreWB diff --git a/.doctrees/tutorials/05-entanglement-forging.doctree b/.doctrees/tutorials/05-entanglement-forging.doctree index b41ea3e4ee709b8744bd02d8adbda2b8bd4489cf..a77e6ebf973e11c4c1de3dee57ac225a16622f1d 100644 GIT binary patch delta 192 zcmbPJKCPUkfpu#4MwUc*M(fF|<&6c6xNP(bic;;SWU$9h$*}7Ii!vHbejs1Wm_PZf zLL`vAUO^U#EjHOsF`iLx@)k@)Zr-lXj3gaDS>A9uLOOo4v{54`0D)~hIsgCw delta 220 zcmbPMKBt_efpzM{jVy`s>^3$9MX7dNlP@ajN*G#j+316~Q!?0Nr)1dmAW1SAT1>tt zU(8rAIZ#(;a-D)MNT5JZhN%ZdWP`r^WM{=NMtzWh+=dn~lfZnSmd*bavpCrdj0_A7 yO(qNKB}_iAy$qGhzWI@kCL>gAv!I?8oE@m23}XYe#!r?soQ}{Mzgg6%krM#;ML~%G diff --git a/.doctrees/tutorials/06-fermion-operator.doctree b/.doctrees/tutorials/06-fermion-operator.doctree index c946b96dbb151258bcf83038f9701c2a36e82e6f..22799fab217906a33e0269b938a1d428fa737d2d 100644 GIT binary patch delta 2043 zcmb`^T}YEr7zc1&>gK-MX1u=6edybAqI11__dRC>;WnMF~$aXW|t8;js^ZYsI{64J;?ym~U zE|=fBw^(+OLT!g;U$bQhFC$vCsb%Qm4hT3qK2o+qt#j2+pb6==r%uo<817V+x3Fe1 zG)tc?&>5+@TPQBAHWp~*^6D!U*fdzNVsPWdK_TW0br3SGyK1kQXS-^wA^o448l%}t z96xknSFf+3;on+LW&AF}d#)FQTnDuNTFhGZla_ux`a6DWZ>(R;tmY5u;j|F>b_u~VV69z8Kq-Pr;jK@JDW3w5EfVzm1H5G= zI@Za@)6fO|xE8FR?ry|_OAB{MwPPuVG^8M&46&?&Hc^Gsopr>q8mV9t*r1XaN--F! z-FCEhZ8`D~_mH<2F87qr#N7dK|kdD7psN>OP^iFY)UIwFo|GV!s- zQ&^m+Mt!ypcP3~sS$#EYwy+MT)y6uSSu@$$Ij4&oGW~sqoTcEMQ1Y54M)GP#;4MWs kX`Y@D7JaYYEWL%pOVW5{_QziTY5hj!-cxd4Zf>f611sXvKL7v# delta 2237 zcmcJQT}YE*6vx#zH{I8}nft0`_&s&&otyJ@&IZw5mvhU6s8Hv={FnubR3fE#6Ka@< ze?mgai@GVyjNMf>L8xv@A|kNDy67g3Q1jy308#LHY!14xmpnJj{@4h!`%_!tTXMh1JG7H=#pqKux@4uWEIal{y?$Rav9)|oOG z>jijb^>O64$n8}<9NI*CTbc;XX*kc|i<#=1v`Bzinp^gqGRKnVdO zf-)?_mrwy_LVCpNB^Y$8;0Rl=5Il}YVI#hKCWh{x1 zu3*aPimtMq#H3LL^N4&e?Q2J`ra4p55HbolAARk5&K`QJ6aUxgv1ajE9$7!<)6d?> M*c<2Q{P-`$A0#po%m4rY diff --git a/_modules/ffsim/contract/one_body.html b/_modules/ffsim/contract/one_body.html index f3af91cb0..a712058f0 100644 --- a/_modules/ffsim/contract/one_body.html +++ b/_modules/ffsim/contract/one_body.html @@ -57,6 +57,8 @@

Source code for ffsim.contract.one_body

 from ffsim.states import dim
 
 
+
+[docs] def contract_one_body( vec: np.ndarray, mat: np.ndarray, @@ -66,6 +68,30 @@

Source code for ffsim.contract.one_body

     linkstr_index_a: np.ndarray,
     linkstr_index_b: np.ndarray,
 ) -> np.ndarray:
+    r"""Contract a one-body tensor with a vector.
+
+    A one-body tensor has the form
+
+    .. math::
+
+        \sum_{ij} M_{ij} a^\dagger_i a_j
+
+    where :math:`M` is a complex-valued matrix.
+
+    Args:
+        mat: The one-body tensor.
+        norb: The number of spatial orbitals.
+        nelec: The number of alpha and beta electrons.
+        linkstr_index_a: String index lookup-table for spin alpha, as generated by the
+            function `pyscf.fci.cistring.gen_linkstr_index`_.
+        linkstr_index_b: String index lookup-table for spin beta, as generated by the
+            function `pyscf.fci.cistring.gen_linkstr_index`_.
+
+    Returns:
+        A LinearOperator that implements the action of the one-body tensor.
+
+    .. _pyscf.fci.cistring.gen_linkstr_index: https://pyscf.org/pyscf_api_docs/pyscf.fci.html#pyscf.fci.cistring.gen_linkstr_index
+    """
     link_index = (linkstr_index_a, linkstr_index_b)
     result = contract_1e(mat.real, vec.real, norb, nelec, link_index=link_index).astype(
         complex
@@ -73,7 +99,8 @@ 

Source code for ffsim.contract.one_body

     result += 1j * contract_1e(mat.imag, vec.real, norb, nelec, link_index=link_index)
     result += 1j * contract_1e(mat.real, vec.imag, norb, nelec, link_index=link_index)
     result -= contract_1e(mat.imag, vec.imag, norb, nelec, link_index=link_index)
-    return result
+    return result
+
@@ -87,7 +114,7 @@

Source code for ffsim.contract.one_body

 
     .. math::
 
-        \sum_{ij} M_{ij} a^\dagger{i} a_j
+        \sum_{ij} M_{ij} a^\dagger_i a_j
 
     where :math:`M` is a complex-valued matrix.
 
diff --git a/api/ffsim.contract.html b/api/ffsim.contract.html
index d8d630d82..597d9260c 100644
--- a/api/ffsim.contract.html
+++ b/api/ffsim.contract.html
@@ -105,6 +105,35 @@
 
 
 
+
+
+ffsim.contract.contract_one_body(vec, mat, norb, nelec, *, linkstr_index_a, linkstr_index_b)[source]
+

Contract a one-body tensor with a vector.

+

A one-body tensor has the form

+
+\[\sum_{ij} M_{ij} a^\dagger_i a_j\]
+

where \(M\) is a complex-valued matrix.

+
+
Parameters:
+
    +
  • mat (ndarray) – The one-body tensor.

  • +
  • norb (int) – The number of spatial orbitals.

  • +
  • nelec (tuple[int, int]) – The number of alpha and beta electrons.

  • +
  • linkstr_index_a (ndarray) – String index lookup-table for spin alpha, as generated by the +function pyscf.fci.cistring.gen_linkstr_index.

  • +
  • linkstr_index_b (ndarray) – String index lookup-table for spin beta, as generated by the +function pyscf.fci.cistring.gen_linkstr_index.

  • +
+
+
Return type:
+

ndarray

+
+
Returns:
+

A LinearOperator that implements the action of the one-body tensor.

+
+
+
+
ffsim.contract.diag_coulomb_linop(mat, norb, nelec, *, orbital_rotation=None, mat_alpha_beta=None, z_representation=False)[source]
@@ -177,7 +206,7 @@

Convert a one-body tensor to a linear operator.

A one-body tensor has the form

-\[\sum_{ij} M_{ij} a^\dagger{i} a_j\]
+\[\sum_{ij} M_{ij} a^\dagger_i a_j\]

where \(M\) is a complex-valued matrix.

Parameters:
@@ -228,6 +257,7 @@

Navigation

  • ffsim.contract
  • FermionOperator({
    -    (cre_b(1), des_b(5), cre_a(4)): 1+1j,
         (cre_a(3), des_a(0)): -0.25,
    +    (cre_b(1), des_b(5), cre_a(4)): 1+1j,
         (cre_a(0), des_a(3)): 0.5
     })
     
    @@ -335,8 +335,8 @@
    FermionOperator({
         (cre_a(3), des_a(0)): -0.5,
    -    (cre_b(1), des_b(5), cre_a(4)): 2+2j,
    -    (cre_a(0), des_a(3)): 1
    +    (cre_a(0), des_a(3)): 1,
    +    (cre_b(1), des_b(5), cre_a(4)): 2+2j
     })
     
    @@ -356,11 +356,11 @@
    FermionOperator({
    -    (cre_b(2)): 0+1j,
    -    (cre_a(3), des_a(0)): -0.25,
         (cre_b(1), des_b(5), cre_a(4)): 1+1j,
         (cre_a(0), des_a(3)): 0.5,
    -    (des_a(3), des_b(3)): -0.25
    +    (des_a(3), des_b(3)): -0.25,
    +    (cre_b(2)): 0+1j,
    +    (cre_a(3), des_a(0)): -0.25
     })
     
    @@ -374,12 +374,12 @@
    FermionOperator({
    -    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,
    -    (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,
         (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,
    -    (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,
    +    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,
         (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,
    -    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625
    +    (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,
    +    (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,
    +    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j
     })
     
    diff --git a/genindex.html b/genindex.html index 95045a7e6..cf8b97387 100644 --- a/genindex.html +++ b/genindex.html @@ -111,6 +111,8 @@

    C

    • contract_num_op_sum() (in module ffsim.contract) +
    • +
    • contract_one_body() (in module ffsim.contract)
    • core_energy (ffsim.MolecularData attribute)
    • diff --git a/index.html b/index.html index 703972c38..c7c90da99 100644 --- a/index.html +++ b/index.html @@ -108,6 +108,7 @@

      API Referenceffsim.contract
      • contract_diag_coulomb()
      • contract_num_op_sum()
      • +
      • contract_one_body()
      • diag_coulomb_linop()
      • num_op_sum_linop()
      • one_body_linop()
      • diff --git a/objects.inv b/objects.inv index 6de1a35efbb101d98f6581b61f471c0cc8187407..d23f23a2a4ef41819340b697e9b9cd58657aec2f 100644 GIT binary patch delta 2722 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 delta 2706 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 Mk#LXue{P0$bcoDouble-factorized representation of the molecular Hamiltonian

    @@ -293,7 +293,7 @@

    Implementing Trotter simulation of the double-factorized Hamiltonian
    -Hartree Fock energy: -0.8377963825937084
    +Hartree Fock energy: -0.837796382593709
     

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

    @@ -321,7 +321,7 @@

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

    Now, let’s test our implementation.

    @@ -348,7 +348,7 @@

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

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

    @@ -375,7 +375,7 @@

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

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

    @@ -404,7 +404,7 @@

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

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

    @@ -432,7 +432,7 @@

    Implementing Trotter simulation of the double-factorized Hamiltonian
    -Fidelity of Trotter-evolved state with exact state: 0.9999999336740067
    +Fidelity of Trotter-evolved state with exact state: 0.9999999336740071
     
    diff --git a/tutorials/03-double-factorized.ipynb b/tutorials/03-double-factorized.ipynb index c061160c4..867e841ed 100644 --- a/tutorials/03-double-factorized.ipynb +++ b/tutorials/03-double-factorized.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:01.960181Z", - "iopub.status.busy": "2023-10-27T03:05:01.959717Z", - "iopub.status.idle": "2023-10-27T03:05:02.404039Z", - "shell.execute_reply": "2023-10-27T03:05:02.403342Z" + "iopub.execute_input": "2023-10-27T15:56:21.878889Z", + "iopub.status.busy": "2023-10-27T15:56:21.878510Z", + "iopub.status.idle": "2023-10-27T15:56:22.327582Z", + "shell.execute_reply": "2023-10-27T15:56:22.326818Z" } }, "outputs": [ @@ -92,10 +92,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.408011Z", - "iopub.status.busy": "2023-10-27T03:05:02.407295Z", - "iopub.status.idle": "2023-10-27T03:05:02.417935Z", - "shell.execute_reply": "2023-10-27T03:05:02.417313Z" + "iopub.execute_input": "2023-10-27T15:56:22.331466Z", + "iopub.status.busy": "2023-10-27T15:56:22.330818Z", + "iopub.status.idle": "2023-10-27T15:56:22.339396Z", + "shell.execute_reply": "2023-10-27T15:56:22.337615Z" } }, "outputs": [ @@ -106,28 +106,28 @@ "Original representation\n", "-----------------------\n", "One-body tensor:\n", - "[[-8.27478830e-01 -8.52909490e-17]\n", - " [-5.57029092e-17 -6.77238770e-01]]\n", + "[[-8.27478830e-01 -1.09243819e-16]\n", + " [-7.48351655e-17 -6.77238770e-01]]\n", "\n", "Two-body tensor:\n", - "[[[[5.23173938e-01 3.58782168e-17]\n", - " [3.58782168e-17 5.33545754e-01]]\n", + "[[[[ 5.23173938e-01 -5.00678144e-19]\n", + " [-5.00678144e-19 5.33545754e-01]]\n", "\n", - " [[2.49859013e-17 2.48240570e-01]\n", - " [2.48240570e-01 4.83067333e-17]]]\n", + " [[ 5.85364508e-18 2.48240570e-01]\n", + " [ 2.48240570e-01 -1.17688164e-17]]]\n", "\n", "\n", - " [[[2.49859013e-17 2.48240570e-01]\n", - " [2.48240570e-01 4.83067333e-17]]\n", + " [[[ 5.85364508e-18 2.48240570e-01]\n", + " [ 2.48240570e-01 -1.17688164e-17]]\n", "\n", - " [[5.33545754e-01 4.01841799e-17]\n", - " [4.01841799e-17 5.53132024e-01]]]]\n", + " [[ 5.33545754e-01 1.05429868e-17]\n", + " [ 1.05429868e-17 5.53132024e-01]]]]\n", "\n", "Double-factorized representation\n", "--------------------------------\n", "One-body tensor:\n", - "[[-1.21318608e+00 -1.27383424e-16]\n", - " [-8.82879498e-17 -1.07792507e+00]]\n", + "[[-1.21318608e+00 -1.03109072e-16]\n", + " [-8.30334814e-17 -1.07792507e+00]]\n", "\n", "Diagonal Coulomb matrices:\n", "[[[ 5.14653029e-01 5.33545754e-01]\n", @@ -136,18 +136,18 @@ " [[ 2.48240570e-01 -2.48240570e-01]\n", " [-2.48240570e-01 2.48240570e-01]]\n", "\n", - " [[ 2.27521846e-62 -1.39236953e-32]\n", - " [-1.39236953e-32 8.52090881e-03]]]\n", + " [[ 1.44655364e-30 -1.11022302e-16]\n", + " [-1.11022302e-16 8.52090881e-03]]]\n", "\n", "Orbital rotations:\n", "[[[ 1.00000000e+00 0.00000000e+00]\n", " [ 0.00000000e+00 1.00000000e+00]]\n", "\n", - " [[-7.07106781e-01 -7.07106781e-01]\n", - " [ 7.07106781e-01 -7.07106781e-01]]\n", + " [[-7.07106781e-01 7.07106781e-01]\n", + " [ 7.07106781e-01 7.07106781e-01]]\n", "\n", - " [[-1.27830444e-15 -1.00000000e+00]\n", - " [-1.00000000e+00 1.27830444e-15]]]\n" + " [[ 7.45733039e-16 -1.00000000e+00]\n", + " [-1.00000000e+00 -7.45733039e-16]]]\n" ] } ], @@ -226,10 +226,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.423483Z", - "iopub.status.busy": "2023-10-27T03:05:02.421763Z", - "iopub.status.idle": "2023-10-27T03:05:02.431334Z", - "shell.execute_reply": "2023-10-27T03:05:02.430699Z" + "iopub.execute_input": "2023-10-27T15:56:22.342700Z", + "iopub.status.busy": "2023-10-27T15:56:22.342346Z", + "iopub.status.idle": "2023-10-27T15:56:22.349281Z", + "shell.execute_reply": "2023-10-27T15:56:22.348539Z" } }, "outputs": [], @@ -284,10 +284,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.434936Z", - "iopub.status.busy": "2023-10-27T03:05:02.434685Z", - "iopub.status.idle": "2023-10-27T03:05:02.439093Z", - "shell.execute_reply": "2023-10-27T03:05:02.438396Z" + "iopub.execute_input": "2023-10-27T15:56:22.352710Z", + "iopub.status.busy": "2023-10-27T15:56:22.352274Z", + "iopub.status.idle": "2023-10-27T15:56:22.357049Z", + "shell.execute_reply": "2023-10-27T15:56:22.356275Z" } }, "outputs": [], @@ -324,10 +324,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.559009Z", - "iopub.status.busy": "2023-10-27T03:05:02.558102Z", - "iopub.status.idle": "2023-10-27T03:05:02.564371Z", - "shell.execute_reply": "2023-10-27T03:05:02.563761Z" + "iopub.execute_input": "2023-10-27T15:56:22.360182Z", + "iopub.status.busy": "2023-10-27T15:56:22.359836Z", + "iopub.status.idle": "2023-10-27T15:56:22.367959Z", + "shell.execute_reply": "2023-10-27T15:56:22.367238Z" } }, "outputs": [ @@ -335,7 +335,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Hartree Fock energy: -0.8377963825937084\n" + "Hartree Fock energy: -0.837796382593709\n" ] } ], @@ -363,10 +363,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.567736Z", - "iopub.status.busy": "2023-10-27T03:05:02.567083Z", - "iopub.status.idle": "2023-10-27T03:05:02.584110Z", - "shell.execute_reply": "2023-10-27T03:05:02.583071Z" + "iopub.execute_input": "2023-10-27T15:56:22.371087Z", + "iopub.status.busy": "2023-10-27T15:56:22.370799Z", + "iopub.status.idle": "2023-10-27T15:56:22.382769Z", + "shell.execute_reply": "2023-10-27T15:56:22.382019Z" } }, "outputs": [ @@ -374,7 +374,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of evolved state w.r.t. initial state: 0.9696296369955066\n" + "Fidelity of evolved state w.r.t. initial state: 0.9696296369955065\n" ] } ], @@ -405,10 +405,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.587264Z", - "iopub.status.busy": "2023-10-27T03:05:02.586808Z", - "iopub.status.idle": "2023-10-27T03:05:02.600814Z", - "shell.execute_reply": "2023-10-27T03:05:02.599564Z" + "iopub.execute_input": "2023-10-27T15:56:22.386352Z", + "iopub.status.busy": "2023-10-27T15:56:22.385780Z", + "iopub.status.idle": "2023-10-27T15:56:22.395074Z", + "shell.execute_reply": "2023-10-27T15:56:22.394453Z" } }, "outputs": [ @@ -416,7 +416,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9990275744083494\n" + "Fidelity of Trotter-evolved state with exact state: 0.9990275744083491\n" ] } ], @@ -446,10 +446,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.604427Z", - "iopub.status.busy": "2023-10-27T03:05:02.603969Z", - "iopub.status.idle": "2023-10-27T03:05:02.648867Z", - "shell.execute_reply": "2023-10-27T03:05:02.648260Z" + "iopub.execute_input": "2023-10-27T15:56:22.398534Z", + "iopub.status.busy": "2023-10-27T15:56:22.397827Z", + "iopub.status.idle": "2023-10-27T15:56:22.448640Z", + "shell.execute_reply": "2023-10-27T15:56:22.447932Z" } }, "outputs": [ @@ -457,7 +457,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999906233109686\n" + "Fidelity of Trotter-evolved state with exact state: 0.999990623310968\n" ] } ], @@ -489,10 +489,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.654063Z", - "iopub.status.busy": "2023-10-27T03:05:02.652939Z", - "iopub.status.idle": "2023-10-27T03:05:02.679846Z", - "shell.execute_reply": "2023-10-27T03:05:02.679254Z" + "iopub.execute_input": "2023-10-27T15:56:22.451778Z", + "iopub.status.busy": "2023-10-27T15:56:22.451358Z", + "iopub.status.idle": "2023-10-27T15:56:22.492907Z", + "shell.execute_reply": "2023-10-27T15:56:22.491767Z" } }, "outputs": [ @@ -500,7 +500,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999906233109686\n" + "Fidelity of Trotter-evolved state with exact state: 0.999990623310968\n" ] } ], @@ -531,10 +531,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:02.684588Z", - "iopub.status.busy": "2023-10-27T03:05:02.683495Z", - "iopub.status.idle": "2023-10-27T03:05:02.697257Z", - "shell.execute_reply": "2023-10-27T03:05:02.696649Z" + "iopub.execute_input": "2023-10-27T15:56:22.495880Z", + "iopub.status.busy": "2023-10-27T15:56:22.495597Z", + "iopub.status.idle": "2023-10-27T15:56:22.514396Z", + "shell.execute_reply": "2023-10-27T15:56:22.513618Z" } }, "outputs": [ @@ -542,7 +542,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999999336740067\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999999336740071\n" ] } ], diff --git a/tutorials/04-lucj.html b/tutorials/04-lucj.html index 63957239b..3bb5504c9 100644 --- a/tutorials/04-lucj.html +++ b/tutorials/04-lucj.html @@ -95,7 +95,7 @@

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

    The unitary cluster Jastrow (UCJ) ansatz
    -E(CCSD) = -77.49387212754471  E_corr = -0.04824536314851448
    -Energy at initialialization: -77.46975600021672
    +E(CCSD) = -77.49387212754468  E_corr = -0.04824536314851557
    +Energy at initialialization: -77.46975600021696
     

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

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

    The unitary cluster Jastrow (UCJ) ansatz\n" ] } @@ -246,10 +246,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:10.598208Z", - "iopub.status.busy": "2023-10-27T03:05:10.597724Z", - "iopub.status.idle": "2023-10-27T03:05:14.139838Z", - "shell.execute_reply": "2023-10-27T03:05:14.139253Z" + "iopub.execute_input": "2023-10-27T15:56:31.320238Z", + "iopub.status.busy": "2023-10-27T15:56:31.319937Z", + "iopub.status.idle": "2023-10-27T15:56:35.282027Z", + "shell.execute_reply": "2023-10-27T15:56:35.281277Z" } }, "outputs": [ @@ -261,10 +261,10 @@ " message: STOP: TOTAL NO. of f AND g EVALUATIONS EXCEEDS LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.45946564739053\n", - " x: [-3.765e-01 8.190e-02 ... -5.784e-01 1.644e-01]\n", - " nit: 16\n", - " jac: [-1.646e-03 9.805e-05 ... -1.137e-05 -1.251e-04]\n", + " fun: -77.45847049044065\n", + " x: [-3.706e-01 8.437e-02 ... 5.969e-01 2.892e-01]\n", + " nit: 15\n", + " jac: [ 4.411e-03 -8.157e-04 ... -6.338e-04 1.933e-04]\n", " nfev: 1034\n", " njev: 22\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" diff --git a/tutorials/05-entanglement-forging.html b/tutorials/05-entanglement-forging.html index d4ec0b314..9ddad9112 100644 --- a/tutorials/05-entanglement-forging.html +++ b/tutorials/05-entanglement-forging.html @@ -139,7 +139,7 @@

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

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

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

    @@ -127,16 +127,16 @@

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

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

    The FermionOperator class

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

    diff --git a/tutorials/06-fermion-operator.ipynb b/tutorials/06-fermion-operator.ipynb index 737161603..17d56189a 100644 --- a/tutorials/06-fermion-operator.ipynb +++ b/tutorials/06-fermion-operator.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:20.826794Z", - "iopub.status.busy": "2023-10-27T03:05:20.826354Z", - "iopub.status.idle": "2023-10-27T03:05:21.191528Z", - "shell.execute_reply": "2023-10-27T03:05:21.190910Z" + "iopub.execute_input": "2023-10-27T15:56:41.814382Z", + "iopub.status.busy": "2023-10-27T15:56:41.813941Z", + "iopub.status.idle": "2023-10-27T15:56:42.177500Z", + "shell.execute_reply": "2023-10-27T15:56:42.176750Z" } }, "outputs": [ @@ -40,9 +40,9 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0)): -0.25,\n", + " (cre_b(1), des_b(5), cre_a(4)): 1+1j,\n", " (cre_a(0), des_a(3)): 0.5,\n", - " (cre_b(1), des_b(5), cre_a(4)): 1+1j\n", + " (cre_a(3), des_a(0)): -0.25\n", "})" ] }, @@ -76,17 +76,17 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.196565Z", - "iopub.status.busy": "2023-10-27T03:05:21.195229Z", - "iopub.status.idle": "2023-10-27T03:05:21.202666Z", - "shell.execute_reply": "2023-10-27T03:05:21.202084Z" + "iopub.execute_input": "2023-10-27T15:56:42.180809Z", + "iopub.status.busy": "2023-10-27T15:56:42.180437Z", + "iopub.status.idle": "2023-10-27T15:56:42.185404Z", + "shell.execute_reply": "2023-10-27T15:56:42.184750Z" } }, "outputs": [ { "data": { "text/plain": [ - "'FermionOperator({((True, False, 3), (False, False, 0)): -0.25+0j, ((True, False, 0), (False, False, 3)): 0.5+0j, ((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j})'" + "'FermionOperator({((True, True, 1), (False, True, 5), (True, False, 4)): 1+1j, ((True, False, 0), (False, False, 3)): 0.5+0j, ((True, False, 3), (False, False, 0)): -0.25+0j})'" ] }, "execution_count": 2, @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.208130Z", - "iopub.status.busy": "2023-10-27T03:05:21.206968Z", - "iopub.status.idle": "2023-10-27T03:05:21.215617Z", - "shell.execute_reply": "2023-10-27T03:05:21.214933Z" + "iopub.execute_input": "2023-10-27T15:56:42.188816Z", + "iopub.status.busy": "2023-10-27T15:56:42.188104Z", + "iopub.status.idle": "2023-10-27T15:56:42.193682Z", + "shell.execute_reply": "2023-10-27T15:56:42.192973Z" } }, "outputs": [ @@ -121,16 +121,16 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", - " (cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0)): -0.5,\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)): 1,\n", " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", - " (des_a(3), des_b(3)): 0.0625,\n", - " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", + " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", + " (cre_a(3), des_a(0)): -0.5,\n", + " (cre_a(0), des_a(3)): 1,\n", + " (cre_b(2)): 0-0.25j,\n", + " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", + " (des_a(3), des_b(3)): 0.0625,\n", " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j\n", "})" ] @@ -169,10 +169,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.223002Z", - "iopub.status.busy": "2023-10-27T03:05:21.219475Z", - "iopub.status.idle": "2023-10-27T03:05:21.229733Z", - "shell.execute_reply": "2023-10-27T03:05:21.229048Z" + "iopub.execute_input": "2023-10-27T15:56:42.196824Z", + "iopub.status.busy": "2023-10-27T15:56:42.196346Z", + "iopub.status.idle": "2023-10-27T15:56:42.201953Z", + "shell.execute_reply": "2023-10-27T15:56:42.201326Z" } }, "outputs": [ @@ -180,16 +180,16 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_a(0), cre_b(2)): -1,\n", - " (cre_b(2)): -5,\n", - " (cre_a(3), des_a(0)): 0+3j,\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)): 0-6j,\n", " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", - " (des_a(3), des_b(3)): 0-1.25j,\n", - " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", + " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", + " (cre_a(3), des_a(0)): 0+3j,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_b(2)): -5,\n", + " (cre_a(3), des_a(0), cre_b(2)): -1,\n", + " (des_a(3), des_b(3)): 0-1.25j,\n", " (cre_a(0), des_a(3), cre_b(2)): 2\n", "})" ] @@ -219,10 +219,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.234131Z", - "iopub.status.busy": "2023-10-27T03:05:21.233065Z", - "iopub.status.idle": "2023-10-27T03:05:21.240141Z", - "shell.execute_reply": "2023-10-27T03:05:21.239585Z" + "iopub.execute_input": "2023-10-27T15:56:42.205470Z", + "iopub.status.busy": "2023-10-27T15:56:42.205033Z", + "iopub.status.idle": "2023-10-27T15:56:42.211108Z", + "shell.execute_reply": "2023-10-27T15:56:42.210442Z" } }, "outputs": [ @@ -230,14 +230,14 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (des_b(3), des_a(3)): 0+1.25j,\n", - " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", " (cre_b(2), cre_a(3), des_a(0)): -1,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", + " (cre_b(2)): -5,\n", + " (des_b(3), des_a(3)): 0+1.25j,\n", " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,\n", - " (cre_b(2), cre_a(0), des_a(3)): 2,\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(0), des_a(3)): 2,\n", " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", " (cre_a(3), des_a(0)): 0+3j\n", "})" @@ -264,10 +264,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.244450Z", - "iopub.status.busy": "2023-10-27T03:05:21.243285Z", - "iopub.status.idle": "2023-10-27T03:05:21.250663Z", - "shell.execute_reply": "2023-10-27T03:05:21.250096Z" + "iopub.execute_input": "2023-10-27T15:56:42.214641Z", + "iopub.status.busy": "2023-10-27T15:56:42.214210Z", + "iopub.status.idle": "2023-10-27T15:56:42.220562Z", + "shell.execute_reply": "2023-10-27T15:56:42.219879Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.254249Z", - "iopub.status.busy": "2023-10-27T03:05:21.253812Z", - "iopub.status.idle": "2023-10-27T03:05:21.262971Z", - "shell.execute_reply": "2023-10-27T03:05:21.262375Z" + "iopub.execute_input": "2023-10-27T15:56:42.224072Z", + "iopub.status.busy": "2023-10-27T15:56:42.223577Z", + "iopub.status.idle": "2023-10-27T15:56:42.229192Z", + "shell.execute_reply": "2023-10-27T15:56:42.228560Z" } }, "outputs": [ @@ -340,21 +340,21 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.267860Z", - "iopub.status.busy": "2023-10-27T03:05:21.266431Z", - "iopub.status.idle": "2023-10-27T03:05:21.275640Z", - "shell.execute_reply": "2023-10-27T03:05:21.275026Z" + "iopub.execute_input": "2023-10-27T15:56:42.234118Z", + "iopub.status.busy": "2023-10-27T15:56:42.233634Z", + "iopub.status.idle": "2023-10-27T15:56:42.242733Z", + "shell.execute_reply": "2023-10-27T15:56:42.242056Z" } }, "outputs": [ { "data": { "text/plain": [ - "array([ 0. +0.j , 0. +0.j ,\n", - " 0. +0.j , 0. +0.j ,\n", - " -0.04860684-0.04058205j, 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.10673406+0.06752782j, 0. +0.j ,\n", + " 0. +0.j , 0. +0.j ,\n", + " 0. +0.j ])" ] }, "execution_count": 8, @@ -379,10 +379,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2023-10-27T03:05:21.280309Z", - "iopub.status.busy": "2023-10-27T03:05:21.279234Z", - "iopub.status.idle": "2023-10-27T03:05:21.295396Z", - "shell.execute_reply": "2023-10-27T03:05:21.294821Z" + "iopub.execute_input": "2023-10-27T15:56:42.246326Z", + "iopub.status.busy": "2023-10-27T15:56:42.245873Z", + "iopub.status.idle": "2023-10-27T15:56:42.261857Z", + "shell.execute_reply": "2023-10-27T15:56:42.261249Z" } }, "outputs": [