@@ -151,11 +151,25 @@ LinearAlgebra.issymmetric(a::SHermitianCompact) = true
151
151
end
152
152
end
153
153
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)
159
173
160
174
@generated function _plus_uniform (:: Size{S} , a:: SHermitianCompact{N, T, L} , λ) where {S, N, T, L}
161
175
@assert S[1 ] == N
0 commit comments