diff src/LazyTensors/lazy_tensor_operations.jl @ 449:14d60de71b72 feature/inflated_tensormapping

Change to concrete fields in the type
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 19 Oct 2020 21:14:46 +0200
parents 912ae510dec9
children ac6d22570a08
line wrap: on
line diff
--- a/src/LazyTensors/lazy_tensor_operations.jl	Mon Oct 19 21:04:51 2020 +0200
+++ b/src/LazyTensors/lazy_tensor_operations.jl	Mon Oct 19 21:14:46 2020 +0200
@@ -166,9 +166,9 @@
 apply(tmi::IdentityMapping{T,D}, v::AbstractArray{T,D}, I::Vararg{Any,D}) where {T,D} = v[I...]
 apply_transpose(tmi::IdentityMapping{T,D}, v::AbstractArray{T,D}, I::Vararg{Any,D}) where {T,D} = v[I...]
 
-struct InflatedTensorMapping{T,R,D,D_before,R_middle,D_middle,D_after} <: TensorMapping{T,R,D}
+struct InflatedTensorMapping{T,R,D,D_before,R_middle,D_middle,D_after, TM<:TensorMapping{T,R_middle,D_middle}} <: TensorMapping{T,R,D}
     before::IdentityMapping{T,D_before}
-    tm::TensorMapping{T,R_middle,D_middle}
+    tm::TM
     after::IdentityMapping{T,D_after}
 
     function InflatedTensorMapping(before, tm::TensorMapping{T}, after) where T
@@ -181,7 +181,7 @@
         D_middle = domain_dim(tm)
         D_after = domain_dim(after)
         D = D_before+D_middle+D_after
-        return new{T,R,D,D_before,R_middle,D_middle,D_after}(before, tm, after)
+        return new{T,R,D,D_before,R_middle,D_middle,D_after, typeof(tm)}(before, tm, after)
     end
 end