diff --git a/src/factorizations/blocklanczos.jl b/src/factorizations/blocklanczos.jl index 3c5ba531..4b8a867f 100644 --- a/src/factorizations/blocklanczos.jl +++ b/src/factorizations/blocklanczos.jl @@ -173,7 +173,7 @@ function initialize( X₁ = Block(map(Base.Fix2(scale, one(α)), X₀.vec)) # Orthogonalization of the initial block - _, good_idx = block_qr!(X₁, iter.qr_tol) + _, good_idx, _ = block_qr!(X₁, iter.qr_tol) X₁ = X₁[good_idx] V = OrthonormalBasis(X₁.vec) bs = length(X₁) # block size of the first block @@ -205,9 +205,16 @@ function expand!( R = state.R[1:(state.R_size)] bs = length(R) V = state.V + Rcopy = copy(R) # Calculate the new basis and B - B, good_idx = block_qr!(R, iter.qr_tol) + B, good_idx, is_drift = block_qr!(R, iter.qr_tol) + if is_drift # Prevent column subspace of R from drifting caused by an excessively small β in block_qr! + block_reorthogonalize!(R, V) + _, good_idx, is_drift = block_qr!(R, iter.qr_tol) + B = block_inner(R[good_idx], Rcopy) # Make sure R = XB + end + bs_next = length(good_idx) push!(V, R[good_idx]) state.H[(k + 1):(k + bs_next), (k - bs + 1):k] = view(B, 1:bs_next, 1:bs) @@ -221,7 +228,7 @@ function expand!( Mnext, 1:bs_next, 1:bs_next ) - state.R.vec[1:bs_next] .= Rnext.vec + state.R.vec[1:bs_next] = Rnext.vec state.norm_R = norm(Rnext) state.k += bs_next state.R_size = bs_next @@ -237,7 +244,6 @@ function block_lanczosrecurrence( ) # Apply the operator and calculate the M. Get Xnext and Mnext. bs, bs_prev = size(B) - S = eltype(B) k = length(V) X = Block(V[(k - bs + 1):k]) AX = apply(operator, X) @@ -295,14 +301,17 @@ This function performs a QR factorization of a block of abstract vectors using t It takes as input a block of abstract vectors and a tolerance parameter, which is used to determine whether a vector is considered numerically zero. The operation is performed in-place, transforming the input block into a block of orthonormal vectors. -The function returns a matrix of size `(r, p)` and a vector of indices goodidx. Here, `p` denotes the number of input vectors, +The function returns a matrix of size `(r, p)`, a vector of indices `goodidx` and a boolean flag `is_drift`. Here, `p` denotes the number of input vectors, and `r` is the numerical rank of the input block. The matrix represents the upper-triangular factor of the QR decomposition, restricted to the `r` linearly independent components. The vector `goodidx` contains the indices of the non-zero (i.e., numerically independent) vectors in the orthonormalized block. +If a small value of β (the norm of a vector after first orthogonalization) is detected, the function will carry out an additional +reorthogonalization step to further ensure the input block vectors are orthonormalized. +In such cases, is_drift is set to true to indicate potential numerical instability. """ function block_qr!(block::Block, tol::Real) n = length(block) - rank_shrink = false + is_drift = false idx = trues(n) r₁₁ = inner(block[1], block[1]) R = zeros(typeof(r₁₁), n, n) @@ -312,28 +321,33 @@ function block_qr!(block::Block, tol::Real) block[1] = scale!!(block[1], 1 / β) else block[1] = zerovector!!(block[1]) - rank_shrink = true idx[1] = false end - @inbounds for j in 2:n + for j in 2:n + # first MGS for i in 1:(j - 1) R[i, j] = inner(block[i], block[j]) block[j] = add!!(block[j], block[i], -R[i, j]) end β = norm(block[j]) - if β > tol - R[j, j] = β - block[j] = scale!!(block[j], 1 / β) - else + + if tol < β < 100 * tol # DGKS reorthogonalization + is_drift = true + for i in 1:(j - 1) + δ = inner(block[i], block[j]) + R[i, j] += δ + block[j] = add!!(block[j], block[i], -δ) + end + β = norm(block[j]) + end + if β < tol block[j] = zerovector!!(block[j]) - rank_shrink = true idx[j] = false + else + R[j, j] = β + block[j] = scale!!(block[j], 1 / β) end end - if rank_shrink - good_idx = findall(idx) - return R[good_idx, :], good_idx - else - return R, collect(Int, 1:n) - end + good_idx = findall(idx) + return R[good_idx, :], good_idx, is_drift end diff --git a/test/issues.jl b/test/issues.jl index cdc9581f..807c3f01 100644 --- a/test/issues.jl +++ b/test/issues.jl @@ -34,3 +34,96 @@ end @test info.converged ≥ 1 @test all(≈(1.0), vals[1:(info.converged)]) end + +# https://github.com/Jutho/KrylovKit.jl/issues/143 +@testset "Issue #143" begin + A = [ + 10024.25356852279 1428.6251475796844 146.32921409786178 -5825.105535499953 -8671.830412256508 -435.72962751503286 -435.7296275673929 82.77259787940591 82.77259738541186 -714.8167065980089 -1121.261057635746 -56.2637966622882 -56.2637963390501 -162.99968322595055 -162.99968189997603 3.45283449174475 3.4528344881010566 -101.2646156602821 -162.9869926175108 -160.10450344739752 -160.10450281266358 -162.98699373464325 48.22747151220074 -0.43357566666886543 594.9543398291324 594.954339728482 -15.163023492754974 -21.35552720424608 -21.3555271605477 -15.163023469861352 -67.0222046097202 -43.68202055784805 -43.68202059766126 -67.0222045575418 -20.842179935236523 3.176955598124615 3.1769556061970903 -20.842179912422104 -43.844446571619734 -43.84444650972497 -71.91761400200963 -71.91761348114426 557.7181170776 -3593.6748850333697 -3593.6748842945617 557.7181168234881 -6.636396240630142 -2.306159003813252 -3.433177268528114 -6.544212725113956 -6.63639624732843 -6.5442127342656145 -3.4331772670687295 -19.952844401095824 -19.83843515878668 -9.596457985057066 -19.95284440920183 -9.59645799830108 -9.537129127209779 0.0 -9.537129162700705 -20.49748222241172 -1687.7828148009623 -1671.330072637544 -578.7502786751252 -0.0031252925851325206 -1687.7828108846543 -578.7502793899085 -0.0031252925924096903 -1671.3300756067806 -1.0967349353871034 + 1428.6251475796844 3135.7650562900512 435.68039113590504 180.94459046600588 -2973.32548132554 82.77259792424316 82.7725980533475 -379.0616387246289 -379.06163872462884 0.0 -376.5908520174514 7.972896312146836 7.972896320201961 10.280464478355288 10.28046447444987 -46.64987823477029 -46.649877886325086 16.19785550380041 -46.612085279005676 -35.838483358987816 -35.83848328363477 -46.61208571191568 -309.34934332749026 0.0 1771.5544134227805 1771.5544134227805 1.7938606173373146 -5.663692130085152 -5.663692146849877 1.7938606190153954 -21.39621232703441 3.176955628615508 3.176955637485565 -21.39621231890626 -4.852284006375733 -44.84510231977838 -44.84510232839665 -4.852283953542262 -5.346178994624623 -5.346178936731853 -45.0024155786474 -45.00241611029361 -3687.067613482691 557.7384528515037 557.7384541856707 -3687.067613482691 -0.8601937945755359 0.20334493473192045 -0.850360036867677 0.29181365597329 -0.8601937933334296 0.29181365597329 -0.8503600373563277 -3.290926382979562 0.0 -3.321111169072697 -3.2909263915920404 -3.321111178921021 -6.890246596872159 -6.8663545347694335 -6.890246589731719 -7.064686493496346 -582.0469536762479 -0.0005538197006212592 51.84001296374422 -578.7498035202127 -582.0469557381933 51.840012084834115 -578.7498042349937 -0.0005538197006212592 -0.1967702778364937 + 146.32921409786178 435.68039113590504 9838.623932050275 18.533538920851726 110.36346361848297 -2973.3254813255494 -2973.3254813255476 -8852.775002344473 -8852.775002344473 0.0 8.708870613171829 -376.59085426629264 -376.5908514135216 -1121.2610515639428 -1121.2610458679835 -1121.2610698417902 -1121.2610613479546 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.16136594190998443 -0.16136594215362896 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -5825.105535499953 180.94459046600588 18.533538920851726 24577.154159608905 0.0 0.9605744534998707 0.9605744570294802 6.624049976338272 6.624049944266149 -4667.248192104644 -6948.129045393917 -355.71584032234813 -355.71583762793927 0.3617311871636146 0.3617311885610494 0.3595896549770436 0.35958965554891864 0.0 0.38262286268460743 0.44903308635592126 0.44903308555261773 0.3826228641966812 2.9512160096229674 -2.2452266739090256 59.96092966053942 59.96093018494843 -36.88529879761102 -114.56459078381943 -114.56458955216142 -36.88529866207681 0.19757103848460922 0.0 0.0 0.19757103848460922 0.0 0.19094687302593513 0.19094687336488958 0.0 0.0 0.0 0.20180473349412906 0.2018047333728004 33.14877372475418 -0.01572313854173927 -0.015723138513611158 33.14877260863916 -14.692415116196658 -9.27518296922867 -13.807958136289304 -13.890191255142854 -14.692415058134223 -13.890191308803248 -13.807958114329756 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.007066302861682478 -0.006918057720732247 -2307.3471884513187 -0.006686108952601649 -0.007066302857434089 -2307.3472085882136 -0.0066861089644703236 -0.006918057720732247 -2.3250632131420756 + -8671.830412256508 -2973.32548132554 110.36346361848297 0.0 22006.154088052037 9.484062937812308 9.484062946131925 17.403482651651455 17.403482673424183 0.0 -2333.624099739877 0.7213208321534695 0.72132083792631 -353.68894909827935 -353.68894722146945 -353.6889547852886 -353.68895210944726 0.9912062877481058 2.278441529744459 1.3369504752349584 1.3369504752349584 2.2784415253029726 0.0 0.0 357.77111563801327 357.77111719938785 0.06635693613134855 0.0 0.0 0.06635693615895637 -109.82223587924749 -38.308675382237595 -38.30867535400063 -109.82223436690262 -36.687728014163675 -114.62872332989535 -114.62872209835116 -36.68772787854726 0.20180473998897708 0.20180473936118049 0.0 0.0 -0.015723138672933696 33.194614694847616 33.194614659265135 -0.015723138672933696 0.0 0.0 -4.63759150657059 -4.6652103994682435 0.0 -4.665210466544579 -4.637591513945994 -14.692415101630433 -27.615914047696407 -27.780382601001726 -14.69241498628661 -27.780382437843283 -14.692415202392764 -27.615916533596014 -14.692415144330335 0.0 -0.0023733144723587177 -2307.347158768608 -0.0007803874025482052 -2307.347266354563 -0.0023733144649755477 -0.0007803874028728855 -2307.3472864914547 -2307.347158768608 -0.7809042772990892 + -435.72962751503286 82.77259792424316 -2973.3254813255494 0.9605744534998707 9.484062937812308 29350.4010634347 0.0 0.0 0.0 0.0 0.4675527987843884 -2333.6241140587913 0.0 0.0 0.0 -6948.129099827515 0.0 -2111.1720973919782 -6948.12910249182 -6948.1289343634335 0.0 0.0 0.0 0.0 0.0 -0.835616816943483 0.0 0.0 0.0 -241.89872354476827 0.0 -751.7504809206526 0.0 0.0 0.0 0.0 0.0 -720.2289159356066 0.0 0.0 0.0 0.0 0.0 -0.10736725058114675 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -435.7296275673929 82.7725980533475 -2973.3254813255476 0.9605744570294802 9.484062946131925 0.0 29350.401077097158 0.0 0.0 0.0 0.4675527935041075 0.0 -2333.6241008730335 0.0 0.0 0.0 -6948.129060568261 -2111.172097391977 0.0 0.0 -6948.1289383264775 -6948.129170300008 0.0 0.0 -0.835616816943483 0.0 -241.89872443361975 0.0 0.0 0.0 0.0 0.0 -751.7504803692925 0.0 -720.228918582072 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.10736724936860083 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 82.77259787940591 -379.0616387246289 -8852.775002344473 6.624049976338272 17.403482651651455 0.0 0.0 22705.009995671495 0.0 0.0 1.3920909733036604 0.0 0.0 -2333.62408649972 0.0 0.0 0.0 0.0 0.0 -2333.6240857562043 0.0 -2333.6241379662724 -6285.800759729422 0.0 -0.2806533267557003 0.0 0.0 -252.48568046020608 0.0 0.0 0.0 0.0 0.0 -720.2289061983765 0.0 -751.7505038823706 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.107367246272398 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 82.77259738541186 -379.06163872462884 -8852.775002344473 6.624049944266149 17.403482673424183 0.0 0.0 0.0 22705.009989020014 0.0 1.392090991211482 0.0 0.0 0.0 -2333.6240685196917 0.0 0.0 0.0 -2333.6241226647644 0.0 -2333.6240772559267 0.0 -6285.800759729424 0.0 0.0 -0.2806533267557003 0.0 0.0 -252.48567774755904 0.0 -720.2289161165364 0.0 0.0 0.0 0.0 0.0 -751.7504958057391 0.0 0.0 0.0 0.0 0.0 -0.10736724765356745 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -714.8167065980089 0.0 0.0 -4667.248192104644 0.0 0.0 0.0 0.0 0.0 30394.766567554972 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -16.648962398928038 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -1121.261057635746 -376.5908520174514 8.708870613171829 -6948.129045393917 -2333.624099739877 0.4675527987843884 0.4675527935041075 1.3920909733036604 1.392090991211482 0.0 30502.914533743013 0.058608370814354514 0.05860837013792819 0.17450047618595418 0.17450047935938545 0.1745004787844975 0.17450047677050676 0.0 0.18317603405456345 0.0 0.0 0.18317603160480161 0.0 0.0 28.608363818390384 28.608363671862865 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.10145014772635046 -0.0340734196298944 -0.03407341924508818 -0.10145014642129843 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.01334915305973647 -0.012716912558942849 -0.004271148879386504 -0.012716912517047265 -0.013349152881207407 -0.004271148830091199 -0.012716912370275493 -0.012716912327675588 -4.21598350955927 + -56.2637966622882 7.972896312146836 -376.59085426629264 -355.71584032234813 0.7213208321534695 -2333.6241140587913 0.0 0.0 0.0 0.0 0.058608370814354514 35284.94780058033 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6.196324581575648 -1809.6828350463893 -5646.607041554868 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -188.4663849727706 -561.139542962298 -564.4813752292746 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.08339921369450594 0.0 0.0 0.0 0.0 0.0 0.0 + -56.2637963390501 7.972896320201961 -376.5908514135216 -355.71583762793927 0.72132083792631 0.0 -2333.6241008730335 0.0 0.0 0.0 0.05860837013792819 0.0 35284.94761569817 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6.196324581575648 0.0 0.0 0.0 -5646.607054124888 -1809.6828331366737 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -188.46638318821536 0.0 0.0 0.0 -564.4813833453807 -561.1395438547077 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.08339921273195702 0.0 0.0 0.0 + -162.99968322595055 10.280464478355288 -1121.2610515639428 0.3617311871636146 -353.68894909827935 0.0 0.0 -2333.62408649972 0.0 0.0 0.17450047618595418 0.0 0.0 32278.185474035243 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.0811202824615966 0.0 0.0 0.0 0.0 0.0 -5388.147094423187 -1896.4901765717077 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -189.58879233340784 0.0 0.0 0.0 0.0 -561.1394749611916 -564.4814037065493 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.08339921245258086 0.0 + -162.99968189997603 10.28046447444987 -1121.2610458679835 0.3617311885610494 -353.68894722146945 0.0 0.0 0.0 -2333.6240685196917 0.0 0.17450047935938545 0.0 0.0 0.0 32278.185291758957 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.0811202856038475 0.0 0.0 0.0 0.0 0.0 0.0 -1896.490177670255 -5388.147092376298 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -189.5887930658246 0.0 0.0 -561.1395099200861 0.0 0.0 -564.4814050032325 0.0 0.0 0.0 0.0 0.0 -0.0833992139692625 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 3.45283449174475 -46.64987823477029 -1121.2610698417902 0.3595896549770436 -353.6889547852886 -6948.129099827515 0.0 0.0 0.0 0.0 0.1745004787844975 0.0 0.0 0.0 0.0 32020.03672438474 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1809.6828381041312 -5646.607044982525 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -188.46638288848632 0.0 0.0 -564.4813940200895 0.0 0.0 0.0 -561.1395441544464 0.0 0.0 0.0 0.0 0.0 -0.08339921369450566 0.0 0.0 0.0 0.0 0.0 + 3.4528344881010566 -46.649877886325086 -1121.2610613479546 0.35958965554891864 -353.68895210944726 0.0 -6948.129060568261 0.0 0.0 0.0 0.17450047677050676 0.0 0.0 0.0 0.0 0.0 32020.03653805733 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5646.607057552552 -1809.6828361944165 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -188.46638318821468 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -564.4813860928349 0.0 -561.139541750932 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.08339921273195675 0.0 0.0 + -101.2646156602821 16.19785550380041 0.0 0.0 0.9912062877481058 -2111.1720973919782 -2111.172097391977 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 39093.0220361019 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2055.637926635575 0.0 0.0 -2055.637923369731 0.0 0.0 0.0 0.0 -6120.453461628121 0.0 0.0 -6120.453451904403 -6517.920618866774 -6517.920583261844 0.0 0.0 0.0 -0.7052390649423907 -0.705239060598603 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -162.9869926175108 -46.612085279005676 0.0 0.38262286268460743 2.278441529744459 -6948.12910249182 0.0 0.0 -2333.6241226647644 0.0 0.18317603405456345 0.0 0.0 0.0 0.0 0.0 0.0 0.0 32418.618678723305 0.0 0.0 0.0 0.0 0.0 0.0 -2.0811202685001327 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1903.1429206290907 0.0 -5666.414916880266 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -200.53843580458286 0.0 0.0 -597.082851475908 0.0 0.0 0.0 0.0 0.0 0.0 -597.0828532111829 0.0 -0.08754553176151948 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -160.10450344739752 -35.838483358987816 0.0 0.44903308635592126 1.3369504752349584 -6948.1289343634335 0.0 -2333.6240857562043 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 35336.94673305333 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1896.4901611469181 0.0 0.0 0.0 -1896.4901336837984 0.0 0.0 0.0 -5646.60710293089 0.0 0.0 0.0 -1903.1429208256714 -5666.4149801075 0.0 0.0 -0.21460689727475965 0.0 -0.6389702719428734 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -160.10450281266358 -35.83848328363477 0.0 0.44903308555261773 1.3369504752349584 0.0 -6948.1289383264775 0.0 -2333.6240772559267 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 35336.9467168525 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1896.4901576540315 0.0 0.0 0.0 -1896.4901363846916 0.0 0.0 0.0 -5646.607092531175 0.0 -1903.1429278873957 0.0 0.0 -5666.415047167205 -0.6389702719428734 0.0 -0.21460689689083584 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -162.98699373464325 -46.61208571191568 0.0 0.3826228641966812 2.2784415253029726 0.0 -6948.129170300008 -2333.6241379662724 0.0 0.0 0.18317603160480161 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 32418.61894693181 0.0 0.0 -2.0811202685001327 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1903.1429226888451 0.0 -5666.414983703508 0.0 0.0 0.0 0.0 -200.53843659708357 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -597.0828467884677 0.0 -597.0828555707732 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.087545530590702 0.0 0.0 0.0 0.0 + 48.22747151220074 -309.34934332749026 0.0 2.9512160096229674 0.0 0.0 0.0 -6285.800759729422 -6285.800759729424 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27548.177364371993 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2055.6379011560666 0.0 0.0 -2055.6378967027777 0.0 0.0 0.0 0.0 0.0 0.0 -2189.1327623969833 -2189.1327479534616 -0.23686416513901967 0.0 0.0 -0.23686416513901967 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -0.43357566666886543 0.0 0.0 -2.2452266739090256 0.0 0.0 0.0 0.0 0.0 -16.648962398928038 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.26677334277161424 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 594.9543398291324 1771.5544134227805 -0.16136594190998443 59.96092966053942 357.77111563801327 0.0 -0.835616816943483 -0.2806533267557003 0.0 0.0 28.608363818390384 0.0 -6.196324581575648 -2.0811202824615966 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.0811202685001327 0.0 0.0 2893.2295750156486 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5246.660843601585 -1762.1627906429335 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -529.8509176100155 -177.95767479499997 -529.8509244262688 0.0 0.0 0.0 0.0 -0.0781176093372119 + 594.954339728482 1771.5544134227805 -0.16136594215362896 59.96093018494843 357.77111719938785 -0.835616816943483 0.0 0.0 -0.2806533267557003 0.0 28.608363671862865 -6.196324581575648 0.0 0.0 -2.0811202856038475 0.0 0.0 0.0 -2.0811202685001327 0.0 0.0 0.0 0.0 0.0 0.0 2893.2295753611807 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1762.1627903449569 -5246.660843601585 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -177.95767634808993 -529.8509290504365 -529.8509176100155 -0.07811760894278927 + -15.163023492754974 1.7938606173373146 0.0 -36.88529879761102 0.06635693613134855 0.0 -241.89872443361975 0.0 0.0 0.0 0.0 -1809.6828350463893 0.0 0.0 0.0 0.0 0.0 -2055.637926635575 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41915.80788301135 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6.013320748981595 0.0 -5394.687109609028 -1799.3801671340102 -5357.471915996492 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.5851265010209279 0.0 0.0 0.0 0.0 0.0 0.0 + -21.35552720424608 -5.663692130085152 0.0 -114.56459078381943 0.0 0.0 0.0 -252.48568046020608 0.0 0.0 0.0 -5646.607041554868 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1896.4901611469181 0.0 0.0 0.0 0.0 0.0 0.0 0.0 36677.7238476021 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.529983596307442 -1724.824305380718 0.0 0.0 -1740.6446240693385 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.18993370762455367 0.0 0.0 0.0 0.0 0.0 0.0 + -21.3555271605477 -5.663692146849877 0.0 -114.56458955216142 0.0 0.0 0.0 0.0 -252.48567774755904 0.0 0.0 0.0 -5646.607054124888 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1896.4901576540315 0.0 0.0 0.0 0.0 0.0 0.0 0.0 36677.723749223755 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.529983596307442 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1724.8243116420308 -1740.6446256070549 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.1899337079617096 0.0 0.0 0.0 + -15.163023469861352 1.7938606190153954 0.0 -36.88529866207681 0.06635693615895637 -241.89872354476827 0.0 0.0 0.0 0.0 0.0 0.0 -1809.6828331366737 0.0 0.0 0.0 0.0 -2055.637923369731 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41915.80782828021 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6.013320764432163 0.0 0.0 0.0 -1799.3801897771018 0.0 0.0 -5394.68710661503 0.0 -5357.471918273863 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.5851265012643698 0.0 0.0 0.0 + -67.0222046097202 -21.39621232703441 0.0 0.19757103848460922 -109.82223587924749 0.0 0.0 0.0 -720.2289161165364 0.0 0.0 0.0 0.0 -5388.147094423187 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2055.6379011560666 0.0 0.0 0.0 0.0 0.0 0.0 0.0 34186.79126487367 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.019655930067749 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1811.8793941644383 -1799.380243536654 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.1965227252164447 0.0 + -43.68202055784805 3.176955628615508 0.0 0.0 -38.308675382237595 -751.7504809206526 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1896.4901765717077 0.0 0.0 0.0 0.0 0.0 -1896.4901336837984 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 38814.55956453366 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.8573205366897478 0.0 0.0 0.0 0.0 0.0 -1740.6446705133517 0.0 0.0 0.0 -5135.489523921311 0.0 -5182.592872560411 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.5655083664163928 0.0 + -43.68202059766126 3.176955637485565 0.0 0.0 -38.30867535400063 0.0 -751.7504803692925 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1896.490177670255 0.0 0.0 0.0 0.0 0.0 -1896.4901363846916 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 38814.55959748588 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.8573205486525954 0.0 0.0 0.0 0.0 0.0 0.0 -1740.6446739850585 0.0 0.0 0.0 0.0 -5135.489537361081 -5182.592887928717 0.0 0.0 0.0 0.0 0.0 -0.5655083664163928 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -67.0222045575418 -21.39621231890626 0.0 0.19757103848460922 -109.82223436690262 0.0 0.0 -720.2289061983765 0.0 0.0 0.0 0.0 0.0 0.0 -5388.147092376298 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2055.6378967027777 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 34186.79108669362 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.0196559295400145 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.3801286380394 0.0 -1811.8793955559788 0.0 0.0 0.0 0.0 0.0 0.0 -0.1965227252164447 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -20.842179935236523 -4.852284006375733 0.0 0.0 -36.687728014163675 0.0 -720.228918582072 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1809.6828381041312 0.0 -6120.453461628121 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 38747.32364702128 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.3801890122033 0.0 0.0 0.0 0.0 0.0 -5394.687113710614 -5357.471915396351 0.0 0.0 0.0 0.0 0.0 -0.5851265010209237 0.0 0.0 0.0 0.0 0.0 + 3.176955598124615 -44.84510231977838 0.0 0.19094687302593513 -114.62872332989535 0.0 0.0 -751.7505038823706 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5646.607044982525 0.0 0.0 0.0 -5646.60710293089 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 33763.91513627063 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1740.6446545643128 0.0 0.0 -1724.8243091570546 0.0 0.0 0.0 0.0 0.0 0.0 -0.18993370762455367 0.0 0.0 0.0 0.0 0.0 + 3.1769556061970903 -44.84510232839665 0.0 0.19094687336488958 -114.62872209835116 0.0 0.0 0.0 -751.7504958057391 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5646.607057552552 0.0 0.0 0.0 -5646.607092531175 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 33763.91503805473 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1740.6446571085737 0.0 0.0 -1724.8243154183658 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.1899337079617096 0.0 0.0 + -20.842179912422104 -4.852283953542262 0.0 0.0 -36.68772787854726 -720.2289159356066 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1809.6828361944165 -6120.453451904403 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 38747.323643171905 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.3801897770888 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5357.472047863067 -5394.687110716615 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.5851265012643657 0.0 0.0 + -43.844446571619734 -5.346178994624623 0.0 0.0 0.20180473998897708 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6517.920618866774 -1903.1429206290907 0.0 -1903.1429278873957 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 43032.30533085363 0.0 0.0 0.0 0.0 0.0 -1.7885994647321972 0.0 0.0 0.0 0.0 0.0 -1799.4031493740802 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5357.540396349298 -5512.220446554533 -0.5976650111213667 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -43.84444650972497 -5.346178936731853 0.0 0.0 0.20180473936118049 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6517.920583261844 0.0 -1903.1429208256714 0.0 -1903.1429226888451 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 43032.30524328015 0.0 0.0 0.0 -1.788599470397395 0.0 0.0 -1799.4031521109189 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5357.540404497955 0.0 0.0 -5512.220472203078 0.0 0.0 0.0 0.0 -0.5976650092620841 0.0 0.0 0.0 0.0 + -71.91761400200963 -45.0024155786474 0.0 0.20180473349412906 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5666.414916880266 -5666.4149801075 0.0 0.0 -2189.1327623969833 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 38063.27330476277 0.0 0.0 0.0 0.0 -1.7885994325497492 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.4031225782635 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1851.354599525686 -0.20073395621157314 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -71.91761348114426 -45.00241611029361 0.0 0.2018047333728004 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5666.415047167205 -5666.414983703508 -2189.1327479534616 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 38063.2734960871 -1.7885994325497492 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.4031227557384 0.0 0.0 0.0 0.0 -1851.3546128958508 0.0 0.0 0.0 0.0 -0.20073395609088826 0.0 0.0 0.0 0.0 + 557.7181170776 -3687.067613482691 0.0 33.14877372475418 -0.015723138672933696 0.0 0.0 0.0 -0.10736724765356745 0.0 -0.10145014772635046 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.6389702719428734 0.0 -0.23686416513901967 0.0 -5246.660843601585 0.0 0.0 0.0 -5.529983596307442 0.0 -2.019655930067749 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.7885994325497492 11479.776004089537 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1723.7888879680274 -1714.0239557744799 0.0 0.0 0.0 0.0 0.0 0.0 -0.1866092364427366 + -3593.6748850333697 557.7384528515037 0.0 -0.01572313854173927 33.194614694847616 -0.10736725058114675 0.0 0.0 0.0 0.0 -0.0340734196298944 0.0 0.0 0.0 0.0 0.0 0.0 -0.7052390649423907 0.0 -0.21460689727475965 0.0 0.0 0.0 0.0 -1762.1627906429335 0.0 0.0 0.0 0.0 -6.013320764432163 0.0 -1.8573205366897478 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.788599470397395 0.0 0.0 0.0 16161.58652118614 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5132.4063941190325 0.0 -1714.0239838142154 -5103.33253881262 0.0 0.0 0.0 0.0 -0.555610076064462 + -3593.6748842945617 557.7384541856707 0.0 -0.015723138513611158 33.194614659265135 0.0 -0.10736724936860083 0.0 0.0 0.0 -0.03407341924508818 0.0 0.0 0.0 0.0 0.0 0.0 -0.705239060598603 0.0 0.0 -0.21460689689083584 0.0 0.0 0.0 0.0 -1762.1627903449569 -6.013320748981595 0.0 0.0 0.0 0.0 0.0 -1.8573205486525954 0.0 0.0 0.0 0.0 0.0 -1.7885994647321972 0.0 0.0 0.0 0.0 0.0 16161.586531394927 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5132.406412300998 -1714.023985931111 -5103.3325451154615 0.0 -0.5556100754683878 + 557.7181168234881 -3687.067613482691 0.0 33.14877260863916 -0.015723138672933696 0.0 0.0 -0.107367246272398 0.0 0.0 -0.10145014642129843 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.6389702719428734 0.0 0.0 -0.23686416513901967 0.0 0.0 -5246.660843601585 0.0 -5.529983596307442 0.0 0.0 0.0 0.0 0.0 -2.0196559295400145 0.0 0.0 0.0 0.0 0.0 0.0 -1.7885994325497492 0.0 0.0 0.0 0.0 11479.776003657511 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1723.7888864017066 0.0 0.0 -1714.0239557744799 -0.1866092301694055 + -6.636396240630142 -0.8601937945755359 0.0 -14.692415116196658 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -200.53843659708357 0.0 0.0 0.0 0.0 -5394.687109609028 -1724.824305380718 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.4031521109189 0.0 0.0 0.0 0.0 0.0 0.0 43961.466430581844 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.6104245767599097 0.0 -5.522086986257802 0.0 0.0 0.0 0.0 + -2.306159003813252 0.20334493473192045 0.0 -9.27518296922867 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -188.4663849727706 -188.46638318821536 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.3801671340102 0.0 0.0 -1799.3801897771018 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 42628.96433438222 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.55556127384905 0.0 0.0 -5.55556127382145 0.0 0.0 0.0 + -3.433177268528114 -0.850360036867677 0.0 -13.807958136289304 -4.63759150657059 0.0 0.0 0.0 0.0 0.0 0.0 -561.139542962298 0.0 0.0 0.0 0.0 -188.46638318821468 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5357.471915996492 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.3801897770888 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 39701.67835216255 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.55556127382145 0.0 0.0 + -6.544212725113956 0.29181365597329 0.0 -13.890191255142854 -4.6652103994682435 0.0 0.0 0.0 0.0 0.0 0.0 -564.4813752292746 0.0 -189.58879233340784 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1740.6446240693385 0.0 0.0 0.0 -1740.6446705133517 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 39272.79903423964 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.7986896276434348 0.0 0.0 0.0 0.0 -5.355416061345302 0.0 + -6.63639624732843 -0.8601937933334296 0.0 -14.692415058134223 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -200.53843580458286 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1724.8243116420308 -5394.68710661503 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.4031493740802 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 43961.466421624704 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.5220869972271425 0.0 0.0 0.0 0.0 -1.6104245772431138 0.0 0.0 0.0 + -6.5442127342656145 0.29181365597329 0.0 -13.890191308803248 -4.665210466544579 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -564.4813833453807 0.0 -189.5887930658246 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1740.6446256070549 0.0 0.0 0.0 -1740.6446739850585 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 39272.79919939769 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.355416061345302 0.0 0.0 0.0 -1.7986896350982724 0.0 0.0 0.0 + -3.4331772670687295 -0.8503600373563277 0.0 -13.807958114329756 -4.637591513945994 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -561.1395438547077 0.0 0.0 -188.46638288848632 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5357.471918273863 0.0 0.0 0.0 0.0 -1799.3801890122033 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 39701.67835217708 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.55556127384905 0.0 0.0 0.0 0.0 0.0 + -19.952844401095824 -3.290926382979562 0.0 0.0 -14.692415101630433 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -597.082851475908 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1811.8793941644383 -5135.489523921311 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.4031225782635 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41380.03955483894 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.854668347300711 0.0 0.0 0.0 0.0 0.0 0.0 -1.6104245711525331 0.0 + -19.83843515878668 0.0 0.0 0.0 -27.615914047696407 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -561.1394749611916 -561.1395099200861 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.380243536654 0.0 0.0 -1799.3801286380394 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 37434.81271054591 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.865911139721844 0.0 0.0 0.0 0.0 0.0 -1.8659111397218422 0.0 + -9.596457985057066 -3.321111169072697 0.0 0.0 -27.780382601001726 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -564.4814037065493 0.0 -564.4813940200895 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5182.592872560411 0.0 0.0 0.0 -1740.6446545643128 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 36450.9721446839 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.7986896276434219 0.0 0.0 0.0 0.0 0.0 + -19.95284440920183 -3.2909263915920404 0.0 0.0 -14.69241498628661 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -597.0828467884677 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5135.489537361081 -1811.8793955559788 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1799.4031227557384 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41380.039532960334 0.0 0.0 0.0 0.0 0.0 0.0 -1.6104245711525331 0.0 0.0 -1.854668352276606 0.0 0.0 0.0 0.0 + -9.59645799830108 -3.321111178921021 0.0 0.0 -27.780382437843283 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -564.4814050032325 0.0 -564.4813860928349 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5182.592887928717 0.0 0.0 0.0 -1740.6446571085737 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 36450.972108240705 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.7986896350982595 0.0 0.0 + -9.537129127209779 -6.890246596872159 0.0 0.0 -14.692415202392764 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -597.0828555707732 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5394.687113710614 -1724.8243091570546 0.0 0.0 0.0 -5357.540404497955 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41051.8186040716 0.0 0.0 0.0 0.0 0.0 0.0 -1.6104245767598981 0.0 0.0 0.0 0.0 0.0 + 0.0 -6.8663545347694335 0.0 0.0 -27.615916533596014 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -561.1395441544464 -561.139541750932 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5357.471915396351 0.0 0.0 -5357.472047863067 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 36774.39257112109 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + -9.537129162700705 -6.890246589731719 0.0 0.0 -14.692415144330335 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -597.0828532111829 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1724.8243154183658 -5394.687110716615 -5357.540396349298 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41051.818589334594 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.610424577243102 0.0 0.0 + -20.49748222241172 -7.064686493496346 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5512.220446554533 -5512.220472203078 -1851.354599525686 -1851.3546128958508 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 46474.89048129531 -1.6546968891737428 0.0 0.0 0.0 -1.6546968870252792 0.0 0.0 0.0 0.0 + -1687.7828148009623 -582.0469536762479 0.0 -0.007066302861682478 -0.0023733144723587177 0.0 0.0 0.0 0.0 0.0 -0.01334915305973647 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.08754553176151948 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.5976650111213667 0.0 -0.20073395621157314 0.0 -1723.7888879680274 -5132.4063941190325 0.0 0.0 0.0 0.0 0.0 0.0 -5.5220869972271425 0.0 0.0 -1.854668347300711 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.6546968891737428 21642.32126398862 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.574462117548007 + -1671.330072637544 -0.0005538197006212592 0.0 -0.006918057720732247 -2307.347158768608 0.0 0.0 0.0 0.0 0.0 -0.012716912558942849 0.0 0.0 0.0 -0.0833992139692625 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -529.8509176100155 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.5655083664163928 -0.1965227252164447 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1714.0239557744799 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.355416061345302 0.0 0.0 -1.865911139721844 0.0 -1.6104245711525331 0.0 0.0 0.0 0.0 0.0 0.0 17774.325884765098 0.0 0.0 0.0 0.0 0.0 0.0 -1.8055815785745342 + -578.7502786751252 51.84001296374422 0.0 -2307.3471884513187 -0.0007803874025482052 0.0 0.0 0.0 0.0 0.0 -0.004271148879386504 -0.08339921369450594 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -177.95767479499997 0.0 -0.5851265010209279 -0.18993370762455367 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1714.0239838142154 0.0 0.0 -1.6104245767599097 -5.55556127384905 0.0 -1.7986896276434348 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20287.43137738174 0.0 0.0 0.0 0.0 0.0 -5.375935948925016 + -0.0031252925851325206 -578.7498035202127 0.0 -0.006686108952601649 -2307.347266354563 0.0 0.0 0.0 0.0 0.0 -0.012716912517047265 0.0 0.0 0.0 0.0 -0.08339921369450566 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -529.8509244262688 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.5851265010209237 -0.18993370762455367 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5103.33253881262 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.55556127384905 0.0 0.0 -1.7986896276434219 0.0 0.0 -1.6104245767598981 0.0 0.0 0.0 0.0 0.0 0.0 17454.791942969598 0.0 0.0 0.0 0.0 0.0 + -1687.7828108846543 -582.0469557381933 0.0 -0.007066302857434089 -0.0023733144649755477 0.0 0.0 0.0 0.0 0.0 -0.013349152881207407 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.087545530590702 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.5976650092620841 0.0 -0.20073395609088826 0.0 0.0 -5132.406412300998 -1723.7888864017066 -5.522086986257802 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.854668352276606 0.0 0.0 0.0 0.0 -1.6546968870252792 0.0 0.0 0.0 0.0 21642.321306557118 0.0 0.0 0.0 -1.5744621991065635 + -578.7502793899085 51.840012084834115 0.0 -2307.3472085882136 -0.0007803874028728855 0.0 0.0 0.0 0.0 0.0 -0.004271148830091199 0.0 -0.08339921273195702 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -177.95767634808993 0.0 0.0 -0.1899337079617096 -0.5851265012643698 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1714.023985931111 0.0 0.0 -5.55556127382145 0.0 0.0 -1.6104245772431138 -1.7986896350982724 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20287.431402111757 0.0 0.0 -5.37593585778023 + -0.0031252925924096903 -578.7498042349937 0.0 -0.0066861089644703236 -2307.3472864914547 0.0 0.0 0.0 0.0 0.0 -0.012716912370275493 0.0 0.0 0.0 0.0 0.0 -0.08339921273195675 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -529.8509290504365 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.1899337079617096 -0.5851265012643657 0.0 0.0 0.0 0.0 0.0 0.0 -5103.3325451154615 0.0 0.0 0.0 -5.55556127382145 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.7986896350982595 0.0 0.0 -1.610424577243102 0.0 0.0 0.0 0.0 0.0 0.0 0.0 17454.7920157248 0.0 0.0 + -1671.3300756067806 -0.0005538197006212592 0.0 -0.006918057720732247 -2307.347158768608 0.0 0.0 0.0 0.0 0.0 -0.012716912327675588 0.0 0.0 -0.08339921245258086 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -529.8509176100155 0.0 0.0 0.0 0.0 -0.1965227252164447 -0.5655083664163928 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1714.0239557744799 0.0 0.0 0.0 -5.355416061345302 0.0 0.0 0.0 -1.6104245711525331 -1.8659111397218422 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 17774.325866463114 -1.8055814751567514 + -1.0967349353871034 -0.1967702778364937 0.0 -2.3250632131420756 -0.7809042772990892 0.0 0.0 0.0 0.0 0.0 -4.21598350955927 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0781176093372119 -0.07811760894278927 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.1866092364427366 -0.555610076064462 -0.5556100754683878 -0.1866092301694055 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.574462117548007 -1.8055815785745342 -5.375935948925016 0.0 -1.5744621991065635 -5.37593585778023 0.0 -1.8055814751567514 0.09612719785836016 + ] + + D, V, info = eigsolve( + A, Block([randn(71) for _ in 1:20]), 4, :SR, + BlockLanczos(; tol = 1.0e-8, verbosity = 2) + ) + eigvalA = eigvals(A) + @test length(D) == length(eigvalA) + @test D ≊ eigvalA + + U = hcat(V...) + @test A * U ≈ U * Diagonal(D) + + @test info.converged == length(D) + @test info.numiter == 1 + @test info.numops == length(D) + 1 + @test isapprox(info.normres, zeros(length(D)); atol = tolerance(Float64)) +end