diff --git a/base/linalg/bidiag.jl b/base/linalg/bidiag.jl index 88d8e789292f8..dcf846d11f28d 100644 --- a/base/linalg/bidiag.jl +++ b/base/linalg/bidiag.jl @@ -262,7 +262,7 @@ function naivesub!{T}(A::Bidiagonal{T}, b::AbstractVector, x::AbstractVector = b x end -function \{T,S}(A::Bidiagonal{T}, B::StridedVecOrMat{S}) +function \{T,S}(A::Bidiagonal{T}, B::AbstractVecOrMat{S}) TS = typeof(zero(T)*zero(S) + zero(T)*zero(S)) TS == S ? A_ldiv_B!(A, copy(B)) : A_ldiv_B!(A, convert(AbstractArray{TS}, B)) end diff --git a/base/range.jl b/base/range.jl index ceae48b3f1d5f..55094ae93a56f 100644 --- a/base/range.jl +++ b/base/range.jl @@ -647,10 +647,6 @@ end ./(r::FloatRange, x::Real) = FloatRange(r.start/x, r.step/x, r.len, r.divisor) ./(r::LinSpace, x::Real) = LinSpace(r.start / x, r.stop / x, r.len, r.divisor) -# Matrix multiplication/solve on ranges, A*r should treat r as collected vector -*{T}(A::AbstractArray{T, 2}, r::Range) = A*collect(r) -\{T}(A::AbstractArray{T, 2}, r::Range) = A\collect(r) - promote_rule{T1,T2}(::Type{UnitRange{T1}},::Type{UnitRange{T2}}) = UnitRange{promote_type(T1,T2)} convert{T}(::Type{UnitRange{T}}, r::UnitRange{T}) = r diff --git a/test/ranges.jl b/test/ranges.jl index aa2df92d74fdb..b94bf4194fbb3 100644 --- a/test/ranges.jl +++ b/test/ranges.jl @@ -250,11 +250,6 @@ end @test all(([1:5;] - (1:5)) .== 0) @test all(((1:5) - [1:5;]) .== 0) -# matrix multiplication between matrix and range, e.g. A*r -@test [1 2 3;]*(1:3) == [14] -# and a matrix solve A\r -@test [1 0; 0 1]\linspace(1,2,2) ≈ [1., 2.] - # tricky floating-point ranges @test [0.1:0.1:0.3;] == [linspace(0.1,0.3,3);] == [1:3;]./10