R/nearlyEqual.R

Defines functions nearlyEqual

nearlyEqual <- function(a,b,epsilon=1e-10) {
  if(length(a) != length(b)) stop("a and b have unequal length.")
  absA <- abs(a);
  absB <- abs(b);
  diff <- abs(a - b);
  y  <- rep(NA,length(a))
  i1 <- a == b
  i2 <- (a == 0 | b == 0 | (absA + absB < .Machine$double.xmin))
  y[i1] <- TRUE
  y[!i1 &  i2] <- (diff[!i1 & i2] < (epsilon*.Machine$double.xmin))
  y[!i1 & !i2] <- (diff[!i1 & !i2]/min((absA[!i1 & !i2] + absB[!i1 & !i2]), .Machine$double.xmax) < epsilon)
  return(y)
}

Try the HardyWeinberg package in your browser

Any scripts or data that you put into this service are public.

HardyWeinberg documentation built on May 7, 2022, 5:05 p.m.