Mercurial > repos > public > sbplib_julia
changeset 275:591609cdcd9b boundary_conditions
Dispatch TensorMappingTranspose on region indices. Update tests.
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Mon, 06 Jan 2020 11:05:19 +0100 |
parents | 11010bb74260 |
children | e3611c2181bc |
files | LazyTensors/src/lazy_tensor_operations.jl LazyTensors/test/runtests.jl |
diffstat | 2 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/LazyTensors/src/lazy_tensor_operations.jl Mon Jan 06 10:54:48 2020 +0100 +++ b/LazyTensors/src/lazy_tensor_operations.jl Mon Jan 06 11:05:19 2020 +0100 @@ -44,8 +44,8 @@ Base.adjoint(tm::TensorMapping) = LazyTensorMappingTranspose(tm) Base.adjoint(tmt::LazyTensorMappingTranspose) = tmt.tm -apply(tmt::LazyTensorMappingTranspose{T,R,D}, v::AbstractArray{T,R}, I::NTuple{D,Int}) where {T,R,D} = apply_transpose(tmt.tm, v, I) -apply_transpose(tmt::LazyTensorMappingTranspose{T,R,D}, v::AbstractArray{T,D}, I::NTuple{R,Int}) where {T,R,D} = apply(tmt.tm, v, I) +apply(tmt::LazyTensorMappingTranspose{T,R,D}, v::AbstractArray{T,R}, I::NTuple{D,Index{<:Region}}) where {T,R,D} = apply_transpose(tmt.tm, v, I) +apply_transpose(tmt::LazyTensorMappingTranspose{T,R,D}, v::AbstractArray{T,D}, I::NTuple{R,Index{<:Region}}) where {T,R,D} = apply(tmt.tm, v, I) range_size(tmt::LazyTensorMappingTranspose{T,R,D}, d_size::NTuple{R,Integer}) where {T,R,D} = domain_size(tmt.tm, d_size) domain_size(tmt::LazyTensorMappingTranspose{T,R,D}, r_size::NTuple{D,Integer}) where {T,R,D} = range_size(tmt.tm, r_size)
--- a/LazyTensors/test/runtests.jl Mon Jan 06 10:54:48 2020 +0100 +++ b/LazyTensors/test/runtests.jl Mon Jan 06 11:05:19 2020 +0100 @@ -19,18 +19,19 @@ @testset "Mapping transpose" begin struct DummyMapping{T,R,D} <: TensorMapping{T,R,D} end - LazyTensors.apply(m::DummyMapping{T,R,D}, v, i::NTuple{R,Int}) where {T,R,D} = :apply - LazyTensors.apply_transpose(m::DummyMapping{T,R,D}, v, i::NTuple{D,Int}) where {T,R,D} = :apply_transpose + LazyTensors.apply(m::DummyMapping{T,R,D}, v, I::NTuple{R,Index{<:Region}}) where {T,R,D} = :apply + LazyTensors.apply_transpose(m::DummyMapping{T,R,D}, v, I::NTuple{D,Index{<:Region}}) where {T,R,D} = :apply_transpose LazyTensors.range_size(m::DummyMapping{T,R,D}, domain_size::NTuple{D,Integer}) where {T,R,D} = :range_size LazyTensors.domain_size(m::DummyMapping{T,R,D}, range_size::NTuple{R,Integer}) where {T,R,D} = :domain_size m = DummyMapping{Float64,2,3}() + I = Index{Unknown}(0) @test m' isa TensorMapping{Float64, 3,2} @test m'' == m - @test apply(m',zeros(Float64,(0,0)), (0,0,0)) == :apply_transpose - @test apply(m'',zeros(Float64,(0,0,0)),(0,0)) == :apply - @test apply_transpose(m', zeros(Float64,(0,0,0)),(0,0)) == :apply + @test apply(m',zeros(Float64,(0,0)), (I,I,I)) == :apply_transpose + @test apply(m'',zeros(Float64,(0,0,0)),(I,I)) == :apply + @test apply_transpose(m', zeros(Float64,(0,0,0)),(I,I)) == :apply @test range_size(m', (0,0)) == :domain_size @test domain_size(m', (0,0,0)) == :range_size