From m@ech|er @end|ng |rom @t@t@m@th@ethz@ch  Tue Oct  3 19:17:33 2023
From: m@ech|er @end|ng |rom @t@t@m@th@ethz@ch (Martin Maechler)
Date: Tue, 3 Oct 2023 19:17:33 +0200
Subject: [Rd] as(<dgCMatrix>, "dgTMatrix")' is deprecated.
In-Reply-To: <ced49291-44da-4aa7-b8ca-ecf92eb23aa1@gmail.com>
References: <9C686E75-C639-41FA-8276-E008FD58E5D7@illinois.edu>
 <ced49291-44da-4aa7-b8ca-ecf92eb23aa1@gmail.com>
Message-ID: <25884.19629.134610.492469@stat.math.ethz.ch>

>>>>> 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



[Rd] as(<dgCMatrix>, "dgTMatrix")' is deprecated.
Martin Maechler