Lines Matching +full:sigma +full:- +full:delta
1 // SPDX-License-Identifier: GPL-2.0-only
14 const struct tnum tnum_unknown = { .value = 0, .mask = -1 };
23 u64 chi = min ^ max, delta; in tnum_range() local
29 /* e.g. if chi = 4, bits = 3, delta = (1<<3) - 1 = 7. in tnum_range()
30 * if chi = 0, bits = 0, delta = (1<<0) - 1 = 0, so we return in tnum_range()
33 delta = (1ULL << bits) - 1; in tnum_range()
34 return TNUM(min & ~delta, delta); in tnum_range()
64 u64 sm, sv, sigma, chi, mu; in tnum_add() local
68 sigma = sm + sv; in tnum_add()
69 chi = sigma ^ sv; in tnum_add()
78 dv = a.value - b.value; in tnum_sub()
80 beta = dv - b.mask; in tnum_sub()
116 * appropriately bit-shifting them. Instead of directly performing tnum addition
118 * product into two tnums, consisting of the value-sum (acc_v) and the
119 * mask-sum (acc_m) and then perform tnum addition on them. The following paper
141 /* Note that if a and b disagree - i.e. one has a 'known 1' where the other has
142 * a 'known 0' - this will return a 'known 1' for that bit.
155 a.value &= (1ULL << (size * 8)) - 1; in tnum_cast()
156 a.mask &= (1ULL << (size * 8)) - 1; in tnum_cast()
164 return !((a.value | a.mask) & (size - 1)); in tnum_is_aligned()
179 for (n = 64; n; n--) { in tnum_sbin()
182 str[n - 1] = 'x'; in tnum_sbin()
184 str[n - 1] = '1'; in tnum_sbin()
186 str[n - 1] = '0'; in tnum_sbin()
191 str[min(size - 1, (size_t)64)] = 0; in tnum_sbin()