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.