From b8167e14ab74c4344602c6f00a8bdf085d4c90a3 Mon Sep 17 00:00:00 2001 From: conrad Date: Sat, 4 Jun 2022 00:37:10 +1000 Subject: [PATCH] convert to quasi_unwrap --- include/armadillo_bits/glue_kron_meat.hpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/include/armadillo_bits/glue_kron_meat.hpp b/include/armadillo_bits/glue_kron_meat.hpp index f12aa53d..c7c4ff63 100644 --- a/include/armadillo_bits/glue_kron_meat.hpp +++ b/include/armadillo_bits/glue_kron_meat.hpp @@ -125,24 +125,21 @@ glue_kron::apply(Mat& out, const Glue& typedef typename T1::elem_type eT; - const unwrap A_tmp(X.A); - const unwrap B_tmp(X.B); + const quasi_unwrap UA(X.A); + const quasi_unwrap UB(X.B); - const Mat& A = A_tmp.M; - const Mat& B = B_tmp.M; - - if( (&out != &A) && (&out != &B) ) - { - glue_kron::direct_kron(out, A, B); - } - else + if(UA.is_alias(out) || UB.is_alias(out)) { Mat tmp; - glue_kron::direct_kron(tmp, A, B); + glue_kron::direct_kron(tmp, UA.M, UB.M); out.steal_mem(tmp); } + else + { + glue_kron::direct_kron(out, UA.M, UB.M); + } }