Skip to content

axpby! no longer works with Hermitian matrices #919

@KristofferC

Description

@KristofferC
using LinearAlgebra
a = rand(5,5)
A = Hermitian(a' * a)
B = similar(a)
LinearAlgebra.BLAS.axpby!(1, A, 1.0, B)

1.7:

julia> LinearAlgebra.BLAS.axpby!(1, A, 1.0, B)
5×5 Matrix{Float64}:
 1.66822   1.02419   0.774382  1.26736   1.48034

1.8:

julia> LinearAlgebra.BLAS.axpby!(1, A, 1.0, B)
ERROR: MethodError: no method matching strides(::Hermitian{Float64, Matrix{Float64}})
Closest candidates are:
  strides(::SubArray) at subarray.jl:356
  strides(::Base.ReinterpretArray{T, N, S, A, true} where {T, N, S, A<:(AbstractArray{S})}) at reinterpretarray.jl:155
  strides(::Base.ReinterpretArray{T, N, S, A, false} where {T, N, S, A<:AbstractArray{S, N}}) at reinterpretarray.jl:165
  ...
Stacktrace:
 [1] vec_pointer_stride
   @ ~/julia/usr/share/julia/stdlib/v1.8/LinearAlgebra/src/blas.jl:173 [inlined]
 [2] vec_pointer_stride
   @ ~/julia/usr/share/julia/stdlib/v1.8/LinearAlgebra/src/blas.jl:172 [inlined]
 [3] axpby!(alpha::Int64, x::Hermitian{Float64, Matrix{Float64}}, beta::Float64, y::Matrix{Float64})
   @ LinearAlgebra.BLAS ~/julia/usr/share/julia/stdlib/v1.8/LinearAlgebra/src/blas.jl:590
 [4] top-level scope
   @ REPL[9]:1

Probably introduced in JuliaLang/julia#42957. cc @N5N3

Metadata

Metadata

Assignees

No one assigned

    Labels

    regressionRegression in behavior compared to a previous version

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions