JuliaLinearAlgebra / Octavian.jl

Multi-threaded BLAS-like library that provides pure Julia matrix multiplication
https://julialinearalgebra.github.io/Octavian.jl/stable/
Other
230 stars 18 forks source link

Specialize `_matmul!` on `ForwardDiff.Dual`s #117

Closed ranocha closed 2 years ago

ranocha commented 2 years ago

I implemented the "simple" versions of multiplications involving only one input with dual numbers since that's what I need right now. A specialization on two dual input arguments would be more involved and could be implemented later. With this PR, trying to call matmul! with two dual inputs will result in a method error, clarifying that this needs to be done.

This will probably not be the most efficient version since I just used @tturbo instead of more sophisticated techniques used in other parts of Octavian. However, it makes something work that threw an error before, so it's a first step to make it work. It could be sped up even further later.

Closes #116

ranocha commented 2 years ago

I guess you need to approve running CI explicitly since I haven't contributed to this repo before

codecov[bot] commented 2 years ago

Codecov Report

Merging #117 (0151a73) into master (9f56c5c) will increase coverage by 0.42%. The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #117      +/-   ##
==========================================
+ Coverage   86.60%   87.03%   +0.42%     
==========================================
  Files          11       13       +2     
  Lines         754      779      +25     
==========================================
+ Hits          653      678      +25     
  Misses        101      101              
Impacted Files Coverage Δ
src/Octavian.jl 100.00% <ø> (ø)
src/forward_diff.jl 100.00% <100.00%> (ø)
src/init.jl 70.83% <100.00%> (+1.26%) :arrow_up:
src/macrokernels.jl 89.55% <100.00%> (ø)
src/matmul.jl 91.30% <0.00%> (+0.05%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 9f56c5c...0151a73. Read the comment docs.

ranocha commented 2 years ago

All tests pass - should be fine, I think. I also bumped the version number

chriselrod commented 2 years ago

All tests pass - should be fine, I think. I also bumped the version number

Master is protected, so tests have to pass before I can merge (even though the only change since the last time they passed is the version number).