The result, say r, is r <- x + runif(n, -a, a)
  where n <- length(x) and a is the amount
  argument (if specified).
Let z <- max(x) - min(x) (assuming the usual case).
  The amount a to be added is either provided as positive
  argument amount or otherwise computed from z, as
  follows:
If amount == 0, we set a <- factor * z/50 (same as S).
If amount is NULL (default), we set
  a <- factor * d/5 where d is the smallest
  difference between adjacent unique (apart from fuzz) x values.