Selecting runs¶
select (Python, MATLAB, Julia), gamut_select (C) and --where (the
command line) take a condition and return the positions of the rows that
meet it, in increasing order. The language is the same everywhere, because
the core evaluates it.
mach > 0.7
status == converged
model == "k-omega SST" or alpha <= 0
(mach>0.4)and(alpha<5)
speed >= 20 and not (gamma > 1)
Comparisons¶
A comparison is a name, an operator and a value.
| Name | Operators | Value |
|---|---|---|
| a parameter or a scalar | == != < <= > >= |
a decimal number: 0.7, -2, 1e-5 |
| a label | == != |
one of the label's names, in double quotes if it has spaces or any of ( ) = ! < > |
Operators and parentheses need no spaces around them. A single = is not
an operator; the message says which ones are. A name that itself holds a
double quote cannot be written in a condition; choose those runs by
position instead.
Combining¶
not binds tightest, then and, then or; parentheses group.
a or b and c is a or (b and c).
Missing values¶
A result that is missing (NaN) meets no comparison, != included, so a
failed run's cl is neither <= 0.5 nor > 0.5. not turns that into a
match: not (cl > 0.5) keeps the failed runs, while cl <= 0.5 leaves
them out.
Refusals¶
A condition that does not parse, a name the file does not have, a label
compared with <, or a label value that is not in its table is refused
with a message saying what and where (the character position for a
syntax error), and nothing is returned.
Limits¶
A selection reads the columns it compares a block of rows at a time, so memory stays bounded. Files with more than 2²⁷ rows (about 134 million) are refused; select on a subset extracted first.