let niter = 50 let limit = 2. let limit2 = limit *. limit let add_bit0 cr ci byte = let rec loop i zr zi = if zr *. zr +. zi *. zi > limit2 then (byte lsl 1) lor 0x00 else if i > niter then (byte lsl 1) lor 0x01 else loop (i + 1) (zr *. zr -. zi *. zi +. cr) (2. *. zr *. zi +. ci) in loop 1 0. 0. let () = let w = 400 in let invw = 2. /. float w in let ci = -1. in let cr = 300. *. invw -. 1.5 in Printf.printf "%f %f -> %i\n" cr ci (add_bit0 cr ci 0);