let log2 x = (log x) /. (log 2.0);; let ceil y = let rec iceil x y = if y <= 0.0 then x else iceil (x+1) (y -. 1.0) in iceil 0 y;; let pow y = let rec ipow x y = match y with 0 -> x | y -> ipow (x*2) (y-1) in ipow 1 y;; let biject x y = let width = ceil (log2 (float_of_int x)) in let raised = pow y in raised + x;;