Module Opt
module Opt: sig
.. end
Data structures used for optimization.
type
bound =
type
binding_pattern = bound array
val binding_pattern_covers : binding_pattern -> binding_pattern -> bool
True iff the first binding pattern is stronger or equal to the second,
in each position, where Ground is stronger than Bound and
Bound is stronger than Free.
Both arguments are assumed to have the same length.
type
mode =
| |
InputGround |
| |
OutputGround |
| |
OutputFree |
type
mode_specifier = mode array
type
discrimination_value = float
Used as hint for optimizations. A float between 0.0 and 1.0.
It estimates for an argument position:
NumberOfDifferentArgumentValues/PredicateSize
(### Maybe use a different formula, that is better suited for
combination of values - ask a statistican.)
So, an argument corresonding to a key attribute has a discrimination
value of 1.0. An argument which has the same value for the whole relation
has a discrimination value of 0.0.
type
discrimination_values = discrimination_value array
Array of discrimination values corresponding to the arguments
of a predicate.
val compute_discrimination_hint : binding_pattern -> discrimination_values -> discrimination_value
val make_default_discrimination_hints : int -> discrimination_values
type
applicability_value = float
Between 0.0 and 1.0.
type
proof =
| |
BuiltinProof |
| |
UnknownProof |
Specifies the dependency of builtin predicates.
type
predicate_kind =
Specifiers for different kinds of predicates.
type
indexargs =
| |
WholeTerm |
| |
Argument of int |
| |
Arguments of int array |
Specifiers for arguments to be indexed.
type
indextype =
| |
HashDt |
| |
AlistDt |
| |
NoIndex |
Specifiers for index types.
type
declaration =