Mercurial > repos > public > sbplib_julia
comparison test/testLazyTensors.jl @ 547:53828d3ed132 refactor/tensor_index_coupling
Remove unnecessary type parameters
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Sat, 28 Nov 2020 17:03:01 +0100 |
parents | 62d96e2cd165 |
children | 1c512e796c6d |
comparison
equal
deleted
inserted
replaced
543:1a53eb83ed24 | 547:53828d3ed132 |
---|---|
17 end | 17 end |
18 | 18 |
19 @testset "Mapping transpose" begin | 19 @testset "Mapping transpose" begin |
20 struct DummyMapping{T,R,D} <: TensorMapping{T,R,D} end | 20 struct DummyMapping{T,R,D} <: TensorMapping{T,R,D} end |
21 | 21 |
22 LazyTensors.apply(m::DummyMapping{T,R,D}, v, I::Vararg{Any,R}) where {T,R,D} = :apply | 22 LazyTensors.apply(m::DummyMapping{T,R}, v, I::Vararg{Any,R}) where {T,R} = :apply |
23 LazyTensors.apply_transpose(m::DummyMapping{T,R,D}, v, I::Vararg{Any,D}) where {T,R,D} = :apply_transpose | 23 LazyTensors.apply_transpose(m::DummyMapping{T,R,D}, v, I::Vararg{Any,D}) where {T,R,D} = :apply_transpose |
24 | 24 |
25 LazyTensors.range_size(m::DummyMapping{T,R,D}) where {T,R,D} = :range_size | 25 LazyTensors.range_size(m::DummyMapping) = :range_size |
26 LazyTensors.domain_size(m::DummyMapping{T,R,D}) where {T,R,D} = :domain_size | 26 LazyTensors.domain_size(m::DummyMapping) = :domain_size |
27 | 27 |
28 m = DummyMapping{Float64,2,3}() | 28 m = DummyMapping{Float64,2,3}() |
29 @test m' isa TensorMapping{Float64, 3,2} | 29 @test m' isa TensorMapping{Float64, 3,2} |
30 @test m'' == m | 30 @test m'' == m |
31 @test apply(m',zeros(Float64,(0,0)), 0, 0, 0) == :apply_transpose | 31 @test apply(m',zeros(Float64,(0,0)), 0, 0, 0) == :apply_transpose |
39 @testset "TensorApplication" begin | 39 @testset "TensorApplication" begin |
40 struct SizeDoublingMapping{T,R,D} <: TensorMapping{T,R,D} | 40 struct SizeDoublingMapping{T,R,D} <: TensorMapping{T,R,D} |
41 domain_size::NTuple{D,Int} | 41 domain_size::NTuple{D,Int} |
42 end | 42 end |
43 | 43 |
44 LazyTensors.apply(m::SizeDoublingMapping{T,R,D}, v, i::Vararg{Any,R}) where {T,R,D} = (:apply,v,i) | 44 LazyTensors.apply(m::SizeDoublingMapping{T,R}, v, i::Vararg{Any,R}) where {T,R} = (:apply,v,i) |
45 LazyTensors.range_size(m::SizeDoublingMapping) = 2 .* m.domain_size | 45 LazyTensors.range_size(m::SizeDoublingMapping) = 2 .* m.domain_size |
46 LazyTensors.domain_size(m::SizeDoublingMapping) = m.domain_size | 46 LazyTensors.domain_size(m::SizeDoublingMapping) = m.domain_size |
47 | 47 |
48 | 48 |
49 m = SizeDoublingMapping{Int, 1, 1}((3,)) | 49 m = SizeDoublingMapping{Int, 1, 1}((3,)) |
93 λ::T | 93 λ::T |
94 range_size::NTuple{R,Int} | 94 range_size::NTuple{R,Int} |
95 domain_size::NTuple{D,Int} | 95 domain_size::NTuple{D,Int} |
96 end | 96 end |
97 | 97 |
98 LazyTensors.apply(m::ScalarMapping{T,R,D}, v, I::Vararg{Any,R}) where {T,R,D} = m.λ*v[I...] | 98 LazyTensors.apply(m::ScalarMapping{T,R}, v, I::Vararg{Any,R}) where {T,R} = m.λ*v[I...] |
99 LazyTensors.range_size(m::ScalarMapping) = m.domain_size | 99 LazyTensors.range_size(m::ScalarMapping) = m.domain_size |
100 LazyTensors.domain_size(m::ScalarMapping) = m.range_size | 100 LazyTensors.domain_size(m::ScalarMapping) = m.range_size |
101 | 101 |
102 A = ScalarMapping{Float64,1,1}(2.0, (3,), (3,)) | 102 A = ScalarMapping{Float64,1,1}(2.0, (3,), (3,)) |
103 B = ScalarMapping{Float64,1,1}(3.0, (3,), (3,)) | 103 B = ScalarMapping{Float64,1,1}(3.0, (3,), (3,)) |