692
692
# the aggressive constprop pushes tA and tB into gemm_wrapper!, which is needed for wrap calls within it
693
693
# to be concretely inferred
694
694
Base. @constprop :aggressive function syrk_wrapper! (C:: StridedMatrix{T} , tA:: AbstractChar , A:: StridedVecOrMat{T} ,
695
- alpha :: Number , beta :: Number ) where {T<: BlasFloat }
695
+ α :: Number , β :: Number ) where {T<: BlasFloat }
696
696
nC = checksquare (C)
697
697
tA_uc = uppercase (tA) # potentially convert a WrapperChar to a Char
698
698
if tA_uc == ' T'
@@ -708,16 +708,16 @@ Base.@constprop :aggressive function syrk_wrapper!(C::StridedMatrix{T}, tA::Abst
708
708
709
709
# BLAS.syrk! only updates symmetric C
710
710
# alternatively, make non-zero β a show-stopper for BLAS.syrk!
711
- if iszero (beta ) || issymmetric (C)
712
- α, β = promote (alpha, beta , zero (T))
711
+ if iszero (β ) || issymmetric (C)
712
+ alpha, beta = promote (α, β , zero (T))
713
713
if (alpha isa Union{Bool,T} &&
714
714
beta isa Union{Bool,T} &&
715
715
stride (A, 1 ) == stride (C, 1 ) == 1 &&
716
716
_fullstride2 (A) && _fullstride2 (C))
717
717
return copytri! (BLAS. syrk! (' U' , tA, alpha, A, beta, C), ' U' )
718
718
end
719
719
end
720
- return gemm_wrapper! (C, tA, tAt, A, A, alpha, beta )
720
+ return gemm_wrapper! (C, tA, tAt, A, A, α, β )
721
721
end
722
722
# legacy method
723
723
syrk_wrapper! (C:: StridedMatrix{T} , tA:: AbstractChar , A:: StridedVecOrMat{T} , _add:: MulAddMul = MulAddMul ()) where {T<: BlasFloat } =
@@ -743,7 +743,7 @@ Base.@constprop :aggressive function herk_wrapper!(C::Union{StridedMatrix{T}, St
743
743
# Result array does not need to be initialized as long as beta==0
744
744
# C = Matrix{T}(undef, mA, mA)
745
745
746
- if iszero (β) || issymmetric (C)
746
+ if iszero (β) || ishermitian (C)
747
747
alpha, beta = promote (α, β, zero (T))
748
748
if (alpha isa Union{Bool,T} &&
749
749
beta isa Union{Bool,T} &&
0 commit comments