|
inlineconstexpr |
Parameters
k
: integral constant whose bits are the result of a lookup table for the ternary operation. The consteval function mfb (make from bits) can be used to generate this constant from its bits (see below).u
, v
, w
, : first argument.c
: Conditional expression masking the operation.m
: Logical value masking the operation.Return value
a
and if any parameter is simd, its number of lanes is the number of lanes of the outputThe following table is the pattern of a truth table: if op
is a ternary bit operator the result column is the desired bit output when calling op
pn the x
, y
and z
bit values.
x | y | z | result |
---|---|---|---|
0 | 0 | 0 | a |
0 | 0 | 1 | b |
0 | 1 | 0 | c |
0 | 1 | 1 | d |
1 | 0 | 0 | e |
1 | 0 | 1 | f |
1 | 1 | 0 | g |
1 | 1 | 1 | h |
A programmer as only to supply the result column, i.e. defines values of bits a through h in a single 8-bit value
k = .(a << 7) + (b << 6) + (c << 5) + (d << 4) + (e << 3) + (f << 2) + (g << 1) + h
(the consteval function eve::truth_table
can be used to do that operation: see the example)