Add dual and isdual axis-duality generics#214
Merged
Conversation
## Summary Adds `dual` and `isdual` as TensorAlgebra-owned generics for querying and reversing an axis's arrow, with `AbstractUnitRange` fallbacks (`isdual` returns `false`, `dual` returns the range unchanged) since an ordinary range has no arrow to reverse. The `TensorAlgebraTensorKitExt` extension routes both to TensorKit's own space duality. This makes TensorAlgebra the ecosystem home for these functions, so GradedArrays and ITensorBase can extend and re-export them instead of each owning its own copy. Those downstream methods will land in follow-up PRs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #214 +/- ##
==========================================
- Coverage 81.61% 81.58% -0.03%
==========================================
Files 26 27 +1
Lines 990 994 +4
==========================================
+ Hits 808 811 +3
- Misses 182 183 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
mtfishman
enabled auto-merge (squash)
July 24, 2026 13:41
mtfishman
added a commit
that referenced
this pull request
Jul 24, 2026
## Summary Adds a `TensorAlgebraTensorKitSectorsExt` extension defining `dual` on a TensorKitSectors sector (its charge conjugation). This is the sector-level companion to the TensorKit space `dual` and `isdual` overloads added in #214, keeping all overloads of TensorAlgebra generics on TensorKitSectors types in a dedicated extension. GradedArrays will drop its own sector `dual` in favor of this one.
This was referenced Jul 24, 2026
Extend TensorAlgebra's
dual/isdual instead of defining GradedArrays' own
ITensor/GradedArrays.jl#219
Merged
mtfishman
added a commit
to ITensor/GradedArrays.jl
that referenced
this pull request
Jul 24, 2026
…ys' own (#219) ## Summary GradedArrays now extends the `dual` and `isdual` generics owned by TensorAlgebra (added in ITensor/TensorAlgebra.jl#214) rather than defining its own copies, and re-exports them. Its `SectorRange`, `SectorOneTo`, and `GradedOneTo` methods become `TensorAlgebra.dual` / `TensorAlgebra.isdual` overloads. The `dual` on a raw TensorKitSectors sector moves to `TensorAlgebraTensorKitSectorsExt` (ITensor/TensorAlgebra.jl#215) and `dual` on a TensorKit `ElementarySpace` moves to `TensorAlgebraTensorKitExt`, so both are dropped here. Bumps the TensorAlgebra compat floor to 0.17.9.
mtfishman
added a commit
to ITensor/ITensorBase.jl
that referenced
this pull request
Jul 24, 2026
## Summary Forwards the `dual` and `isdual` generics owned by TensorAlgebra (added in ITensor/TensorAlgebra.jl#214) through `NamedUnitRange`, so `isdual(index)` and `dual(index)` work directly on an `Index` instead of reaching into the wrapped range. Mirrors the existing `conj` forwarding. Bumps the TensorAlgebra compat floor to 0.17.8.
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.
Summary
Adds
dualandisdualas TensorAlgebra-owned generics for querying and taking the dual of an axis, withAbstractUnitRangefallbacks (isdualreturnsfalse,dualreturns the range unchanged) since an ordinary range has no distinct dual. TheTensorAlgebraTensorKitExtextension routes both to TensorKit's own space duality. This makes TensorAlgebra the ecosystem home for these functions, so GradedArrays and ITensorBase can extend and re-export them instead of each owning its own copy. Those downstream methods will land in follow-up PRs.