Skip to content

Commit c96c064

Browse files
authored
Use DerivableInterfaces.permuteddims (#168)
1 parent a552990 commit c96c064

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "BlockSparseArrays"
22
uuid = "2c9a651f-6452-4ace-a6ac-809f4280fbb4"
33
authors = ["ITensor developers <[email protected]> and contributors"]
4-
version = "0.9.0"
4+
version = "0.9.1"
55

66
[deps]
77
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
@@ -33,7 +33,7 @@ Adapt = "4.1.1"
3333
Aqua = "0.8.9"
3434
ArrayLayouts = "1.10.4"
3535
BlockArrays = "1.2.0"
36-
DerivableInterfaces = "0.5.2"
36+
DerivableInterfaces = "0.5.3"
3737
DiagonalArrays = "0.3"
3838
Dictionaries = "0.4.3"
3939
FillArrays = "1.13.0"

src/blocksparsearrayinterface/blocksparsearrayinterface.jl

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ using DerivableInterfaces:
2222
AbstractArrayInterface,
2323
DefaultArrayInterface,
2424
interface,
25+
permuteddims,
2526
zero!
2627
using LinearAlgebra: Adjoint, Transpose
2728
using SparseArraysBase:
@@ -312,7 +313,7 @@ end
312313
# `blockisequal_map[!]`.
313314
# TODO: Maybe define a `BlockIsEqualInterface` for these kinds of functions.
314315
function blockisequal_permutedims!(a_dest::AbstractArray, a_src::AbstractArray, perm)
315-
blocks(a_dest) .= blocks(PermutedDimsArray(a_src, perm))
316+
blocks(a_dest) .= blocks(permuteddims(a_src, perm))
316317
return a_dest
317318
end
318319

@@ -322,7 +323,7 @@ end
322323
@interface ::AbstractBlockSparseArrayInterface function Base.permutedims(
323324
a::AbstractArray, perm
324325
)
325-
a_dest = similar(PermutedDimsArray(a, perm))
326+
a_dest = similar(permuteddims(a, perm))
326327
# TODO: Maybe define this as `@interface BlockIsEqualInterface() permutedims!(...)`.
327328
blockisequal_permutedims!(a_dest, a, perm)
328329
return a_dest
@@ -334,7 +335,7 @@ end
334335
@interface ::AbstractBlockSparseArrayInterface function Base.permutedims!(
335336
a_dest::AbstractArray, a_src::AbstractArray, perm
336337
)
337-
if all(blockisequal.(axes(a_dest), axes(PermutedDimsArray(a_src, perm))))
338+
if all(blockisequal.(axes(a_dest), axes(permuteddims(a_src, perm))))
338339
# TODO: Maybe define this as `@interface BlockIsEqualInterface() permutedims!(...)`.
339340
blockisequal_permutedims!(a_dest, a_src, perm)
340341
return a_dest
@@ -403,15 +404,15 @@ end
403404
function SparseArraysBase.getstoredindex(
404405
a::SparsePermutedDimsArrayBlocks{<:Any,N}, index::Vararg{Int,N}
405406
) where {N}
406-
return PermutedDimsArray(
407+
return permuteddims(
407408
getstoredindex(blocks(parent(a.array)), _getindices(index, _invperm(a.array))...),
408409
_perm(a.array),
409410
)
410411
end
411412
function SparseArraysBase.getunstoredindex(
412413
a::SparsePermutedDimsArrayBlocks{<:Any,N}, index::Vararg{Int,N}
413414
) where {N}
414-
return PermutedDimsArray(
415+
return permuteddims(
415416
getunstoredindex(blocks(parent(a.array)), _getindices(index, _invperm(a.array))...),
416417
_perm(a.array),
417418
)

0 commit comments

Comments
 (0)