5.3.2 beginning-of-buffer with an Argument

When beginning-of-buffer is called with an argument, an expression is evaluated which calculates what value to pass to goto-char. This expression is rather complicated at first sight. It includes an inner if expression and much arithmetic. It looks like this:

(if (> (buffer-size) 10000)
    ;; Avoid overflow for large buffer sizes!
    (* (prefix-numeric-value arg)
       (/ size 10))
   (+ 10
      (* size
         (prefix-numeric-value arg)))