Lines Matching +full:delta +full:- +full:sigma
1 // SPDX-License-Identifier: GPL-2.0-only
14 const struct tnum tnum_unknown = { .value = 0, .mask = -1 };
23 u64 chi = min ^ max, delta;
29 /* e.g. if chi = 4, bits = 3, delta = (1<<3) - 1 = 7.
30 * if chi = 0, bits = 0, delta = (1<<0) - 1 = 0, so we return
33 delta = (1ULL << bits) - 1;
34 return TNUM(min & ~delta, delta);
64 u64 sm, sv, sigma, chi, mu;
68 sigma = sm + sv;
69 chi = sigma ^ sv;
78 dv = a.value - b.value;
80 beta = dv - b.mask;
120 * - if LSB(a) is a known 0, keep current accumulator
121 * - if LSB(a) is a known 1, add b to current accumulator
122 * - if LSB(a) is unknown, take a union of the above cases.
128 * 11 * -> 11 * -> 11 * -> union(0011, 1001) == x0x1
130 * ------ ------ ------
133 * ------ ------ ------
170 /* Note that if a and b disagree - i.e. one has a 'known 1' where the other has
171 * a 'known 0' - this will return a 'known 1' for that bit.
197 a.value &= (1ULL << (size * 8)) - 1;
198 a.mask &= (1ULL << (size * 8)) - 1;
206 return !((a.value | a.mask) & (size - 1));
221 for (n = 64; n; n--) {
224 str[n - 1] = 'x';
226 str[n - 1] = '1';
228 str[n - 1] = '0';
233 str[min(size - 1, (size_t)64)] = 0;