[Rcpp-devel] Dulmage-Mendelsohn decomposition in R via Rcpp

Mauricio Vargas mvargas at dcc.uchile.cl
Wed Mar 25 14:06:13 CET 2020


Dear Dr. Maechler

Thanks a lot.

You can find the code here:
https://github.com/pachamaltese/dulmagemendelsohn/blob/master/src/cs_dmperm.c

And this part is already in Matrix:
https://github.com/pachamaltese/dulmagemendelsohn/blob/master/src/cs.h

You are right about the tangent with respect to Rcpp.

So far, I cannot make it work in R, but it works from shell, so I really
appreciate your interest to make the code reproducible.

Best,

—————

*Mauricio Vargas Sepúlveda 帕夏*
Do you like Data Science? visit pacha.hk
你爱科学数据专吗?你走pacha.hk


On Wed, Mar 25, 2020 at 8:36 AM Martin Maechler <maechler at stat.math.ethz.ch>
wrote:

>
> Dear Mauricio  (et al),
>
> I'm the maintainer of the 'Matrix' package (and just reading
> digests of Rcpp-devel, hence no "proper reply").
>
> This looks quite interesting and relevant to me,
> and I'd be interested to add this decomposition to the Matrix
> package, so would be happy if you already have code for parts of
> it.
>
> As CSparce, Matrix uses simple C though, and hence this posting
> is only peripherally related to Rcpp.
>
> Best regards,
>
> Martin Maechler
> ETH Zurich and  R Core team
>
>
>     > Date: Wed, 25 Mar 2020 01:22:16 -0300
>     > From: Mauricio Vargas <mvargas at dcc.uchile.cl>
>     > To: rcpp-devel at r-forge.wu-wien.ac.at
>     > Subject: [Rcpp-devel] Dulmage-Mendelsohn decomposition in R via Rcpp
>
>     > Dear community
>
>     > Dr. Eddelbuettel suggested me to ask here.
>
>     > I am trying to implement *Dulmage-Mendelsohn decomposition* in R.
> CSparse
>     > already has a function to do this, and it's not exported in Matrix
> so I
>     > took the C files and tried to use them in  R.
>
>     > I decided to sketch this into an R Package with Rcpp:
>     > https://github.com/pachamaltese/dulmagemendelsohn
>
>     > The final goal is to find a permutation matrix, so that the original
> matrix
>     > is rearranged into a block diagonal matrix:
>
>     > matrix_input <- matrix(
>     > c(0,0,7,0,0,
>     > 0,0,0,0,3,
>     > 5,0,0,1,0,
>     > 0,0,2,0,0,
>     > 0,1,0,0,0),
>     > ncol = 5, nrow = 5
>     > )
>
>     > dm_decomposition <- function(matrix_input) {
>     > # the actual decomposition happens here
>     > # ... "MAGIC" ...
>
>     > # but here is an example output
>     > matrix(
>     > c(0,7,0,0,0,
>     > 5,0,1,0,0,
>     > 0,2,0,0,0,
>     > 0,0,0,0,3,
>     > 0,0,0,1,0),
>     > ncol = 5, nrow = 5
>     > )
>     > }
>
>     > dm_decomposition(matrix_input)
>
>     > Can you please provide me some guidance to get this working?
>
>     > I am by no means a C/C++ expert, I just have experience with
> statistics an
>     > writing R packages.
>
>
>     > *Mauricio Vargas Sepúlveda 帕夏*
>     > Do you like Data Science? visit pacha.hk
>
>     > -------------- next part --------------
>     > An HTML attachment was scrubbed...
>     > URL: <
> http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20200325/d88b3c55/attachment-0001.html
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20200325/5d69f37e/attachment.html>


More information about the Rcpp-devel mailing list