Module CostDomain.BasicCost

include module type of BO.Polynomials.NonNegativePolynomial with type t = BO.Polynomials.NonNegativePolynomial.t
val pp_hum : Stdlib.Format.formatter -> t -> unit
val leq : lhs:t -> rhs:t -> bool
val top : t
val of_unreachable : IBase.Location.t -> t
val zero : t
val one : t
val of_int_exn : int -> t
val is_symbolic : t -> bool
val is_top : t -> bool
val is_unreachable : t -> bool
val is_zero : t -> bool
val is_one : t -> bool
val of_non_negative_bound : ?degree_kind:BO.Polynomials.DegreeKind.t -> BO.Bounds.NonNegativeBound.t -> t
val of_func_ptr : BO.Symb.SymbolPath.partial -> t
val plus : t -> t -> t
val mult_unreachable : t -> t -> t

if one of the operands is unreachable, the result is unreachable

val mult : t -> t -> t
val mult_loop : iter:t -> body:t -> t
val min_default_left : t -> t -> t
val degree : t -> BO.Polynomials.Degree.t option
val degree_str : t -> string
val compare_by_degree : t -> t -> int
val pp_degree : only_bigO:bool -> Stdlib.Format.formatter -> degree_with_term -> unit
val polynomial_traces : t -> Absint.Errlog.loc_trace
val encode : t -> string
val decode : string -> t
val get_degree_with_term : t -> degree_with_term
val version : int

version used to consistently compare at infer-reportdiff phase