Skip to content

[WIP] Move to GradedArrays 0.16 and TensorAlgebra 0.19.3, simplify named broadcasting - #243

Draft
mtfishman wants to merge 9 commits into
mainfrom
mf/gradedarrays-0.16
Draft

[WIP] Move to GradedArrays 0.16 and TensorAlgebra 0.19.3, simplify named broadcasting#243
mtfishman wants to merge 9 commits into
mainfrom
mf/gradedarrays-0.16

Conversation

@mtfishman

@mtfishman mtfishman commented Aug 6, 2026

Copy link
Copy Markdown
Member

Summary

Moves ITensorBase onto GradedArrays 0.16 and TensorAlgebra 0.19.3, and reworks named-tensor broadcasting so a 1-arg linear broadcast (2 .* a, conj.(a)) keeps its codomain/domain split.

TODO

  • Drop the [sources] pin once GradedArrays 0.16 registers

mtfishman and others added 3 commits August 6, 2026 15:02
Bumps the compat bounds to the GradedArrays 0.16 and TensorAlgebra 0.19 breaking releases, which needs no source changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Draft-only [sources] pin to the unregistered GradedArrays 0.16 branch. Remove once it registers.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Named-tensor broadcasting now unwraps names and forwards to unnamed broadcasting, with linear-combination allocation handled by TensorAlgebra's broadcast `similar` instead of a prototype threaded through ITensorBase.
@mtfishman mtfishman changed the title [WIP] Support GradedArrays 0.16 and TensorAlgebra 0.19 [WIP] Move to GradedArrays 0.16 and TensorAlgebra 0.19.3, simplify named broadcasting Aug 16, 2026
@codecov

codecov Bot commented Aug 16, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.15385% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 75.18%. Comparing base (5e9266b) to head (471e454).

Files with missing lines Patch % Lines
src/broadcast.jl 96.15% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #243      +/-   ##
==========================================
- Coverage   77.86%   75.18%   -2.69%     
==========================================
  Files          30       29       -1     
  Lines        1812     1797      -15     
==========================================
- Hits         1411     1351      -60     
- Misses        401      446      +45     
Flag Coverage Δ
docs 26.23% <65.38%> (+0.01%) ⬆️

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 5 commits August 16, 2026 20:06
A 1-arg linear broadcast (`2 .* a`, `a ./ norm(a)`) now preserves the operand's codomain/domain split, and named broadcasting is now linear-only. A non-linear `f.(a)` errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replaces the per-node unname recursion with a generic `operation`/`arguments` tree-walk over `LinearBroadcasted`, so a new node type needs no new unname method.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restore the non-linear fallback (`unnamed_broadcasted`) so a general element-wise `f.(a)` still routes through Base's generic broadcast, and drop the version to a non-breaking patch bump.
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