let rec v_atan v = match v with |N i -> return_R (atan (float_of_int i)) |R f -> return_R (atan f) |Vec (size, vec) -> make_vector size (fun i -> v_atan (vec i)) |Zero -> return_R (atan 0.) |W -> W