Skip to content

Conversation

dkarrasch
Copy link
Member

This was unnecessarily restrictive, and didn't handle, e.g., complex symmetric and quaternionic hermitian matrices.

@dkarrasch dkarrasch added the performance Must go faster label Aug 10, 2025
Copy link

codecov bot commented Aug 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.86%. Comparing base (1ffbf9d) to head (16daef9).
⚠️ Report is 15 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1410      +/-   ##
==========================================
- Coverage   93.89%   93.86%   -0.03%     
==========================================
  Files          34       34              
  Lines       15830    15838       +8     
==========================================
+ Hits        14864    14867       +3     
- Misses        966      971       +5     

☔ View full report in Codecov by Sentry.
📢 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.

@dkarrasch dkarrasch requested a review from stevengj August 10, 2025 10:01
@araujoms
Copy link
Collaborator

Your PR breaks the 3-argument dot product of Hermitian/Symmetric matrices of matrices, which currently works:

julia> m = Symmetric([randn(ComplexF64, 2, 2) for i in 1:2, j in 1:2]);

julia> x = [randn(ComplexF64, 2) for i in 1:2];

julia> y = [randn(ComplexF64, 2) for i in 1:2];

julia> dot(x,m,y)

@stevengj
Copy link
Member

I guess dot is not required to implement an inner product (even in the Hermitian case, we don't require positive-definiteness), so broadening it to complex-symmetric etcetera seems okay.

@stevengj
Copy link
Member

stevengj commented Aug 26, 2025

That being said, $x^* A y$ is a pretty unnatural operation to perform if $A = A^T$ is complex-symmetric. A more natural operation in that case would be $x^T A y$, i.e. the unconjugated dotu operation (julia#8300).

@dkarrasch
Copy link
Member Author

The complex-symmetric case is more like a byproduct. This is mostly about making the Hermitian case available to non-RealOrComplex. What you're saying, would that be a 3-arg dotu method?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Must go faster
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants