From db9a56acf4e28378af6eabefd0e405fc756a75e0 Mon Sep 17 00:00:00 2001 From: Seyoon Ko Date: Fri, 27 Dec 2019 18:31:20 +0900 Subject: [PATCH 1/4] Update composition.jl --- src/composition.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/composition.jl b/src/composition.jl index c8a9ed2e..ee7d6dda 100644 --- a/src/composition.jl +++ b/src/composition.jl @@ -127,18 +127,18 @@ function A_mul_B!(y::AbstractVector, A::CompositeMap, x::AbstractVector) A_mul_B!(y, A.maps[1], x) else T = eltype(y) - dest = Array{T}(undef, size(A.maps[1], 1)) + dest = similar(y, T, size(A.maps[1], 1)) A_mul_B!(dest, A.maps[1], x) source = dest if N>2 - dest = Array{T}(undef, size(A.maps[2], 1)) + dest = similar(y, T, size(A.maps[2], 1)) end for n in 2:N-1 try resize!(dest, size(A.maps[n], 1)) catch err if err == ErrorException("cannot resize array with shared data") - dest = Array{T}(undef, size(A.maps[n], 1)) + dest = similar(y, size(A.maps[n], 1)) else rethrow(err) end From f10a7efb14c120b4928e4c339e729d099818f1e2 Mon Sep 17 00:00:00 2001 From: Seyoon Ko Date: Sun, 29 Dec 2019 21:19:19 +0900 Subject: [PATCH 2/4] Update kronecker.jl --- src/kronecker.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kronecker.jl b/src/kronecker.jl index 17f9511e..ec6f8737 100644 --- a/src/kronecker.jl +++ b/src/kronecker.jl @@ -106,8 +106,8 @@ Base.:(==)(A::KroneckerMap, B::KroneckerMap) = (eltype(A) == eltype(B) && A.maps mb, nb = size(B) v = zeros(T, ma) Ty = eltype(y) - temp1 = Array{Ty}(undef, na) - temp2 = Array{Ty}(undef, nb) + temp1 = similar(y, Ty, na) + temp2 = similar(y, Ty, nb) @views @inbounds for i in 1:ma v[i] = one(T) A_mul_B!(temp1, At, v) From 6ab8ba45c3d8e8c122ad0a1d91195c66693271cf Mon Sep 17 00:00:00 2001 From: Seyoon Ko Date: Mon, 30 Dec 2019 13:43:40 +0900 Subject: [PATCH 3/4] Update kronecker.jl --- src/kronecker.jl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/kronecker.jl b/src/kronecker.jl index ec6f8737..80fd502a 100644 --- a/src/kronecker.jl +++ b/src/kronecker.jl @@ -105,9 +105,8 @@ Base.:(==)(A::KroneckerMap, B::KroneckerMap) = (eltype(A) == eltype(B) && A.maps na, ma = size(At) mb, nb = size(B) v = zeros(T, ma) - Ty = eltype(y) - temp1 = similar(y, Ty, na) - temp2 = similar(y, Ty, nb) + temp1 = similar(y, na) + temp2 = similar(y, nb) @views @inbounds for i in 1:ma v[i] = one(T) A_mul_B!(temp1, At, v) From a4c334b1c749190868c1f57a04328566dbc99284 Mon Sep 17 00:00:00 2001 From: Seyoon Ko Date: Mon, 30 Dec 2019 13:44:20 +0900 Subject: [PATCH 4/4] Update composition.jl --- src/composition.jl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/composition.jl b/src/composition.jl index ee7d6dda..de644ca1 100644 --- a/src/composition.jl +++ b/src/composition.jl @@ -126,12 +126,11 @@ function A_mul_B!(y::AbstractVector, A::CompositeMap, x::AbstractVector) if N==1 A_mul_B!(y, A.maps[1], x) else - T = eltype(y) - dest = similar(y, T, size(A.maps[1], 1)) + dest = similar(y, size(A.maps[1], 1)) A_mul_B!(dest, A.maps[1], x) source = dest if N>2 - dest = similar(y, T, size(A.maps[2], 1)) + dest = similar(y, size(A.maps[2], 1)) end for n in 2:N-1 try