Skip to content

Commit

Permalink
Add compose(AbstractTensorMap, AbstractTensorMap)
Browse files Browse the repository at this point in the history
  • Loading branch information
lkdvos committed May 7, 2024
1 parent 247335e commit 424d4fe
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/tensors/linalg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,18 @@ Base.:\(α::Number, t::AbstractTensorMap) = *(t, one(scalartype(t)) / α)
LinearAlgebra.normalize!(t::AbstractTensorMap, p::Real=2) = scale!(t, inv(norm(t, p)))
LinearAlgebra.normalize(t::AbstractTensorMap, p::Real=2) = scale(t, inv(norm(t, p)))

function Base.:*(t1::AbstractTensorMap, t2::AbstractTensorMap)
"""
compose(t1::AbstractTensorMap, t2::AbstractTensorMap) -> AbstractTensorMap
Return the `AbstractTensorMap` that implements the composition of the two tensor maps `t1`
and `t2`.
"""
function compose(t1::AbstractTensorMap, t2::AbstractTensorMap)
return mul!(similar(t1, promote_type(scalartype(t1), scalartype(t2)),
compose(space(t1), space(t2))), t1, t2)
end
Base.:*(t1::AbstractTensorMap, t2::AbstractTensorMap) = compose(t1, t2)

Base.exp(t::AbstractTensorMap) = exp!(copy(t))
function Base.:^(t::AbstractTensorMap, p::Integer)
return p < 0 ? Base.power_by_squaring(inv(t), -p) : Base.power_by_squaring(t, p)
Expand Down

0 comments on commit 424d4fe

Please sign in to comment.