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

Dirk Eddelbuettel edd at debian.org
Wed Mar 25 14:18:09 CET 2020


Mauricio,

On 25 March 2020 at 10:06, Mauricio Vargas wrote:
| 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.

You should be able to find several articles at the Rcpp Gallery that show hot
to do that.  You can "practice" with functions from packages that are already
exported as Martin may be able to export one for you.  To expect Martin, who
doesn't even code much in C++, to fix your package for you may not be an
entirely realistic, or fair, expectation.

Dirk

| 
| 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
| > >
| >
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list