R/makePosSemiDef.r

#' Makes square matrices positive semi-definite.
#' 
#' Internal function which returns closest positive semi-definite matrix to input matrix.
#' 
#' @param a Square matrix.
#' @param offset Offset.
#' @return Positive semi-definite matrix.
#' @keywords internal
#' @author Saskia Freytag
#' @export
makePosSemiDef<-function(	
										a, # matrix 
										offset=0){
										
	lambda<-abs(min(eigen(a, only.values=T)$values))
  	return((a + (diag(dim(a)[1]) * (lambda+offset))) /(1+lambda+offset))
}
PeteHaitch/RUVcorr documentation built on May 8, 2019, 1:31 a.m.