Skip to content

Commit cdd3a2f

Browse files
committed
use fusiontensor when data_matrix is provided
1 parent 3ef076d commit cdd3a2f

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

src/fusiontensor/base_interface.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ end
1818
function Base.:*(left::FusionTensor, right::FusionTensor)
1919
@assert matching_dual(domain_axes(left), codomain_axes(right))
2020
new_data_matrix = data_matrix(left) * data_matrix(right)
21-
return FusionTensor(new_data_matrix, codomain_axes(left), domain_axes(right))
21+
return fusiontensor(new_data_matrix, codomain_axes(left), domain_axes(right))
2222
end
2323

2424
Base.:+(ft::FusionTensor) = ft

src/fusiontensor/fusiontensor.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,13 @@ function promote_sector_type(legs)
118118
return sector_type(fusion_product(trivial.(legs)...))
119119
end
120120

121-
function FusionTensor(
121+
# initialize with already computed data_matrix
122+
function fusiontensor(
122123
mat::AbstractBlockSparseMatrix,
123124
codomain_legs::Tuple{Vararg{AbstractGradedUnitRange}},
124125
domain_legs::Tuple{Vararg{AbstractGradedUnitRange}},
125126
)
127+
# init with empty data_matrix to construct trees_block_mapping
126128
ft = FusionTensor(eltype(mat), codomain_legs, domain_legs)
127129
for b in eachblockstoredindex(mat)
128130
@assert b in eachblockstoredindex(data_matrix(ft))

test/test_basics.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ using Test: @test, @test_throws, @testset
44
using BlockSparseArrays: BlockSparseArray
55
using FusionTensors:
66
FusionTensor,
7-
domain_axes,
87
codomain_axes,
98
data_matrix,
9+
domain_axes,
10+
fusiontensor,
1011
matching_axes,
1112
matching_dual,
1213
matrix_column_axis,
@@ -30,7 +31,7 @@ include("shared.jl")
3031
@test space_isequal(matrix_column_axis(ft0), g2)
3132

3233
m = BlockSparseArray{Float64}(g1, g2)
33-
ft1 = FusionTensor(m, (g1,), (g2,))
34+
ft1 = fusiontensor(m, (g1,), (g2,))
3435

3536
# getters
3637
@test data_matrix(ft1) == m
@@ -100,7 +101,7 @@ end
100101
gr = fusion_product(g1, g2)
101102
gc = dual(fusion_product(dual(g3), dual(g4)))
102103
m2 = BlockSparseArray{Float64}(gr, gc)
103-
ft = FusionTensor(m2, (g1, g2), (g3, g4))
104+
ft = fusiontensor(m2, (g1, g2), (g3, g4))
104105

105106
@test data_matrix(ft) == m2
106107
@test matching_axes(codomain_axes(ft), (g1, g2))

0 commit comments

Comments
 (0)