Revision 7615d4c71ebba09ad747b6870f88ace062d52b9a authored by Takafumi Arakaki on 14 August 2019, 21:32:00 UTC, committed by Andreas Noack on 14 August 2019, 21:32:00 UTC
* Multiply-add interface for BLAS.herk!

* Multiply-add interface for BLAS.syrk!

* Multiply-add interface for gemv!

* Fix UndefRefError from C[i,j]

It may not be defined for Matrix{BigFloat}.

* Multiply-add interface for BLAS.gemm!

* Do not assume *(::Bool, ::eltype(C)) exists

* Test multiply-add interface

* Implement mul! in terms of addmul!

* Document addmul!

* Add multiply-add interface for symmetric matrices

* Add multiply-add interface for Number and UniformScaling

* Use lmul! for beta * C; eltype may not be commutative

* Add _lmul_or_fill!

* Add multiply-add interface for diagonal matrices

* Add multiply-add interface for bi- and tri-diagonal matrices

* Add multiply-add interface for triangular matrices

* Test multiply-add interface in test/generic.jl

* Fix addmul!(C, s::Number, X, alpha, beta)

and addmul!(C, X, s::Number, alpha, beta)

* Special-case alpha=1 beta=0 using type parameter

* Test multiply-add interface in test/uniformscaling.jl

* Test multiply-add interface in test/diagonal.jl

* Use addmul! in SparseArrays

* Systematically test addmul!

* Make MulAddMul benchmark-friendly

* Fix _modify! docstring

* Use MulAddMul in A_mul_B_td!

* Comment out broken test_broken

* Relax rtol based on eltype of matrices A, B, C

* Pass around MulAddMul instead of alpha and beta for type stability

* Inline functions between *(::Matrix, ::Matrix) and gemm_wrapper!

This is required for recovering the performance of current master.
Checked with:

    A = [1. 0; 2 0]
    @benchmark $A * $A

* Annotate argument type MulAddMul

* Inline all addmul!

* Construct MulAddMul outside A_mul_B_td!

* Add multiply-add interface in test/tridiag.jl

* Mention combined multiply-add in NEWS.md [ci skip]

* Mention that mul!(C, A, B, α, β) is deprecated [ci skip]

* Change API definition to C = ABα + Cβ

* Fix indentation

* Fix triangular.jl

* Fix UndefRefError in multiplication with Diagonal

* Define Base.convert(::Type{Quaternion{T}}, s::Real)

This is required for testset "* and mul! for non-commutative scaling"
in LinearAlgebra/test/generic.jl to pass.

* Rename: addmul! -> mul!

* Fix doctest

* Workaround broadcast error with e.g., triangular matrix of BigFloat
1 parent f2c3d4d
History
File Mode Size
.github
base
contrib
deps
doc
etc
src
stdlib
test
ui
.appveyor.yml -rw-r--r-- 2.1 KB
.gitattributes -rw-r--r-- 67 bytes
.gitignore -rw-r--r-- 257 bytes
.mailmap -rw-r--r-- 11.0 KB
.travis.yml -rw-r--r-- 6.1 KB
CITATION.bib -rw-r--r-- 2.6 KB
CONTRIBUTING.md -rw-r--r-- 21.2 KB
HISTORY.md -rw-r--r-- 258.4 KB
LICENSE.md -rw-r--r-- 5.1 KB
Make.inc -rw-r--r-- 39.9 KB
Makefile -rw-r--r-- 28.1 KB
NEWS.md -rw-r--r-- 7.2 KB
README.md -rw-r--r-- 6.3 KB
VERSION -rw-r--r-- 12 bytes
sysimage.mk -rw-r--r-- 3.8 KB

README.md

back to top