Module CostDomain.BasicCost

include module type of BO.Polynomials.NonNegativePolynomial with type NonNegativePolynomial.t = BO.Polynomials.NonNegativePolynomial.t
type t = BO.Polynomials.NonNegativePolynomial.t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
type degree_with_term = (BO__Polynomials.UnreachableTraces.tBO__Polynomials.Degree.t * BO__Polynomials.NonNegativeNonTopPolynomial.tBO__Polynomials.TopTraces.t) Absint.AbstractDomain.Types.below_above
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 : ?⁠autoreleasepool_trace:BO.Bounds.BoundTrace.t -> unit -> t
val of_int_exn : ?⁠autoreleasepool_trace:BO.Bounds.BoundTrace.t -> 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 -> IBase.Location.t -> t
val plus : t -> t -> t
val mult_unreachable : t -> t -> t
val mult : t -> t -> t
val mult_loop : iter:t -> body:t -> t
val min_default_left : t -> t -> t
val subst : IR.Procname.t -> IBase.Location.t -> t -> BO.Bounds.Bound.eval_sym -> BO.FuncPtr.Set.eval_func_ptrs -> (IR.Procname.t -> t option) -> default_closure_cost:BO.Ints.NonNegativeInt.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 : ?⁠is_autoreleasepool_trace:bool -> 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