@@ -22,7 +22,6 @@ using ITensors:
2222 replaceinds,
2323 unioninds,
2424 uniqueinds
25- using ITensors. ContractionSequenceOptimization: optimal_contraction_sequence
2625using ITensorMPS: siteinds
2726using KrylovKit: linsolve
2827using LinearAlgebra: eigen, norm, svd
@@ -407,7 +406,7 @@ function fidelity(
407406 ],
408407 envs,
409408 )
410- term1 = ITensors. contract (term1_tns; sequence= optimal_contraction_sequence (term1_tns) )
409+ term1 = ITensors. contract (term1_tns; sequence= " automatic " )
411410
412411 term2_tns = vcat (
413412 [
@@ -418,9 +417,9 @@ function fidelity(
418417 ],
419418 envs,
420419 )
421- term2 = ITensors. contract (term2_tns; sequence= optimal_contraction_sequence (term2_tns) )
420+ term2 = ITensors. contract (term2_tns; sequence= " automatic " )
422421 term3_tns = vcat ([p_prev, q_prev, prime (dag (p_cur)), prime (dag (q_cur)), gate], envs)
423- term3 = ITensors. contract (term3_tns; sequence= optimal_contraction_sequence (term3_tns) )
422+ term3 = ITensors. contract (term3_tns; sequence= " automatic " )
424423
425424 f = term3[] / sqrt (term1[] * term2[])
426425 return f * conj (f)
@@ -447,37 +446,13 @@ function optimise_p_q(
447446 qs_ind = setdiff (inds (q_cur), collect (Iterators. flatten (inds .(vcat (envs, p_cur)))))
448447 ps_ind = setdiff (inds (p_cur), collect (Iterators. flatten (inds .(vcat (envs, q_cur)))))
449448
450- opt_b_seq = optimal_contraction_sequence (vcat (ITensor[p, q, o, dag (prime (q_cur))], envs))
451- opt_b_tilde_seq = optimal_contraction_sequence (
452- vcat (ITensor[p, q, o, dag (prime (p_cur))], envs)
453- )
454- opt_M_seq = optimal_contraction_sequence (
455- vcat (ITensor[q_cur, replaceinds (prime (dag (q_cur)), prime (qs_ind), qs_ind), p_cur], envs)
456- )
457- opt_M_tilde_seq = optimal_contraction_sequence (
458- vcat (ITensor[p_cur, replaceinds (prime (dag (p_cur)), prime (ps_ind), ps_ind), q_cur], envs)
459- )
460-
461- function b (
462- p:: ITensor ,
463- q:: ITensor ,
464- o:: ITensor ,
465- envs:: Vector{ITensor} ,
466- r:: ITensor ;
467- opt_sequence= nothing ,
468- )
449+ function b (p:: ITensor , q:: ITensor , o:: ITensor , envs:: Vector{ITensor} , r:: ITensor ;)
469450 return noprime (
470- ITensors. contract (vcat (ITensor[p, q, o, dag (prime (r))], envs); sequence= opt_sequence )
451+ ITensors. contract (vcat (ITensor[p, q, o, dag (prime (r))], envs); sequence= " automatic " )
471452 )
472453 end
473454
474- function M_p (
475- envs:: Vector{ITensor} ,
476- p_q_tensor:: ITensor ,
477- s_ind,
478- apply_tensor:: ITensor ;
479- opt_sequence= nothing ,
480- )
455+ function M_p (envs:: Vector{ITensor} , p_q_tensor:: ITensor , s_ind, apply_tensor:: ITensor ;)
481456 return noprime (
482457 ITensors. contract (
483458 vcat (
@@ -488,20 +463,20 @@ function optimise_p_q(
488463 ],
489464 envs,
490465 );
491- sequence= opt_sequence ,
466+ sequence= " automatic " ,
492467 ),
493468 )
494469 end
495470 for i in 1 : nfullupdatesweeps
496- b_vec = b (p, q, o, envs, q_cur; opt_sequence = opt_b_seq )
497- M_p_partial = partial (M_p, envs, q_cur, qs_ind; opt_sequence = opt_M_seq )
471+ b_vec = b (p, q, o, envs, q_cur)
472+ M_p_partial = partial (M_p, envs, q_cur, qs_ind)
498473
499474 p_cur, info = linsolve (
500475 M_p_partial, b_vec, p_cur; isposdef= envisposdef, ishermitian= false
501476 )
502477
503- b_tilde_vec = b (p, q, o, envs, p_cur; opt_sequence = opt_b_tilde_seq )
504- M_p_tilde_partial = partial (M_p, envs, p_cur, ps_ind; opt_sequence = opt_M_tilde_seq )
478+ b_tilde_vec = b (p, q, o, envs, p_cur)
479+ M_p_tilde_partial = partial (M_p, envs, p_cur, ps_ind)
505480
506481 q_cur, info = linsolve (
507482 M_p_tilde_partial, b_tilde_vec, q_cur; isposdef= envisposdef, ishermitian= false
0 commit comments