Module Tolk.Heuristic_common
What Heuristic's rules read of a kernel and apply to it.
module K = Postrange.Schedulerval debug : unit -> intdebug () is the level of Setting.debug.
val split : ?top:bool -> K.t -> int -> int -> Opt.target -> Ops.t listsplit k axis amount target applies a split the heuristic has checked and returns the axes it made, with top choosing the outer end. Raises Invalid_argument if Postrange.Scheduler.apply_opt refuses it.
val try_split : ?top:bool -> K.t -> int -> int -> Opt.target -> booltry_split k axis amount target is whether the split applied.
size_at k i is the size of k's axis i. Raises Invalid_argument if it is not known.
val holds : Shape.Sint.cond -> boolholds c is the truth of the comparison c.
indexes r b is true iff the index of b computes from r, r aside.
val gcd : int -> int -> intgcd a b is the greatest common divisor of a and b.
gcd_with a n is the greatest common divisor of n with the positive a.
run o r is the run of o along the range r: d if o reads r only as r / d, 1 otherwise.
val upcast_max : intupcast_max is the most values an upcast of one axis takes (Postrange.Scheduler.apply_opt's bound).