willow-ahrens / Finch.jl

Sparse tensors in Julia and more! Datastructure-driven array programing language.
http://willowahrens.io/Finch.jl/
MIT License
158 stars 15 forks source link

Error for `SparseBand` in `copyto!` #443

Closed mtsokol closed 6 months ago

mtsokol commented 6 months ago

Hi @willow-ahrens,

I continue to work on tests for similar in the new constructors suite, and I came across such issue:

using Finch

fbr = Tensor(Dense(SparseBand(Element(0))), Matrix(reshape(1:25, (5, 5))))
new_fbr = Tensor(Dense(SparseBand(Element(0), 5), 5))

copyto!(new_fbr, fbr)

which results in:

ERROR: UndefVarError: `src_lvl_2_i` not defined
Stacktrace:
  [1] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/tensors/levels/sparsebandlevels.jl:285 [inlined]
  [2] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/environment.jl:282 [inlined]
  [3] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/looplets/lookups.jl:86 [inlined]
  [4] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/environment.jl:50 [inlined]
  [5] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/execute.jl:67 [inlined]
  [6] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/environment.jl:80 [inlined]
  [7] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/util/util.jl:80 [inlined]
  [8] execute(ex::Finch.FinchNotation.BlockInstance{Tuple{…}}, opts::@NamedTuple{mode::Finch.FastFinch})
    @ Finch ~/JuliaProjects/Finch.jl/src/util/util.jl:72
  [9] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/execute.jl:176 [inlined]
 [10] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/interface/copy.jl:7 [inlined]
 [11] macro expansion
    @ ~/JuliaProjects/Finch.jl/src/util/util.jl:80 [inlined]
 [12] copyto_helper!
    @ ~/JuliaProjects/Finch.jl/src/util/util.jl:72 [inlined]
 [13] copyto!(dst::Tensor{DenseLevel{Int64, SparseBandLevel{…}}}, src::Tensor{DenseLevel{Int64, SparseBandLevel{…}}})
    @ Finch ~/JuliaProjects/Finch.jl/src/interface/copy.jl:18

For other formats this copyto! runs as expected.

willow-ahrens commented 6 months ago

Sorry about that! I'm on it