From 0dfbc8adbb8047ece1fca5ad385bc7f0aceb1695 Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Wed, 22 Feb 2012 00:19:55 -0500 Subject: [PATCH] fixing vector*matrix --- j/linalg.j | 14 +------------- j/linalg_blas.j | 22 ---------------------- 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/j/linalg.j b/j/linalg.j index ce757891a0929..c2531d6392ae3 100644 --- a/j/linalg.j +++ b/j/linalg.j @@ -34,20 +34,8 @@ function (*){T,S}(A::AbstractMatrix{T}, B::AbstractVector{S}) return C end -# TODO: support transposed arguments function (*){T,S}(A::AbstractVector{S}, B::AbstractMatrix{T}) - nA = size(A, 1) - nB = size(B, 2) - R = promote_type(T,S) - C = Array(R, nB) - for j = 1:nB - s = zero(R) - for i = 1:nA - s += A[i] * B[i, j] - end - C[j] = s - end - return C + return reshape(A,length(A),1)*B end # TODO: support transposed arguments diff --git a/j/linalg_blas.j b/j/linalg_blas.j index 17d5f0c4c640d..ee9f7e68a0237 100644 --- a/j/linalg_blas.j +++ b/j/linalg_blas.j @@ -284,25 +284,3 @@ function (*){T<:Union(Float64,Float32,Complex128,Complex64)}(A::StridedMatrix{T} zero(T), Y, 1) return Y end - -# TODO: support transposed arguments -function (*){T<:Union(Float64,Float32,Complex128,Complex64)}(X::StridedVector{T}, - A::StridedMatrix{T}) - nX = size(X, 1) - (mA, nA) = size(A) - - if mA != nX; error("*: argument shapes do not match"); end - - if stride(A, 1) != 1 - return invoke(*, (AbstractVector, AbstractMatrix), X, A) - end - - # Result array does not need to be initialized as long as beta==0 - Y = Array(T, nA) - - _jl_blas_gemv("T", mA, nA, - one(T), A, stride(A, 2), - X, stride(X, 1), - zero(T), Y, 1) - return Y -end