"Csim.binary" <- function(sim,assoc) { if(!(is.matrix.csr(sim) || is.matrix(sim)) || (nrow(sim) != ncol(sim)) || (nrow(sim)==0)) stop("Invalid sim matrix") if(!is.list(assoc) || (length(assoc) != nrow(sim)) || !is.character(unlist(assoc))) stop("Invalid assoc list") if(nrow(sim)==1) return(as.matrix.csr(0,nrow(sim),ncol(sim))) sim <- .Call("Csim_binary",assoc,PACKAGE="mBison") gc(FALSE) sim <- as.matrix.csr(sim) gc(FALSE) sim <- sim+t(sim) gc(FALSE) return(sim) }