-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
using BlockArrays: Block, mortar
using GradedArrays.GradedUnitRanges: gradedrange
using GradedArrays.SymmetrySectors: U1
indices = mortar([[Block(1)]])
v = gradedrange([U1(1) => 1])[indices]
Int.(v)
ERROR: MethodError: no method matching subblocks(::BlockVector{Int64, Vector{…}, Tuple{…}}, ::Tuple{GradedArrays.GradedUnitRanges.GradedOneTo{…}}, ::Int64)
The function `subblocks` exists, but no method is defined for this combination of argument types.
Closest candidates are:
subblocks(::AbstractArray, ::NTuple{N, AbstractUnitRange{Int64}}, ::Integer) where N
@ BlockArrays ~/Documents/itensor/BlockArrays.jl/src/blockbroadcast.jl:119
subblocks(::Any, ::NTuple{N, AbstractUnitRange{Int64}}, ::Integer) where N
@ BlockArrays ~/Documents/itensor/BlockArrays.jl/src/blockbroadcast.jl:116
Stacktrace:
[1] (::BlockArrays.var"#58#63"{BlockVector{…}, Base.Broadcast.Broadcasted{…}, Tuple{…}})(dim::Int64)
@ BlockArrays ~/Documents/itensor/BlockArrays.jl/src/blockbroadcast.jl:149
[2] ntuple
@ ./ntuple.jl:19 [inlined]
[3] _generic_blockbroadcast_copyto!(dest::BlockVector{…}, bc::Base.Broadcast.Broadcasted{…})
@ BlockArrays ~/Documents/itensor/BlockArrays.jl/src/blockbroadcast.jl:148
[4] copyto!(dest::BlockVector{…}, bc::Base.Broadcast.Broadcasted{…})
@ BlockArrays ~/Documents/itensor/BlockArrays.jl/src/blockbroadcast.jl:189
[5] copy
@ ./broadcast.jl:897 [inlined]
[6] materialize(bc::Base.Broadcast.Broadcasted{BlockArrays.BlockStyle{1}, Nothing, Type{Int64}, Tuple{BlockVector{…}}})
@ Base.Broadcast ./broadcast.jl:872
[7] top-level scope
@ REPL[7]:1
Some type information was truncated. Use `show(err)` to see complete types.
The cause is a restriction to Int
eltype in BlockArrays.jl
, specifically in
# BlockArrays.jl/src/blockbroadcast.jl:119
function subblocks(arr::AbstractArray, bs::NTuple{N,AbstractUnitRange{Int}}, dim::Integer) where N
and
# BlockArrays.jl/src/blockbroadcast.jl:103
SubBlockIterator(arr::AbstractArray, bs::NTuple{N,AbstractUnitRange{Int}}, dim::Integer) where N
@mtfishman you already worked on such restrictions in JuliaArrays/BlockArrays.jl#405. Do you have an idea if there is a specific reason for these restrictions? I can make a PR to BlockArrays.jl
to remove them.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working