>>>>> Duncan Murdoch
>>>>> on Tue, 3 Oct 2023 12:59:10 -0400 writes:
> On 03/10/2023 12:50 p.m., Koenker, Roger W wrote:
>> I?ve been getting this warning for a while now (about
>> five years if memory serves) and I?m finally tired of it,
>> but also too tired to track it down in Matrix. As far as
>> I can grep I have no reference to either deprecated
>> object, only the apparently innocuous Matrix::Matrix(A,
>> sparse = TRUE). Can someone advise, Martin perhaps? I
>> thought it might come from Rmosek, but mosek folks don?t
>> think so.
>> https://groups.google.com/g/mosek/c/yEwXmMfHBbg/m/l_mkeM4vAAAJ
> A quick scan of that discussion didn't turn up anything
> relevant, e.g. a script to produce the warning. Could you
> be more specific, or just post the script here?
> In general, a good way to locate the source of a warning
> is to set options(warn=2) to turn it into an error, and
> then trigger it. The traceback from the error will
> include a bunch of junk from the code that catches the
> warning, but it will also include the context where it was
> triggered.
> Duncan Murdoch
Indeed.
But Roger is right that it in the end, (almost surely) it is
from our {Matrix} package.
Indeed for several years now, we have tried to make the setup
leaner (and hence faster) by not explicitly define coercion
from <everything> to <everything> because the size of
<everything> is here about 200, and we don't want to have to provide
200^2 = 40'000 coercion methods.
Rather, Matrix package users should use to high level abstract Matrix
classes such as "sparseMatrix" or "CsparseMatrix" or
"TsparseMatrix" or "dMatrix", "symmetricMatrix".
In the case of as(<dgCMatrix>, "dgTMatrix") , if you
replace "dgTMatrix" by "TsparseMatrix"
the result will be the same but also work in the future when the
deprecation may have been turned into a defunctation ...
Martin