Mercurial > repos > public > sbplib_julia
changeset 411:4aa59af074ef feature/LazyLinearMap/transpose
Add implementation of apply_transpose for LazyLinearMap
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 15 Oct 2020 22:06:54 +0200 |
parents | 26e186b565b3 |
children | f7a4bac0d599 |
files | src/LazyTensors/lazy_tensor_operations.jl test/testLazyTensors.jl |
diffstat | 2 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
diff -r 26e186b565b3 -r 4aa59af074ef src/LazyTensors/lazy_tensor_operations.jl --- a/src/LazyTensors/lazy_tensor_operations.jl Thu Oct 15 21:06:28 2020 +0200 +++ b/src/LazyTensors/lazy_tensor_operations.jl Thu Oct 15 22:06:54 2020 +0200 @@ -137,3 +137,7 @@ A_view = @view llm.A[view_index...] return sum(A_view.*v) end + +function apply_transpose(llm::LazyLinearMap{T,R,D}, v::AbstractArray{T,R}, I::Vararg{Index,D}) where {T,R,D} + apply(LazyLinearMap(llm.A, llm.domain_indicies, llm.range_indicies), v, I...) +end
diff -r 26e186b565b3 -r 4aa59af074ef test/testLazyTensors.jl --- a/test/testLazyTensors.jl Thu Oct 15 21:06:28 2020 +0200 +++ b/test/testLazyTensors.jl Thu Oct 15 22:06:54 2020 +0200 @@ -219,6 +219,7 @@ A = rand(3,4) à = LazyLinearMap(A, (1,), (2,)) v = rand(4) + w = rand(3) @test à isa LazyLinearMap{T,1,1} where T @test à isa TensorMapping{T,1,1} where T @@ -227,6 +228,7 @@ @test Ã*ones(4) ≈ A*ones(4) atol=5e-13 @test Ã*v ≈ A*v atol=5e-13 + @test Ã'*w ≈ A'*w A = rand(2,3,4) @test_throws DomainError LazyLinearMap(A, (3,1), (2,))