sig
module I = Numerors_interval
type t = { exact : I.t; approx : I.t; abs_err : I.t; rel_err : I.t; }
val pretty : Format.formatter -> Numerors_arithmetics.t -> unit
val zero : Numerors_arithmetics.t -> Numerors_arithmetics.t
val prec : Numerors_arithmetics.t -> Numerors_utils.Precisions.t
val create : I.t -> I.t -> I.t -> I.t -> Numerors_arithmetics.t
val apply :
(I.t -> I.t -> I.t) ->
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> Numerors_arithmetics.t
val change_prec :
Numerors_utils.Precisions.t ->
Numerors_arithmetics.t -> Numerors_arithmetics.t
val forward_interaction : Numerors_arithmetics.t -> Numerors_arithmetics.t
val join :
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> Numerors_arithmetics.t
val narrow :
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> Numerors_arithmetics.t Eval.or_bottom
val compare : Numerors_arithmetics.t -> Numerors_arithmetics.t -> int
val is_included : Numerors_arithmetics.t -> Numerors_arithmetics.t -> bool
module type Arithmetic =
sig
type forward
module Forward :
sig
val neg :
Numerors_arithmetics.t -> Numerors_arithmetics.Arithmetic.forward
val log :
Numerors_arithmetics.t -> Numerors_arithmetics.Arithmetic.forward
val exp :
Numerors_arithmetics.t -> Numerors_arithmetics.Arithmetic.forward
val sqrt :
Numerors_arithmetics.t -> Numerors_arithmetics.Arithmetic.forward
val add :
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> Numerors_arithmetics.Arithmetic.forward
val sub :
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> Numerors_arithmetics.Arithmetic.forward
val mul :
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> Numerors_arithmetics.Arithmetic.forward
val div :
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> Numerors_arithmetics.Arithmetic.forward
end
module Backward :
sig
val neg :
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> I.t Eval.or_bottom
val add :
Numerors_arithmetics.t ->
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> (I.t * I.t) Eval.or_bottom
val sub :
Numerors_arithmetics.t ->
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> (I.t * I.t) Eval.or_bottom
val mul :
Numerors_arithmetics.t ->
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> (I.t * I.t) Eval.or_bottom
val div :
Numerors_arithmetics.t ->
Numerors_arithmetics.t ->
Numerors_arithmetics.t -> (I.t * I.t) Eval.or_bottom
end
end
module Exact :
sig
type forward = I.t
module Forward :
sig
val neg : t -> forward
val log : t -> forward
val exp : t -> forward
val sqrt : t -> forward
val add : t -> t -> forward
val sub : t -> t -> forward
val mul : t -> t -> forward
val div : t -> t -> forward
end
module Backward :
sig
val neg : t -> t -> I.t Eval.or_bottom
val add : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val sub : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val mul : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val div : t -> t -> t -> (I.t * I.t) Eval.or_bottom
end
end
module Approx :
sig
type forward = I.t
module Forward :
sig
val neg : t -> forward
val log : t -> forward
val exp : t -> forward
val sqrt : t -> forward
val add : t -> t -> forward
val sub : t -> t -> forward
val mul : t -> t -> forward
val div : t -> t -> forward
end
module Backward :
sig
val neg : t -> t -> I.t Eval.or_bottom
val add : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val sub : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val mul : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val div : t -> t -> t -> (I.t * I.t) Eval.or_bottom
end
end
module Abs_Err :
sig
type forward = exact:I.t -> approx:I.t -> I.t
module Forward :
sig
val neg : t -> forward
val log : t -> forward
val exp : t -> forward
val sqrt : t -> forward
val add : t -> t -> forward
val sub : t -> t -> forward
val mul : t -> t -> forward
val div : t -> t -> forward
end
module Backward :
sig
val neg : t -> t -> I.t Eval.or_bottom
val add : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val sub : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val mul : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val div : t -> t -> t -> (I.t * I.t) Eval.or_bottom
end
end
module Rel_Err :
sig
type forward = exact:I.t -> abs_err:I.t -> I.t
module Forward :
sig
val neg : t -> forward
val log : t -> forward
val exp : t -> forward
val sqrt : t -> forward
val add : t -> t -> forward
val sub : t -> t -> forward
val mul : t -> t -> forward
val div : t -> t -> forward
end
module Backward :
sig
val neg : t -> t -> I.t Eval.or_bottom
val add : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val sub : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val mul : t -> t -> t -> (I.t * I.t) Eval.or_bottom
val div : t -> t -> t -> (I.t * I.t) Eval.or_bottom
end
end
module Backward_Comparisons :
sig
val lt :
Numerors_arithmetics.t ->
Numerors_arithmetics.t ->
(Numerors_arithmetics.t * Numerors_arithmetics.t) Eval.or_bottom
val le :
Numerors_arithmetics.t ->
Numerors_arithmetics.t ->
(Numerors_arithmetics.t * Numerors_arithmetics.t) Eval.or_bottom
val gt :
Numerors_arithmetics.t ->
Numerors_arithmetics.t ->
(Numerors_arithmetics.t * Numerors_arithmetics.t) Eval.or_bottom
val ge :
Numerors_arithmetics.t ->
Numerors_arithmetics.t ->
(Numerors_arithmetics.t * Numerors_arithmetics.t) Eval.or_bottom
end
end