changeset 161:ea01b5550ff6 boundary_conditions

Add some missing methods in TensorMappings.jl
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 10 May 2019 21:48:28 +0200
parents d33b13d2d92b
children be50c5e40121
files TensorMappings.jl
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/TensorMappings.jl	Fri May 10 16:08:31 2019 +0200
+++ b/TensorMappings.jl	Fri May 10 21:48:28 2019 +0200
@@ -31,7 +31,8 @@
 apply(tm::TensorMappingTranspose{T,R,D}, v::AbstractArray{T,R}, I::Vararg) where {T,R,D} = apply_transpose(tm.tm, v, I...)
 apply_transpose(tm::TensorMappingTranspose{T,R,D}, v::AbstractArray{T,D}, I::Vararg) where {T,R,D} = apply(tm.tm, v, I...)
 
-# range_size(::TensorMappingTranspose{T,R,D}, domain_size::NTuple{}) = range_size_of_transpose???
+range_size(tmt::TensorMappingTranspose{T,R,D}, domain_size::NTuple{D,Integer}) = domain_size(tmt.tm, domain_size)
+domain_size(tmt::TensorMappingTranspose{T,R,D}, range_size::NTuple{D,Integer}) = range_size(tmt.tm, range_size)
 
 
 
@@ -64,6 +65,14 @@
 import Base.∘
 ∘(s::TensorMapping{T,R,K}, t::TensorMapping{T,K,D}) where {T,R,K,D} = TensorMappingComposition(s,t)
 
+function range_size(tm::TensorMappingComposition{T,R,K,D}, domain_size::NTuple{D,Integer}) where {T,R,D}
+	range_size(tm.t1, domain_size(tm.t2, domain_size))
+end
+
+function domain_size(tm::TensorMappingComposition{T,R,K,D}, range_size::NTuple{R,Integer}) where {T,R,D}
+	domain_size(tm.t1, domain_size(tm.t2, range_size))
+end
+
 function apply(c::TensorMappingComposition{T,R,K,D}, v::AbstractArray{T,D}, I::Vararg) where {T,R,K,D}
 	apply(c.t1, TensorApplication(c.t2,v), I...)
 end