Conversation
Codecov Report❌ Patch coverage is
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
TensorKit v0.17.2 (#515) requires every `GradedSpace` to be homogeneously
colored, forbids `unitspace` for `GenericUnit` sectors and checks coloring
when building `ProductSpace`/`HomSpace`. This broke the multifusion `SumSpace`
tests, which flattened heterogeneous sums into a single `GradedSpace`.
- `unitspace(::Type{<:SumSpace})` returns one component per simple unit
- `leftunitspace`/`rightunitspace` inspect components instead of flattening
- `_leftrightunit(::SumSpace)` uses the shared unit, or a wildcard if components differ
- tests use `⊞` instead of flattening `⊕`, and expect incompatible products to throw
- require TensorKit v0.17.2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The previous fix let leftunitspace/rightunitspace answer for a SumSpace whose components agreed on only one side (left xor right), by checking each side independently and treating disagreement on the other side as a wildcard. That's inconsistent with how a plain GradedSpace works: it is either homogeneously colored (single left AND right unit shared by every sector) or invalid. A SumSpace should follow the same rule as a whole, so leftunitspace/rightunitspace/_leftrightunit again require full agreement on both sides and reject (SpaceMismatch) otherwise, without any special-casing for a partial match. unitspace itself is unaffected by this: TensorKit already forbids it at the type level for GenericUnit sector types, regardless of any given instance's homogeneity, so it throws ArgumentError unconditionally for IsingBimodule-sectored spaces, homogeneous or not. The Multifusion testset is adjusted to expect this throughout, rather than the previous attempt to give unitspace a real answer for such sector types.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BlockTensorKit.jl v0.3.19
Patch release fixing a silent data-loss bug in permuted contractions into sparse block tensors.
Highlights
TensorKit0.17.2 changed its internals around indexmanipulations (_braid!to call a 9-argumentTensorKit.add_transform!). BlockTensorKit 0.3.18 only overrode the older 8-argument signature for these internals, therefore breaking on a patch release. Fixed by interceptingTO.tensoradd!directly instead ofTensorKit.add_transform!(InterceptTO.tensoradd!instead ofTensorKit.add_transform!#78).Full Changelog
v0.3.18...v0.3.19