During upgrade of some libraries to Julia 0.7 I’ve met many situations where package developers use DenseMatrix{T}
as an abstract class for a matrix data. But after new release, all code, which use transpose
stopped working, as now it returns Adjoint
, which is subtype of AbstractArray{T,2}
. What is a proper way to upgrade such places?
Replacement of all DenseMatrix{T}
with AbstractArray{T,2}
would significantly increase class of accepted subtypes. Wrapping each occurrence of transposition (m'
) with Array(m')
looks too verbose as well as replacement of DenseMatrix
with Union{DenseMatrix, Adjoint}
.
copy
to materialize the adjoint and it should work like before.
1 Like
Thanks for the reply!
Isn’t it as long as Array(m')
? Do you really mean to use it each time with '
operator?
Before it was exactly doing this, creating a copy. So putting copy
everywhere would kind of reproduce old behavior. However, by doing so, you might realize in some places why a lazy adjoint might be a better idea (performance wise).
1 Like
You might not want to create an Array
.
1 Like
Ok, got it, thank you!
I am new to Julia, may I know what is the issue of creating an Array
vs using copy
?