Skip to content

Commit 8318638

Browse files
committed
specialize UniqueFusion norm
1 parent 68cff49 commit 8318638

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

src/tensors/linalg.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,12 @@ function _norm(blockiter, p::Real, init::Real)
278278
throw(ArgumentError(msg))
279279
end
280280
end
281+
function LinearAlgebra.norm(t::TensorMap, p::Real = 2)
282+
InnerProductStyle(t) === EuclideanInnerProduct() || throw_invalid_innerproduct(:norm)
283+
# performance specialization:
284+
FusionStyle(sectortype(t)) isa UniqueFusion && return norm(t.data, p)
285+
return _norm(blocks(t), p, float(zero(real(scalartype(t)))))
286+
end
281287

282288
_default_rtol(t) = eps(real(float(scalartype(t)))) * min(dim(domain(t)), dim(codomain(t)))
283289

0 commit comments

Comments
 (0)