diff src/LazyTensors/lazy_tensor_operations.jl @ 491:2dc2eac27f75 feature/outer_product

Add special methods for Identity mappings
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 05 Nov 2020 12:48:30 +0100
parents 2c0e76d5832d
children 5a600ec40ccc
line wrap: on
line diff
--- a/src/LazyTensors/lazy_tensor_operations.jl	Mon Nov 02 22:12:24 2020 +0100
+++ b/src/LazyTensors/lazy_tensor_operations.jl	Thu Nov 05 12:48:30 2020 +0100
@@ -324,6 +324,10 @@
     return itm1∘itm2
 end
 
+LazyOuterProduct(t1::IdentityMapping{T}, t2::IdentityMapping{T}) where T = IdentityMapping{T}(t1.size...,t2.size...)
+LazyOuterProduct(t1::TensorMapping, t2::IdentityMapping) = InflatedTensorMapping(t1, t2)
+LazyOuterProduct(t1::IdentityMapping, t2::TensorMapping) = InflatedTensorMapping(t1, t2)
+
 LazyOuterProduct(tms::Vararg{TensorMapping}) = foldl(LazyOuterProduct, tms)
 
 ⊗(a::TensorMapping, b::TensorMapping) = LazyOuterProduct(a,b)