-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gemm! alias #202
Comments
Rather than special-casing particular BLAS functions, I think it would make more sense to define methods for the auxiliary functions used by the existing methods. For example, Base.strides(X::PDMat) = strides(X.mat)
Base.unsafe_convert(::Type{Ptr{T}}, X::PDMat{T}) where {T} = Base.unsafe_convert(Ptr{T}, X.mat) |
Agree that's much better! |
At least as written, what I wrote before isn't generic because the So all that is to say, I think it would have to go in |
The product of two symmetric matrices is generally not symmetric julia> A = randn(3,3) |> t -> t't
3×3 Matrix{Float64}:
0.276842 -0.0227288 0.31778
-0.0227288 1.82429 1.71879
0.31778 1.71879 2.08469
julia> B = randn(3,3) |> t -> t't
3×3 Matrix{Float64}:
1.17375 -1.0618 -2.01181
-1.0618 1.01923 1.72527
-2.01181 1.72527 5.20746
julia> A*B
3×3 Matrix{Float64}:
-0.290238 0.23114 1.05866
-5.4216 4.84889 12.1436
-5.64603 5.01109 13.182 and therefore cannot be a Futhermore, the BLAS nomenclature "GE" means general as in "no structure" so I don't think it would make sense to overload |
Ah right, math... I think |
love the package!
BLAS.gemm!
fails for anyPDMat
arguments unless you passa.mat
.Maybe something like could be more general:
Benchmarks seem to run just as fast.
minimal example:
The text was updated successfully, but these errors were encountered: