Skip to content

More concise show for maps that combine many maps #197

@JeffFessler

Description

@JeffFessler

Here's just part of the show output for a LinearMap I've constructed for a dynamic MRI application here
https://juliaimagerecon.github.io/Examples/generated/mri/3-2d-t/
This toy example has just 8 frames; a real-world problem could have 100s of frames, so a BlockDiagonalMap with 100s of maps.
I'd propose that for any LinearMap type where there are more than, say, 4 maps combined, we just show the first two and last two with in between (or such). This is a minor and non-urgent issue but I hoped to get your thoughts before submitting a PR.

21504×30720 LinearMaps.BlockDiagonalMap{ComplexF64} with 8 diagonal block maps:
  2688×3840 LinearMaps.BlockMap{ComplexF64} with 2 block maps in 2 block rows
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
  2688×3840 LinearMaps.BlockMap{ComplexF64} with 2 block maps in 2 block rows
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
  2688×3840 LinearMaps.BlockMap{ComplexF64} with 2 block maps in 2 block rows
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
  2688×3840 LinearMaps.BlockMap{ComplexF64} with 2 block maps in 2 block rows
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
  2688×3840 LinearMaps.BlockMap{ComplexF64} with 2 block maps in 2 block rows
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)
    1344×3840 LinearMaps.CompositeMap{ComplexF64} with 2 maps:
      3840×3840 LinearMaps.WrappedMap{ComplexF32} of
        3840×3840 Diagonal{ComplexF32, Base.ReshapedArray{ComplexF32, 1, SubArray{ComplexF32, 2, Array{ComplexF32, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Base.Slice{Base.OneTo{Int64}}, Int64}, true}, Tuple{}}}
      1344×3840 LinearMaps.FunctionMap{ComplexF64}(#5, #7; ismutating=true, issymmetric=false, ishermitian=false, isposdef=false)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions