@@ -42,25 +42,17 @@ function LinearAlgebra.norm(ft::FusionTensor)
4242 return sqrt (n2)
4343end
4444
45+ LinearAlgebra. normalize (ft:: FusionTensor ) = set_data_matrix (ft, data_matrix (ft) / norm (ft))
46+
47+ function LinearAlgebra. normalize! (ft:: FusionTensor )
48+ data_matrix (ft) ./= norm (ft)
49+ return ft
50+ end
51+
4552function LinearAlgebra. tr (ft:: FusionTensor )
4653 m = data_matrix (ft)
4754 row_sectors = sectors (codomain_axis (ft))
4855 return sum (eachblockstoredindex (m); init= zero (eltype (ft))) do b
4956 return quantum_dimension (row_sectors[Int (first (Tuple (b)))]) * tr (m[b])
5057 end
5158end
52-
53- function LinearAlgebra. qr (ft:: FusionTensor )
54- qmat, rmat = block_qr (data_matrix (ft))
55- qtens = FusionTensor (qmat, codomain_axes (ft), (axes (qmat, 2 ),))
56- rtens = FusionTensor (rmat, (axes (rmat, 1 ),), domain_axes (ft))
57- return qtens, rtens
58- end
59-
60- function LinearAlgebra. svd (ft:: FusionTensor )
61- umat, s, vmat = block_svd (data_matrix (ft))
62- utens = FusionTensor (umat, codomain_axes (ft), (axes (umat, 2 ),))
63- stens = FusionTensor (s, (axes (umat, 1 ),), (axes (vmat, 2 ),))
64- vtens = FusionTensor (vmat, (axes (vmat, 1 ),), domain_axes (ft))
65- return utens, stens, vtens
66- end
0 commit comments