Skip to content

Use the asymmetric Gram root for the BP simple-update gauge - #204

Merged
mtfishman merged 5 commits into
mainfrom
mf/bp-asymmetric-root
Oct 7, 2026
Merged

mtfishman merged 5 commits into
mainfrom
mf/bp-asymmetric-root

Conversation

@mtfishman

@mtfishman mtfishman commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Summary

Gauges each bond by the asymmetric root of its message and its inverse rather than the symmetric root, which keeps the truncation optimal for a non-Hermitian environment. The inverse is twisted so it inverts under contraction rather than under the bare matrix product.

Gauges each bond by the asymmetric root of its message and its inverse, rather than the symmetric root, which keeps the truncation optimal for a non-Hermitian environment. The inverse factor is twisted so that it inverts the forward factor under contraction rather than under the bare matrix product.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.81%. Comparing base (df101c4) to head (24c7419).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #204      +/-   ##
==========================================
+ Coverage   88.65%   88.81%   +0.15%     
==========================================
  Files          17       17              
  Lines         714      724      +10     
==========================================
+ Hits          633      643      +10     
  Misses         81       81              
Flag Coverage Δ
docs 0.00% <0.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

mtfishman and others added 4 commits October 7, 2026 09:15
Calls the operator-level root `message_gauge`, since that is the layer that knows its argument is a bond message, and moves the Hermitian projection the call sites were each doing into it. The two generic layers keep the `gram_root_invroot` name, which describes the factorization rather than the use.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Keeps one name for the operation across its matrix, named-tensor and operator layers, rather than naming the lower two after the factorization that implements them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Takes the bond indices directly, through `inputinds`, instead of looking names up and dualizing them by hand at the one call site that knew the convention.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mtfishman mtfishman changed the title [WIP] Use the asymmetric Gram root for the BP simple-update gauge Use the asymmetric Gram root for the BP simple-update gauge Oct 7, 2026
@mtfishman
mtfishman marked this pull request as ready for review October 7, 2026 17:36
@mtfishman
mtfishman enabled auto-merge (squash) October 7, 2026 17:36
@mtfishman
mtfishman merged commit b98db7a into main Oct 7, 2026
26 of 28 checks passed
@mtfishman
mtfishman deleted the mf/bp-asymmetric-root branch October 7, 2026 18:04
jack-dunham pushed a commit to jack-dunham/ITensorNetworksNext.jl that referenced this pull request Oct 8, 2026
Upstream's ITensor#204 replaced the symmetric √message gauge with `message_gauge`'s asymmetric
Gram root. `bp_gate_factorize!` now absorbs each root `x` with `x * ψ` and returns the
inverse roots `y`, which `bp_gate_restore!` contracts back in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jack-dunham pushed a commit to jack-dunham/ITensorNetworksNext.jl that referenced this pull request Oct 8, 2026
Upstream's ITensor#204 replaced the symmetric √message gauge with `message_gauge`'s asymmetric
Gram root. `bp_gate_factorize!` now absorbs each root `x` with `x * ψ` and returns the
inverse roots `y`, which `bp_gate_restore!` contracts back in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant