# Backslash operator "\\" works differently in REPL versus in function?

**URL:** <https://discourse.julialang.org/t/backslash-operator-works-differently-in-repl-versus-in-function/72318>\
**Category:** Performance\
**Created:** [November 30, 2021, 8:11pm UTC](https://discourse.julialang.org/t/backslash-operator-works-differently-in-repl-versus-in-function/72318 "2021-11-30T20:11:01Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![GlenHenshaw](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/glenhenshaw/32/5269_2.png) [@GlenHenshaw](https://discourse.julialang.org/u/GlenHenshaw)\
**Post date:** [November 30, 2021, 8:11pm UTC](https://discourse.julialang.org/t/backslash-operator-works-differently-in-repl-versus-in-function/72318/1 "2021-11-30T20:11:01Z")

</div>

I have two Array{Float32,2} variables, X1 and X2. Both are 5 by 949.

In the REPL, this works:

```
Julia> X2\X1
949x949 Array{Float32,2}:
<lots of stuff>

```

which is what I expect and want.

but doing the exact same operation inside a function:

```
function mydiv(X1,X2)

    K=X2\X1
end

```

gives

```
ERROR: DimensionMismatch("second dimension of A, 949, does not match length of x, 5")
Stacktrace:
 [1] gemv!(::Array{Float32,1}, ::Char, ::Array{Float32,2}, ::Array{Float32,1}, ::Bool, ::Bool) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:456
 [2] mul! at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:66 [inlined]
 [3] mul! at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:208 [inlined]
 [4] *(::Array{Float32,2}, ::Array{Float32,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:47

```

What am I doing wrong here?

---

<div class="post-metadata">

**Author:** ![simonbyrne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simonbyrne/32/19_2.png) [@simonbyrne](https://discourse.julialang.org/u/simonbyrne)\
**Post date:** [November 30, 2021, 8:33pm UTC](https://discourse.julialang.org/t/backslash-operator-works-differently-in-repl-versus-in-function/72318/2 "2021-11-30T20:33:32Z")

</div>

Is that the full stacktrace? Also, 1.4 is quite an old version of Julia: do you see the same problem in 1.6?

---

<div class="post-metadata">

**Author:** ![aramirezreyes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aramirezreyes/32/42573_2.png) [@aramirezreyes](https://discourse.julialang.org/u/aramirezreyes)\
**Post date:** [November 30, 2021, 8:57pm UTC](https://discourse.julialang.org/t/backslash-operator-works-differently-in-repl-versus-in-function/72318/3 "2021-11-30T20:57:12Z")

</div>

For some reason it appears that you are trying to operate with one 1-dimensional array and one 2-dimensional array.  
`[4] *(::Array{Float32,2}, ::Array{Float32,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:47`

Could you triple check your inputs or provide the code that fails?

This works for me on v1.4.0:

```julia
julia> a = rand(5,949);

julia> b = rand(5,949);

julia> K = a\b;

julia> function mydiv(X1,X2)
           K=X2\X1
       end
mydiv (generic function with 1 method)

julia> K2 = mydiv(b,a);

julia> K == K2
true

```
