@@ -151,11 +151,25 @@ LinearAlgebra.issymmetric(a::SHermitianCompact) = true
151151 end
152152end
153153
154- @inline Base.:* (a:: Number , b:: SHermitianCompact ) = SHermitianCompact (a * b. lowertriangle)
155- @inline Base.:* (a:: SHermitianCompact , b:: Number ) = SHermitianCompact (a. lowertriangle * b)
156-
157- @inline Base.:/ (a:: SHermitianCompact , b:: Number ) = SHermitianCompact (a. lowertriangle / b)
158- @inline Base.:\ (a:: Number , b:: SHermitianCompact ) = SHermitianCompact (a \ b. lowertriangle)
154+ @inline Base.:* (a:: Real , b:: SHermitianCompact ) = SHermitianCompact (a * b. lowertriangle)
155+ @inline Base.:* (a:: SHermitianCompact , b:: Real ) = SHermitianCompact (a. lowertriangle * b)
156+ @inline Base.:* (a:: Number , b:: SHermitianCompact ) = a * SMatrix (b)
157+ @inline Base.:* (a:: SHermitianCompact , b:: Number ) = SMatrix (a) * b
158+
159+ @inline Base.:/ (a:: SHermitianCompact , b:: Real ) = SHermitianCompact (a. lowertriangle / b)
160+ @inline Base.:\ (a:: Real , b:: SHermitianCompact ) = SHermitianCompact (a \ b. lowertriangle)
161+ @inline Base.:/ (a:: SHermitianCompact , b:: Number ) = SMatrix (a) / b
162+ @inline Base.:\ (a:: Number , b:: SHermitianCompact ) = a \ SMatrix (b)
163+
164+ @inline Base. muladd (scalar:: Number , a:: SHermitianCompact , b:: StaticArray ) = muladd (scalar, SMatrix (a), b)
165+ @inline Base. muladd (a:: SHermitianCompact , scalar:: Number , b:: StaticArray ) = muladd (SMatrix (a), scalar, b)
166+ @inline Base. muladd (scalar:: Real , a:: SHermitianCompact , b:: StaticArray ) = map ((ai, bi) -> muladd (scalar, ai, bi), a, b)
167+ @inline Base. muladd (a:: SHermitianCompact , scalar:: Real , b:: StaticArray ) = map ((ai, bi) -> muladd (ai, scalar, bi), a, b)
168+
169+ @inline Base. FastMath. mul_fast (a:: Number , b:: SHermitianCompact ) = Base. FastMath. mul_fast (a, SMatrix (b))
170+ @inline Base. FastMath. mul_fast (a:: SHermitianCompact , b:: Number ) = Base. FastMath. mul_fast (SMatrix (a), b)
171+ @inline Base. FastMath. mul_fast (a:: Real , b:: SHermitianCompact ) = map (c -> Base. FastMath. mul_fast (a, c), b)
172+ @inline Base. FastMath. mul_fast (a:: SHermitianCompact , b:: Real ) = map (c -> Base. FastMath. mul_fast (c, b), a)
159173
160174@generated function _plus_uniform (:: Size{S} , a:: SHermitianCompact{N, T, L} , λ) where {S, N, T, L}
161175 @assert S[1 ] == N
0 commit comments