@@ -150,7 +150,7 @@ function trace{T}(A::Matrix{T})
150150 t
151151end
152152
153- function kron {T,S} (a:: Matrix {T} , b:: Matrix {S} )
153+ function kron {T,S} (a:: AbstractMatrix {T} , b:: AbstractMatrix {S} )
154154 R = Array (promote_type (T,S), size (a,1 )* size (b,1 ), size (a,2 )* size (b,2 ))
155155 m = 1
156156 for j = 1 : size (a,2 ), l = 1 : size (b,2 ), i = 1 : size (a,1 )
@@ -163,11 +163,11 @@ function kron{T,S}(a::Matrix{T}, b::Matrix{S})
163163 R
164164end
165165
166- kron (a:: Number , b:: Union{Number, Vector, Matrix } ) = a * b
167- kron (a:: Union{Vector, Matrix} , b:: Number ) = a * b
168- kron (a:: Vector , b:: Vector )= vec (kron (reshape (a,length (a),1 ),reshape (b,length (b),1 )))
169- kron (a:: Matrix , b:: Vector )= kron (a,reshape (b,length (b),1 ))
170- kron (a:: Vector , b:: Matrix )= kron (reshape (a,length (a),1 ),b)
166+ kron (a:: Number , b:: Union{Number, AbstractVecOrMat } ) = a * b
167+ kron (a:: AbstractVecOrMat , b:: Number ) = a * b
168+ kron (a:: AbstractVector , b:: AbstractVector )= vec (kron (reshape (a,length (a),1 ),reshape (b,length (b),1 )))
169+ kron (a:: AbstractMatrix , b:: AbstractVector )= kron (a,reshape (b,length (b),1 ))
170+ kron (a:: AbstractVector , b:: AbstractMatrix )= kron (reshape (a,length (a),1 ),b)
171171
172172^ (A:: Matrix , p:: Integer ) = p < 0 ? inv (A^- p) : Base. power_by_squaring (A,p)
173173
0 commit comments