let map2_base b op x y =
let rec map2_base_rec a x y =
let (qx, mx) = quomod_big_int x b
and (qy, my) = quomod_big_int y b
in let res_m = op mx my
and res_q =
if (eq_big_int zero_big_int qx)
&& (eq_big_int zero_big_int qy)
then a
else map2_base_rec a qx qy
in add_big_int (mult_big_int res_q b) res_m
in map2_base_rec zero_big_int x y