diff --git a/stdlib/LinearAlgebra/src/generic.jl b/stdlib/LinearAlgebra/src/generic.jl index 67e1613dd73d4..cbcff013088bd 100644 --- a/stdlib/LinearAlgebra/src/generic.jl +++ b/stdlib/LinearAlgebra/src/generic.jl @@ -386,11 +386,11 @@ function cross(a::AbstractVector, b::AbstractVector) if !(length(a) == length(b) == 3) throw(DimensionMismatch("cross product is only defined for vectors of length 3")) end - collect(cross((a[1], a[2], a[3]), (b[1], b[2], b[3]))) -end -function cross(a::Tuple{Vararg{Any, 3}}, b::Tuple{Vararg{Any, 3}}) a1, a2, a3 = a b1, b2, b3 = b + collect(cross((a1, a2, a3), (b1, b2, b3))) +end +function cross((a1, a2, a3)::Tuple{Vararg{Any, 3}}, (b1, b2, b3)::Tuple{Vararg{Any, 3}}) (a2*b3-a3*b2, a3*b1-a1*b3, a1*b2-a2*b1) end