Skip to content

Commit 7021626

Browse files
authored
Rename blockmergesort and related functions to sectormergesort (#16)
1 parent e031abd commit 7021626

File tree

7 files changed

+28
-28
lines changed

7 files changed

+28
-28
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "GradedArrays"
22
uuid = "bc96ca6e-b7c8-4bb6-888e-c93f838762c2"
33
authors = ["ITensor developers <[email protected]> and contributors"]
4-
version = "0.2.4"
4+
version = "0.3.0"
55

66
[deps]
77
BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"

docs/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
55

66
[compat]
77
Documenter = "1"
8-
GradedArrays = "0.2"
8+
GradedArrays = "0.3"
99
Literate = "2"

ext/GradedArraysTensorAlgebraExt/GradedArraysTensorAlgebraExt.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ using BlockSparseArrays: BlockSparseArray, blockreshape
55
using GradedArrays: GradedArray
66
using GradedArrays.GradedUnitRanges:
77
AbstractGradedUnitRange,
8-
blockmergesortperm,
9-
blocksortperm,
108
flip,
119
invblockperm,
10+
sectormergesortperm,
11+
sectorsortperm,
1212
unmerged_tensor_product
1313
using GradedArrays.SymmetrySectors: trivial
1414
using TensorAlgebra:
@@ -52,11 +52,11 @@ function TensorAlgebra.unmatricize(
5252
m::AbstractMatrix,
5353
blocked_axes::BlockedTuple{2,<:Any,<:Tuple{Vararg{AbstractUnitRange}}},
5454
)
55-
# First, fuse axes to get `blockmergesortperm`.
55+
# First, fuse axes to get `sectormergesortperm`.
5656
# Then unpermute the blocks.
5757
fused_axes = matricize_axes(blocked_axes)
5858

59-
blockperms = blocksortperm.(fused_axes)
59+
blockperms = sectorsortperm.(fused_axes)
6060
sorted_axes = map((r, I) -> only(axes(r[I])), fused_axes, blockperms)
6161

6262
# TODO: This is doing extra copies of the blocks,
@@ -70,7 +70,7 @@ end
7070

7171
# Sort the blocks by sector and then merge the common sectors.
7272
function sectormergesort(a::AbstractArray)
73-
I = blockmergesortperm.(axes(a))
73+
I = sectormergesortperm.(axes(a))
7474
return a[I...]
7575
end
7676
end

src/GradedArrays.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ using .GradedUnitRanges:
1212
GradedUnitRangeDual,
1313
LabelledUnitRangeDual,
1414
blocklabels,
15-
blockmergesort,
16-
blockmergesortperm,
17-
blocksortperm,
1815
dag,
1916
dual,
2017
dual_type,
@@ -25,6 +22,9 @@ using .GradedUnitRanges:
2522
nondual,
2623
nondual_type,
2724
sector_type,
25+
sectormergesort,
26+
sectormergesortperm,
27+
sectorsortperm,
2828
space_isequal,
2929
unmerged_tensor_product
3030
include("SymmetrySectors/SymmetrySectors.jl")

src/GradedUnitRanges/fusion.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function unmerged_tensor_product(a1::AbstractGradedUnitRange, a2::AbstractGraded
3636
end
3737

3838
# convention: sort GradedUnitRangeDual according to nondual blocks
39-
function blocksortperm(a::AbstractUnitRange)
39+
function sectorsortperm(a::AbstractUnitRange)
4040
return Block.(sortperm(blocklabels(nondual(a))))
4141
end
4242

@@ -52,14 +52,14 @@ end
5252
# Used by `TensorAlgebra.splitdims` in `BlockSparseArraysGradedUnitRangesExt`.
5353
# Get the permutation for sorting, then group by common elements.
5454
# groupsortperm([2, 1, 2, 3]) == [[2], [1, 3], [4]]
55-
function blockmergesortperm(a::AbstractUnitRange)
55+
function sectormergesortperm(a::AbstractUnitRange)
5656
return Block.(groupsortperm(blocklabels(nondual(a))))
5757
end
5858

5959
# Used by `TensorAlgebra.splitdims` in `BlockSparseArraysGradedUnitRangesExt`.
6060
invblockperm(a::Vector{<:Block{1}}) = Block.(invperm(Int.(a)))
6161

62-
function blockmergesort(g::AbstractGradedUnitRange)
62+
function sectormergesort(g::AbstractGradedUnitRange)
6363
glabels = blocklabels(g)
6464
gblocklengths = blocklengths(g)
6565
new_blocklengths = map(sort(unique(glabels))) do la
@@ -68,14 +68,14 @@ function blockmergesort(g::AbstractGradedUnitRange)
6868
return gradedrange(new_blocklengths)
6969
end
7070

71-
blockmergesort(g::GradedUnitRangeDual) = flip(blockmergesort(flip(g)))
72-
blockmergesort(g::AbstractUnitRange) = g
71+
sectormergesort(g::GradedUnitRangeDual) = flip(sectormergesort(flip(g)))
72+
sectormergesort(g::AbstractUnitRange) = g
7373

7474
# tensor_product produces a sorted, non-dual GradedUnitRange
75-
TensorProducts.tensor_product(g::AbstractGradedUnitRange) = blockmergesort(flip_dual(g))
75+
TensorProducts.tensor_product(g::AbstractGradedUnitRange) = sectormergesort(flip_dual(g))
7676

7777
function TensorProducts.tensor_product(
7878
g1::AbstractGradedUnitRange, g2::AbstractGradedUnitRange
7979
)
80-
return blockmergesort(unmerged_tensor_product(g1, g2))
80+
return sectormergesort(unmerged_tensor_product(g1, g2))
8181
end

test/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ TestExtras = "5ed8adda-3752-4e41-b88a-e8b09835ee3a"
1717
Aqua = "0.8.11"
1818
BlockArrays = "1.6.0"
1919
BlockSparseArrays = "0.4.2"
20-
GradedArrays = "0.2.0"
20+
GradedArrays = "0.3.0"
2121
LinearAlgebra = "1.10.0"
2222
Random = "1.10.0"
2323
SafeTestsets = "0.1.0"

test/test_gradedunitranges_dual.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ using GradedArrays:
1818
GradedUnitRangeDual,
1919
LabelledUnitRangeDual,
2020
blocklabels,
21-
blockmergesortperm,
22-
blocksortperm,
2321
dag,
2422
dual,
2523
dual_type,
@@ -28,8 +26,10 @@ using GradedArrays:
2826
isdual,
2927
nondual,
3028
nondual_type,
31-
space_isequal,
32-
sector_type
29+
sector_type,
30+
sectormergesortperm,
31+
sectorsortperm,
32+
space_isequal
3333
using GradedArrays.LabelledNumbers:
3434
LabelledInteger, LabelledUnitRange, label, label_type, labelled, labelled_isequal, unlabel
3535
using Test: @test, @test_broken, @testset
@@ -233,12 +233,12 @@ end
233233
@test label(ad[[Block(2), Block(1)]][Block(1)]) == U1(-1)
234234
@test ad[[Block(2)[1:2], Block(1)[1:2]]][Block(1)] == 3:4
235235
@test label(ad[[Block(2)[1:2], Block(1)[1:2]]][Block(1)]) == U1(-1)
236-
@test blocksortperm(a) == [Block(1), Block(2)]
237-
@test blocksortperm(ad) == [Block(1), Block(2)]
238-
@test blocklength(blockmergesortperm(a)) == 2
239-
@test blocklength(blockmergesortperm(ad)) == 2
240-
@test blockmergesortperm(a) == [Block(1), Block(2)]
241-
@test blockmergesortperm(ad) == [Block(1), Block(2)]
236+
@test sectorsortperm(a) == [Block(1), Block(2)]
237+
@test sectorsortperm(ad) == [Block(1), Block(2)]
238+
@test blocklength(sectormergesortperm(a)) == 2
239+
@test blocklength(sectormergesortperm(ad)) == 2
240+
@test sectormergesortperm(a) == [Block(1), Block(2)]
241+
@test sectormergesortperm(ad) == [Block(1), Block(2)]
242242

243243
@test isdual(ad[Block(1)])
244244
@test isdual(ad[Block(1)[1:1]])

0 commit comments

Comments
 (0)