Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "TensorAlgebra"
uuid = "68bd88dc-f39d-4e12-b2ca-f046b68fcc6a"
authors = ["ITensor developers <[email protected]> and contributors"]
version = "0.3.1"
version = "0.3.2"

[deps]
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
Expand Down
14 changes: 3 additions & 11 deletions src/matricize.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,11 @@ abstract type FusionStyle end

struct ReshapeFusion <: FusionStyle end

FusionStyle(a::AbstractArray) = FusionStyle(a, axes(a))
function FusionStyle(a::AbstractArray, t::Tuple{Vararg{AbstractUnitRange}})
return FusionStyle(a, combine_fusion_styles(FusionStyle.(t)...))
end
FusionStyle(x) = FusionStyle(typeof(x))
FusionStle(::Type) = error("Not implemented")

# Defaults to ReshapeFusion, a simple reshape
FusionStyle(::AbstractUnitRange) = ReshapeFusion()
FusionStyle(::AbstractArray, ::ReshapeFusion) = ReshapeFusion()

combine_fusion_styles() = ReshapeFusion()
combine_fusion_styles(::Style, ::Style) where {Style<:FusionStyle} = Style()
combine_fusion_styles(::FusionStyle, ::FusionStyle) = ReshapeFusion()
combine_fusion_styles(styles::FusionStyle...) = foldl(combine_fusion_styles, styles)
FusionStyle(::Type{<:AbstractArray}) = ReshapeFusion()

# ======================================= misc ========================================
trivial_axis(::Tuple{}) = Base.OneTo(1)
Expand Down