Skip to content

Conversation

@araujoms
Copy link
Contributor

Closes #161

This changes from algorithm 12 to algorithm 10, causing a slight loss of precision in order to gain commutativity. I think it's worth it; of course, you might disagree. In this case feel free to close the PR, no hard feelings.

@codecov
Copy link

codecov bot commented Mar 26, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 50.25%. Comparing base (ee66f4f) to head (07d6c3d).
Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #211   +/-   ##
=======================================
  Coverage   50.25%   50.25%           
=======================================
  Files          63       63           
  Lines        3536     3536           
=======================================
  Hits         1777     1777           
  Misses       1759     1759           

☔ 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.

@JeffreySarnoff
Copy link
Member

Certainly appreciated.

@JeffreySarnoff
Copy link
Member

Originally, I pushed accuracy over algebra. However, with multiplication and e.g. horner expressions, commutativity helps avoid errors. I guess that is worth 2ulp. I am considering this. If you hear nothing by tomorrow -- remind me.

@araujoms
Copy link
Contributor Author

I'm happy to hear that. I did this because I need z*conj(z) to be exactly real, which is not the case with non-commutative multiplication.

@JeffreySarnoff JeffreySarnoff merged commit 89b1073 into JuliaMath:main Mar 26, 2025
7 checks passed
@JeffreySarnoff
Copy link
Member

JeffreySarnoff commented Mar 26, 2025 via email

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.

Float64, Double64 and BigFloat behave differently in dot products

2 participants