The purpose of this notebook is to show how to use entanglish to calculate the formation entanglement of a mixed state (either pure or not pure).
A closed exact formula is known, thanks to Wootters, for the entang of formation of an arbitrary mixture of 2 qubits. Class TwoQubitState of entanglish contains an implementation of said formula. In this notebook, we calculate formation entanglement for some 2 qubit states using our Arimoto-Blahut inspired algorithm and compare the results to Wootters formula.
We've been calculating squashed entanglement from the formula
$$ E_{\rvx, \rvy}(\rho_{\rvx, \rvy})= \frac{1}{2} {\rm min}\sum_\alp w^\alp [ S(\rho^\alp_{\rvx}) +S(\rho^\alp_{\rvy}) -S(\rho^\alp_{\rvx, \rvy})] $$where the minimum is over all families of density matrices $\{\rho^\alp_{\rvx, \rvy}|\forall \alp\}$ such that $\sum_\alp \rho^\alp_{\rvx, \rvy}= \rho_{\rvx, \rvy}$. If we just add the further constraint that the states $\rho^\alp_{\rvx, \rvy}$ are pure states, then $S(\rho^\alp_{\rvx, \rvy})=0$, $S(\rho^\alp_{\rvx})=S(\rho^\alp_{\rvy})$, and we get precisely the definition of Entanglement of Formation for a pure or mixed state.
See Entanglish-Original-Ref for a detailed explanation of the algos used in this class.
Entanglish-Original-Ref
Squashed Entanglement and a Python Implementation Thereof", by R.R.Tucci
First change your working directory to the entanglish directory in your computer, and add its path to the path environment variable.
import os
import sys
print(os.getcwd())
os.chdir('../../')
print(os.getcwd())
sys.path.insert(0,os.getcwd())
from entanglish.SymNupState import *
from entanglish.TwoQubitState import *
from entanglish.FormationEnt import *
np.random.seed(123)
dm = DenMat(8, (2, 2, 2))
evas_of_dm_list = [
np.array([.07, .03, .25, .15, .3, .1, .06, .04])
, np.array([.05, .05, .2, .2, .3, .1, .06, .04])
]
recursion_init = "eigen+"
num_ab_steps = 100
print("recursion_init=", recursion_init)
print('num_ab_steps=', num_ab_steps)
for evas_of_dm in evas_of_dm_list:
evas_of_dm /= np.sum(evas_of_dm)
print('***************new dm')
print('evas_of_dm\n', evas_of_dm)
dm.set_arr_to_rand_den_mat(evas_of_dm)
ecase = FormationEnt(dm, num_ab_steps,
recursion_init=recursion_init, verbose=True)
print('ent_02_1=', ecase.get_entang({0, 2}))
recursion_init= eigen+ num_ab_steps= 100 ***************new dm evas_of_dm [0.07 0.03 0.25 0.15 0.3 0.1 0.06 0.04] initial norm of Dxy - sum_alp Kxy_alp, should be 0 4.880055036277153e-16 --ab step= 0 , entang= 0.446881 , err= 3.657084 --ab step= 1 , entang= 0.183057 , err= 1.999145 --ab step= 2 , entang= 0.120093 , err= 1.412567 --ab step= 3 , entang= 0.087039 , err= 1.086403 --ab step= 4 , entang= 0.062918 , err= 0.853852 --ab step= 5 , entang= 0.047191 , err= 0.664342 --ab step= 6 , entang= 0.037213 , err= 0.529728 --ab step= 7 , entang= 0.030705 , err= 0.434081 --ab step= 8 , entang= 0.026383 , err= 0.367761 --ab step= 9 , entang= 0.023392 , err= 0.327570 --ab step= 10 , entang= 0.021205 , err= 0.304239 --ab step= 11 , entang= 0.019512 , err= 0.287927 --ab step= 12 , entang= 0.018143 , err= 0.275193 --ab step= 13 , entang= 0.017004 , err= 0.264460 --ab step= 14 , entang= 0.016029 , err= 0.255123 --ab step= 15 , entang= 0.015178 , err= 0.246837 --ab step= 16 , entang= 0.014417 , err= 0.239328 --ab step= 17 , entang= 0.013724 , err= 0.232378 --ab step= 18 , entang= 0.013079 , err= 0.225817 --ab step= 19 , entang= 0.012471 , err= 0.219520 --ab step= 20 , entang= 0.011890 , err= 0.213397 --ab step= 21 , entang= 0.011331 , err= 0.207395 --ab step= 22 , entang= 0.010791 , err= 0.201492 --ab step= 23 , entang= 0.010271 , err= 0.195695 --ab step= 24 , entang= 0.009774 , err= 0.190032 --ab step= 25 , entang= 0.009300 , err= 0.184543 --ab step= 26 , entang= 0.008855 , err= 0.179271 --ab step= 27 , entang= 0.008438 , err= 0.174256 --ab step= 28 , entang= 0.008052 , err= 0.169526 --ab step= 29 , entang= 0.007698 , err= 0.165098 --ab step= 30 , entang= 0.007373 , err= 0.160980 --ab step= 31 , entang= 0.007077 , err= 0.157166 --ab step= 32 , entang= 0.006807 , err= 0.153646 --ab step= 33 , entang= 0.006563 , err= 0.150405 --ab step= 34 , entang= 0.006341 , err= 0.147426 --ab step= 35 , entang= 0.006140 , err= 0.144688 --ab step= 36 , entang= 0.005957 , err= 0.142173 --ab step= 37 , entang= 0.005790 , err= 0.139863 --ab step= 38 , entang= 0.005639 , err= 0.137739 --ab step= 39 , entang= 0.005501 , err= 0.135786 --ab step= 40 , entang= 0.005376 , err= 0.133989 --ab step= 41 , entang= 0.005261 , err= 0.132334 --ab step= 42 , entang= 0.005156 , err= 0.130809 --ab step= 43 , entang= 0.005059 , err= 0.129402 --ab step= 44 , entang= 0.004971 , err= 0.128104 --ab step= 45 , entang= 0.004890 , err= 0.126904 --ab step= 46 , entang= 0.004816 , err= 0.125795 --ab step= 47 , entang= 0.004747 , err= 0.124769 --ab step= 48 , entang= 0.004684 , err= 0.123819 --ab step= 49 , entang= 0.004626 , err= 0.122940 --ab step= 50 , entang= 0.004572 , err= 0.122124 --ab step= 51 , entang= 0.004522 , err= 0.121368 --ab step= 52 , entang= 0.004476 , err= 0.120667 --ab step= 53 , entang= 0.004434 , err= 0.120015 --ab step= 54 , entang= 0.004395 , err= 0.119410 --ab step= 55 , entang= 0.004358 , err= 0.118848 --ab step= 56 , entang= 0.004324 , err= 0.118325 --ab step= 57 , entang= 0.004293 , err= 0.117839 --ab step= 58 , entang= 0.004264 , err= 0.117386 --ab step= 59 , entang= 0.004237 , err= 0.116965 --ab step= 60 , entang= 0.004212 , err= 0.116572 --ab step= 61 , entang= 0.004188 , err= 0.116206 --ab step= 62 , entang= 0.004167 , err= 0.115866 --ab step= 63 , entang= 0.004146 , err= 0.115548 --ab step= 64 , entang= 0.004127 , err= 0.115252 --ab step= 65 , entang= 0.004110 , err= 0.114975 --ab step= 66 , entang= 0.004093 , err= 0.114717 --ab step= 67 , entang= 0.004078 , err= 0.114476 --ab step= 68 , entang= 0.004064 , err= 0.114252 --ab step= 69 , entang= 0.004051 , err= 0.114042 --ab step= 70 , entang= 0.004038 , err= 0.113845 --ab step= 71 , entang= 0.004027 , err= 0.113662 --ab step= 72 , entang= 0.004016 , err= 0.113491 --ab step= 73 , entang= 0.004006 , err= 0.113331 --ab step= 74 , entang= 0.003996 , err= 0.113181 --ab step= 75 , entang= 0.003987 , err= 0.113041 --ab step= 76 , entang= 0.003979 , err= 0.112910 --ab step= 77 , entang= 0.003971 , err= 0.112787 --ab step= 78 , entang= 0.003964 , err= 0.112672 --ab step= 79 , entang= 0.003957 , err= 0.112565 --ab step= 80 , entang= 0.003951 , err= 0.112464 --ab step= 81 , entang= 0.003945 , err= 0.112370 --ab step= 82 , entang= 0.003939 , err= 0.112282 --ab step= 83 , entang= 0.003934 , err= 0.112200 --ab step= 84 , entang= 0.003929 , err= 0.112122 --ab step= 85 , entang= 0.003925 , err= 0.112050 --ab step= 86 , entang= 0.003920 , err= 0.111982 --ab step= 87 , entang= 0.003916 , err= 0.111918 --ab step= 88 , entang= 0.003913 , err= 0.111859 --ab step= 89 , entang= 0.003909 , err= 0.111803 --ab step= 90 , entang= 0.003906 , err= 0.111751 --ab step= 91 , entang= 0.003903 , err= 0.111702 --ab step= 92 , entang= 0.003900 , err= 0.111656 --ab step= 93 , entang= 0.003897 , err= 0.111613 --ab step= 94 , entang= 0.003894 , err= 0.111572 --ab step= 95 , entang= 0.003892 , err= 0.111534 --ab step= 96 , entang= 0.003890 , err= 0.111499 --ab step= 97 , entang= 0.003888 , err= 0.111465 --ab step= 98 , entang= 0.003886 , err= 0.111434 --ab step= 99 , entang= 0.003884 , err= 0.111405 ent_02_1= 0.0038837130076252997 ***************new dm evas_of_dm [0.05 0.05 0.2 0.2 0.3 0.1 0.06 0.04] initial norm of Dxy - sum_alp Kxy_alp, should be 0 3.5153434668415376e-16 --ab step= 0 , entang= 0.441242 , err= 3.729046 --ab step= 1 , entang= 0.248103 , err= 2.508817 --ab step= 2 , entang= 0.164856 , err= 1.853881 --ab step= 3 , entang= 0.120789 , err= 1.431601 --ab step= 4 , entang= 0.095947 , err= 1.132679 --ab step= 5 , entang= 0.074881 , err= 0.849668 --ab step= 6 , entang= 0.057520 , err= 0.647306 --ab step= 7 , entang= 0.044667 , err= 0.507155 --ab step= 8 , entang= 0.035273 , err= 0.426439 --ab step= 9 , entang= 0.028189 , err= 0.371646 --ab step= 10 , entang= 0.022704 , err= 0.326121 --ab step= 11 , entang= 0.018443 , err= 0.287759 --ab step= 12 , entang= 0.015137 , err= 0.255546 --ab step= 13 , entang= 0.012574 , err= 0.228632 --ab step= 14 , entang= 0.010582 , err= 0.206206 --ab step= 15 , entang= 0.009026 , err= 0.187517 --ab step= 16 , entang= 0.007798 , err= 0.171897 --ab step= 17 , entang= 0.006821 , err= 0.158778 --ab step= 18 , entang= 0.006033 , err= 0.147686 --ab step= 19 , entang= 0.005391 , err= 0.138238 --ab step= 20 , entang= 0.004861 , err= 0.130125 --ab step= 21 , entang= 0.004419 , err= 0.123100 --ab step= 22 , entang= 0.004046 , err= 0.116967 --ab step= 23 , entang= 0.003729 , err= 0.111572 --ab step= 24 , entang= 0.003456 , err= 0.106792 --ab step= 25 , entang= 0.003219 , err= 0.102529 --ab step= 26 , entang= 0.003013 , err= 0.098704 --ab step= 27 , entang= 0.002831 , err= 0.095253 --ab step= 28 , entang= 0.002670 , err= 0.092126 --ab step= 29 , entang= 0.002527 , err= 0.089278 --ab step= 30 , entang= 0.002399 , err= 0.086676 --ab step= 31 , entang= 0.002283 , err= 0.084290 --ab step= 32 , entang= 0.002180 , err= 0.082095 --ab step= 33 , entang= 0.002085 , err= 0.080069 --ab step= 34 , entang= 0.002000 , err= 0.078195 --ab step= 35 , entang= 0.001922 , err= 0.076457 --ab step= 36 , entang= 0.001851 , err= 0.074842 --ab step= 37 , entang= 0.001785 , err= 0.073338 --ab step= 38 , entang= 0.001725 , err= 0.071935 --ab step= 39 , entang= 0.001670 , err= 0.070623 --ab step= 40 , entang= 0.001618 , err= 0.069395 --ab step= 41 , entang= 0.001571 , err= 0.068244 --ab step= 42 , entang= 0.001527 , err= 0.067162 --ab step= 43 , entang= 0.001486 , err= 0.066146 --ab step= 44 , entang= 0.001448 , err= 0.065189 --ab step= 45 , entang= 0.001412 , err= 0.064286 --ab step= 46 , entang= 0.001379 , err= 0.063435 --ab step= 47 , entang= 0.001348 , err= 0.062631 --ab step= 48 , entang= 0.001319 , err= 0.061870 --ab step= 49 , entang= 0.001292 , err= 0.061150 --ab step= 50 , entang= 0.001266 , err= 0.060468 --ab step= 51 , entang= 0.001242 , err= 0.059821 --ab step= 52 , entang= 0.001220 , err= 0.059207 --ab step= 53 , entang= 0.001198 , err= 0.058623 --ab step= 54 , entang= 0.001178 , err= 0.058069 --ab step= 55 , entang= 0.001159 , err= 0.057541 --ab step= 56 , entang= 0.001141 , err= 0.057039 --ab step= 57 , entang= 0.001124 , err= 0.056561 --ab step= 58 , entang= 0.001108 , err= 0.056105 --ab step= 59 , entang= 0.001092 , err= 0.055670 --ab step= 60 , entang= 0.001078 , err= 0.055255 --ab step= 61 , entang= 0.001064 , err= 0.054859 --ab step= 62 , entang= 0.001051 , err= 0.054480 --ab step= 63 , entang= 0.001038 , err= 0.054118 --ab step= 64 , entang= 0.001026 , err= 0.053772 --ab step= 65 , entang= 0.001015 , err= 0.053440 --ab step= 66 , entang= 0.001004 , err= 0.053123 --ab step= 67 , entang= 0.000994 , err= 0.052819 --ab step= 68 , entang= 0.000984 , err= 0.052528 --ab step= 69 , entang= 0.000975 , err= 0.052249 --ab step= 70 , entang= 0.000966 , err= 0.051982 --ab step= 71 , entang= 0.000958 , err= 0.051725 --ab step= 72 , entang= 0.000949 , err= 0.051479 --ab step= 73 , entang= 0.000942 , err= 0.051242 --ab step= 74 , entang= 0.000934 , err= 0.051015 --ab step= 75 , entang= 0.000927 , err= 0.050797 --ab step= 76 , entang= 0.000920 , err= 0.050587 --ab step= 77 , entang= 0.000914 , err= 0.050385 --ab step= 78 , entang= 0.000907 , err= 0.050191 --ab step= 79 , entang= 0.000901 , err= 0.050005 --ab step= 80 , entang= 0.000895 , err= 0.049825 --ab step= 81 , entang= 0.000890 , err= 0.049653 --ab step= 82 , entang= 0.000885 , err= 0.049486 --ab step= 83 , entang= 0.000879 , err= 0.049326 --ab step= 84 , entang= 0.000874 , err= 0.049172 --ab step= 85 , entang= 0.000870 , err= 0.049024 --ab step= 86 , entang= 0.000865 , err= 0.048880 --ab step= 87 , entang= 0.000861 , err= 0.048742 --ab step= 88 , entang= 0.000857 , err= 0.048609 --ab step= 89 , entang= 0.000853 , err= 0.048481 --ab step= 90 , entang= 0.000849 , err= 0.048357 --ab step= 91 , entang= 0.000845 , err= 0.048238 --ab step= 92 , entang= 0.000841 , err= 0.048122 --ab step= 93 , entang= 0.000838 , err= 0.048011 --ab step= 94 , entang= 0.000834 , err= 0.047904 --ab step= 95 , entang= 0.000831 , err= 0.047800 --ab step= 96 , entang= 0.000828 , err= 0.047700 --ab step= 97 , entang= 0.000825 , err= 0.047603 --ab step= 98 , entang= 0.000822 , err= 0.047510 --ab step= 99 , entang= 0.000819 , err= 0.047420 ent_02_1= 0.0008193739730244202
num_qbits = 4
num_up = 1
dm1 = DenMat(1 << num_qbits, tuple([2]*num_qbits))
st = SymNupState(num_up, num_qbits)
st_vec = st.get_st_vec()
dm1.set_arr_from_st_vec(st_vec)
recursion_init = "eigen+"
num_ab_steps = 15
print("recursion_init=", recursion_init)
print('num_ab_steps=', num_ab_steps)
ecase = FormationEnt(dm1, num_ab_steps,
recursion_init=recursion_init, verbose=False)
print('entang_023: algo value, known value\n',
ecase.get_entang({0, 2, 3}),
st.get_known_entang(3))
print('entang_02: algo value, known value\n',
ecase.get_entang({0, 2}),
st.get_known_entang(2))
print('entang_1: algo value, known value\n',
ecase.get_entang({1}),
st.get_known_entang(1))
recursion_init= eigen+ num_ab_steps= 15 entang_023: algo value, known value 0.5623351446188087 0.5623351446188083 entang_02: algo value, known value 0.693147180559946 0.6931471805599453 entang_1: algo value, known value 0.5623351446188093 0.5623351446188083
dm1 = TwoQubitState.get_bell_basis_diag_dm(.7)
recursion_init = "eigen+"
num_ab_steps = 50
print("recursion_init=", recursion_init)
print('num_ab_steps=', num_ab_steps)
for dm in [dm1]:
print("-------new dm")
formation_entang =\
TwoQubitState.get_known_formation_entang(dm)
ecase = FormationEnt(dm, num_ab_steps,
recursion_init=recursion_init, verbose=True)
print('entang_0: algo value, known value\n',
ecase.get_entang({1}), formation_entang)
recursion_init= eigen+ num_ab_steps= 50 -------new dm initial norm of Dxy - sum_alp Kxy_alp, should be 0 7.97218214573518e-17 --ab step= 0 , entang= 0.555735 , err= 2.506835 --ab step= 1 , entang= 0.393590 , err= 2.362168 --ab step= 2 , entang= 0.378178 , err= 2.312837 --ab step= 3 , entang= 0.357259 , err= 2.186007 --ab step= 4 , entang= 0.326879 , err= 2.001794 --ab step= 5 , entang= 0.301413 , err= 1.845208 --ab step= 6 , entang= 0.281487 , err= 1.716564 --ab step= 7 , entang= 0.251140 , err= 1.478213 --ab step= 8 , entang= 0.212558 , err= 1.137196 --ab step= 9 , entang= 0.187458 , err= 0.834544 --ab step= 10 , entang= 0.177733 , err= 0.642485 --ab step= 11 , entang= 0.175004 , err= 0.560991 --ab step= 12 , entang= 0.174137 , err= 0.523007 --ab step= 13 , entang= 0.173801 , err= 0.501893 --ab step= 14 , entang= 0.173648 , err= 0.488981 --ab step= 15 , entang= 0.173567 , err= 0.480723 --ab step= 16 , entang= 0.173521 , err= 0.475356 --ab step= 17 , entang= 0.173492 , err= 0.471860 --ab step= 18 , entang= 0.173474 , err= 0.469593 --ab step= 19 , entang= 0.173462 , err= 0.468130 --ab step= 20 , entang= 0.173455 , err= 0.467190 --ab step= 21 , entang= 0.173451 , err= 0.466589 --ab step= 22 , entang= 0.173448 , err= 0.466205 --ab step= 23 , entang= 0.173446 , err= 0.465962 --ab step= 24 , entang= 0.173445 , err= 0.465808 --ab step= 25 , entang= 0.173444 , err= 0.465710 --ab step= 26 , entang= 0.173443 , err= 0.465648 --ab step= 27 , entang= 0.173443 , err= 0.465609 --ab step= 28 , entang= 0.173443 , err= 0.465585 --ab step= 29 , entang= 0.173443 , err= 0.465569 --ab step= 30 , entang= 0.173443 , err= 0.465559 --ab step= 31 , entang= 0.173443 , err= 0.465553 --ab step= 32 , entang= 0.173443 , err= 0.465549 --ab step= 33 , entang= 0.173443 , err= 0.465547 --ab step= 34 , entang= 0.173443 , err= 0.465545 --ab step= 35 , entang= 0.173443 , err= 0.465544 --ab step= 36 , entang= 0.173443 , err= 0.465544 --ab step= 37 , entang= 0.173443 , err= 0.465543 --ab step= 38 , entang= 0.173443 , err= 0.465543 --ab step= 39 , entang= 0.173443 , err= 0.465543 --ab step= 40 , entang= 0.173443 , err= 0.465543 --ab step= 41 , entang= 0.173443 , err= 0.465543 --ab step= 42 , entang= 0.173443 , err= 0.465543 --ab step= 43 , entang= 0.173443 , err= 0.465543 --ab step= 44 , entang= 0.173443 , err= 0.465543 --ab step= 45 , entang= 0.173443 , err= 0.465543 --ab step= 46 , entang= 0.173443 , err= 0.465543 --ab step= 47 , entang= 0.173443 , err= 0.465543 --ab step= 48 , entang= 0.173443 , err= 0.465543 --ab step= 49 , entang= 0.173443 , err= 0.465543 entang_0: algo value, known value 0.17344269200724546 0.17344269198907492
np.random.seed(123)
dm2 = DenMat(4, (2, 2))
dm2.set_arr_to_rand_den_mat(np.array([.1, .2, .3, .4]))
dm3 = DenMat(4, (2, 2))
dm3.set_arr_to_rand_den_mat(np.array([.1, .1, .1, .7]))
recursion_init = "eigen+"
num_ab_steps = 50
print("recursion_init=", recursion_init)
print('num_ab_steps=', num_ab_steps)
for dm in [dm2, dm3]:
print("-------new dm")
formation_entang =\
TwoQubitState.get_known_formation_entang(dm)
ecase = FormationEnt(dm, num_ab_steps,
recursion_init=recursion_init, verbose=True)
print('entang_0: algo value, known value\n',
ecase.get_entang({1}), formation_entang)
recursion_init= eigen+ num_ab_steps= 50 -------new dm initial norm of Dxy - sum_alp Kxy_alp, should be 0 6.384939235171076e-16 --ab step= 0 , entang= 0.237977 , err= 2.373260 --ab step= 1 , entang= 0.129214 , err= 1.446401 --ab step= 2 , entang= 0.076794 , err= 0.830291 --ab step= 3 , entang= 0.049577 , err= 0.476590 --ab step= 4 , entang= 0.037716 , err= 0.404122 --ab step= 5 , entang= 0.029089 , err= 0.354527 --ab step= 6 , entang= 0.020476 , err= 0.278054 --ab step= 7 , entang= 0.013481 , err= 0.219071 --ab step= 8 , entang= 0.008770 , err= 0.170689 --ab step= 9 , entang= 0.005835 , err= 0.134618 --ab step= 10 , entang= 0.004050 , err= 0.108907 --ab step= 11 , entang= 0.002941 , err= 0.090572 --ab step= 12 , entang= 0.002220 , err= 0.077168 --ab step= 13 , entang= 0.001730 , err= 0.067023 --ab step= 14 , entang= 0.001380 , err= 0.059064 --ab step= 15 , entang= 0.001121 , err= 0.052614 --ab step= 16 , entang= 0.000922 , err= 0.047243 --ab step= 17 , entang= 0.000766 , err= 0.042670 --ab step= 18 , entang= 0.000641 , err= 0.038706 --ab step= 19 , entang= 0.000539 , err= 0.035224 --ab step= 20 , entang= 0.000455 , err= 0.032132 --ab step= 21 , entang= 0.000386 , err= 0.029363 --ab step= 22 , entang= 0.000328 , err= 0.026868 --ab step= 23 , entang= 0.000279 , err= 0.024609 --ab step= 24 , entang= 0.000237 , err= 0.022556 --ab step= 25 , entang= 0.000202 , err= 0.020685 --ab step= 26 , entang= 0.000173 , err= 0.018976 --ab step= 27 , entang= 0.000146 , err= 0.017413 --ab step= 28 , entang= 0.000125 , err= 0.015981 --ab step= 29 , entang= 0.000107 , err= 0.014669 --ab step= 30 , entang= 0.000091 , err= 0.013464 --ab step= 31 , entang= 0.000078 , err= 0.012359 --ab step= 32 , entang= 0.000066 , err= 0.011344 --ab step= 33 , entang= 0.000056 , err= 0.010412 --ab step= 34 , entang= 0.000048 , err= 0.009555 --ab step= 35 , entang= 0.000041 , err= 0.008769 --ab step= 36 , entang= 0.000035 , err= 0.008046 --ab step= 37 , entang= 0.000028 , err= 0.007382 --ab step= 38 , entang= 0.000024 , err= 0.006773 --ab step= 39 , entang= 0.000019 , err= 0.006213 --ab step= 40 , entang= 0.000015 , err= 0.005699 --ab step= 41 , entang= 0.000011 , err= 0.005227 --ab step= 42 , entang= 0.000008 , err= 0.004793 --ab step= 43 , entang= 0.000007 , err= 0.004395 --ab step= 44 , entang= 0.000005 , err= 0.004030 --ab step= 45 , entang= 0.000004 , err= 0.003695 --ab step= 46 , entang= 0.000000 , err= 0.003387 --ab step= 47 , entang= 0.000000 , err= 0.003105 --ab step= 48 , entang= 0.000000 , err= 0.002846 --ab step= 49 , entang= 0.000000 , err= 0.002609 entang_0: algo value, known value 2.6983292221097424e-07 0.0 -------new dm initial norm of Dxy - sum_alp Kxy_alp, should be 0 3.5067073340961885e-16 --ab step= 0 , entang= 0.387934 , err= 2.079383 --ab step= 1 , entang= 0.270321 , err= 1.642334 --ab step= 2 , entang= 0.169969 , err= 1.039376 --ab step= 3 , entang= 0.138176 , err= 0.809931 --ab step= 4 , entang= 0.117540 , err= 0.628656 --ab step= 5 , entang= 0.102721 , err= 0.481123 --ab step= 6 , entang= 0.092246 , err= 0.348755 --ab step= 7 , entang= 0.086186 , err= 0.250712 --ab step= 8 , entang= 0.082835 , err= 0.195276 --ab step= 9 , entang= 0.080974 , err= 0.168926 --ab step= 10 , entang= 0.079929 , err= 0.156532 --ab step= 11 , entang= 0.079336 , err= 0.149921 --ab step= 12 , entang= 0.078997 , err= 0.145953 --ab step= 13 , entang= 0.078802 , err= 0.143423 --ab step= 14 , entang= 0.078690 , err= 0.141768 --ab step= 15 , entang= 0.078624 , err= 0.140674 --ab step= 16 , entang= 0.078586 , err= 0.139944 --ab step= 17 , entang= 0.078564 , err= 0.139454 --ab step= 18 , entang= 0.078552 , err= 0.139122 --ab step= 19 , entang= 0.078544 , err= 0.138895 --ab step= 20 , entang= 0.078540 , err= 0.138738 --ab step= 21 , entang= 0.078537 , err= 0.138629 --ab step= 22 , entang= 0.078536 , err= 0.138551 --ab step= 23 , entang= 0.078535 , err= 0.138496 --ab step= 24 , entang= 0.078534 , err= 0.138456 --ab step= 25 , entang= 0.078534 , err= 0.138427 --ab step= 26 , entang= 0.078534 , err= 0.138405 --ab step= 27 , entang= 0.078534 , err= 0.138389 --ab step= 28 , entang= 0.078534 , err= 0.138377 --ab step= 29 , entang= 0.078534 , err= 0.138368 --ab step= 30 , entang= 0.078534 , err= 0.138362 --ab step= 31 , entang= 0.078534 , err= 0.138357 --ab step= 32 , entang= 0.078534 , err= 0.138353 --ab step= 33 , entang= 0.078534 , err= 0.138350 --ab step= 34 , entang= 0.078534 , err= 0.138347 --ab step= 35 , entang= 0.078534 , err= 0.138345 --ab step= 36 , entang= 0.078534 , err= 0.138344 --ab step= 37 , entang= 0.078534 , err= 0.138343 --ab step= 38 , entang= 0.078534 , err= 0.138342 --ab step= 39 , entang= 0.078534 , err= 0.138341 --ab step= 40 , entang= 0.078534 , err= 0.138341 --ab step= 41 , entang= 0.078534 , err= 0.138340 --ab step= 42 , entang= 0.078534 , err= 0.138340 --ab step= 43 , entang= 0.078534 , err= 0.138340 --ab step= 44 , entang= 0.078534 , err= 0.138340 --ab step= 45 , entang= 0.078534 , err= 0.138339 --ab step= 46 , entang= 0.078534 , err= 0.138339 --ab step= 47 , entang= 0.078534 , err= 0.138339 --ab step= 48 , entang= 0.078534 , err= 0.138339 --ab step= 49 , entang= 0.078534 , err= 0.138339 entang_0: algo value, known value 0.07853353408604735 0.07852966445691076