| 1920 | const int MOD_MASK = (1 << NBITS) - 1; |
| 1921 | |
| 1922 | inline void wenc16(unsigned short a, unsigned short b, unsigned short &l, |
| 1923 | unsigned short &h) { |
| 1924 | int ao = (a + A_OFFSET) & MOD_MASK; |
| 1925 | int m = ((ao + b) >> 1); |
| 1926 | int d = ao - b; |
| 1927 | |
| 1928 | if (d < 0) m = (m + M_OFFSET) & MOD_MASK; |
| 1929 | |
| 1930 | d &= MOD_MASK; |
| 1931 | |
| 1932 | l = static_cast<unsigned short>(m); |
| 1933 | h = static_cast<unsigned short>(d); |
| 1934 | } |
| 1935 | |
| 1936 | inline void wdec16(unsigned short l, unsigned short h, unsigned short &a, |
| 1937 | unsigned short &b) { |