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,))