fact: Definition tan_fastP prec x := let th := c1_2 in match F'.le' x th with | true => let prec := F.incr_prec prec 2 in let s := sin_fast0 prec x in I.div prec s (I.sqrt prec (I.sub prec i1 (I.sqr prec s))) | _ => let m := F.StoZ (F.mag x) in let prec := F.incr_prec prec (Z2P (m + 7)) in match sin_cos_reduce prec x (S (Z2nat m)) with | (s, c) => let v := I.sqrt prec (I.sub prec (I.inv prec (I.sqr prec c)) i1) in match s, I.sign_large c with | Lt, Xgt => I.neg v | Gt, Xlt => I.neg v | Lt, Xlt => v | Gt, Xgt => v | _, _ => I.nai end end end.
imports: Coq(Reals Psatz) Flocq(Zaux Raux Digits) Stdlib Xreal Basic Sig Interval Float