1 (* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
4 * MLton is released under a BSD-style license.
5 * See the file MLton-LICENSE for details.
8 signature ALPHA_BETA_STRUCTS =
27 | NonLeaf of {lower: Value.t, upper: Value.t}
28 val evaluate: t -> value
29 val layout: t -> Layout.t
36 val peek: 'a t * State.t -> {value: 'a option,
41 signature ALPHA_BETA =
43 include ALPHA_BETA_STRUCTS
45 (* return v s.t. a <= v <= b
46 * andalso |v - v'| is minimal, where v' is maximum value.
48 val alphaBeta: State.t * Value.t * Value.t -> Value.t
54 val make: {lower: Value.t, upper: Value.t} -> t
56 val point: Value.t -> t
57 val isPoint: t -> bool
58 val lower: t -> Value.t
59 val upper: t -> Value.t
60 val layout: t -> Layout.t
63 (* Return closest value in interval to maximum value. *)
64 (* May modify the cache. *)
65 val alphaBetaCache: State.t * Interval.t * Interval.t Cache.t -> Value.t