convert to quasi_unwrap

This commit is contained in:
conrad
2022-06-04 00:37:10 +10:00
parent 84d5da6eb8
commit b8167e14ab
+8 -11
View File
@@ -125,24 +125,21 @@ glue_kron::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_kron>&
typedef typename T1::elem_type eT;
const unwrap<T1> A_tmp(X.A);
const unwrap<T2> B_tmp(X.B);
const quasi_unwrap<T1> UA(X.A);
const quasi_unwrap<T2> UB(X.B);
const Mat<eT>& A = A_tmp.M;
const Mat<eT>& 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<eT> 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);
}
}