Home | History | Annotate | Download | only in libbid

Lines Matching refs:coeff

789   UINT64 tmp, coeff;
796 coeff = (x & LARGE_COEFF_MASK64) | LARGE_COEFF_HIGH_BIT64;
808 if (coeff >= 10000000000000000ull)
809 coeff = 0;
810 *pcoefficient_x = coeff;
814 return coeff;
829 get_BID64 (UINT64 sgn, int expon, UINT64 coeff, int rmode,
836 if (coeff > 9999999999999999ull) {
838 coeff = 1000000000000000ull;
868 coeff += round_const_table[rmode][extra_digits];
870 // get coeff*(2^M[extra_digits])/10^extra_digits
871 __mul_64x128_full (QH, Q_low, coeff,
951 while (coeff < 1000000000000000ull && expon >= 3 * 256) {
953 coeff = (coeff << 3) + (coeff << 1);
982 if (coeff < mask) {
985 r |= (coeff | sgn);
990 // eliminate the case coeff==10^16 after rounding
991 if (coeff == 10000000000000000ull) {
1001 // add coeff, without leading bits
1003 coeff &= mask;
1004 r |= coeff;
1016 fast_get_BID64 (UINT64 sgn, int expon, UINT64 coeff) {
1023 if (coeff < mask) {
1026 r |= (coeff | sgn);
1031 // eliminate the case coeff==10^16 after rounding
1032 if (coeff == 10000000000000000ull) {
1042 // add coeff, without leading bits
1044 coeff &= mask;
1045 r |= coeff;
1055 fast_get_BID64_check_OF (UINT64 sgn, int expon, UINT64 coeff, int rmode,
1060 if ((expon == 3 * 256 - 1) && coeff == 10000000000000000ull) {
1062 coeff = 1000000000000000ull;
1066 while (coeff < 1000000000000000ull && expon >= 3 * 256) {
1068 coeff = (coeff << 3) + (coeff << 1);
1099 if (coeff < mask) {
1102 r |= (coeff | sgn);
1107 // eliminate the case coeff==10^16 after rounding
1108 if (coeff == 10000000000000000ull) {
1118 // add coeff, without leading bits
1120 coeff &= mask;
1121 r |= coeff;
1132 very_fast_get_BID64 (UINT64 sgn, int expon, UINT64 coeff) {
1139 if (coeff < mask) {
1142 r |= (coeff | sgn);
1149 // add coeff, without leading bits
1151 coeff &= mask;
1152 r |= coeff;
1161 very_fast_get_BID64_small_mantissa (UINT64 sgn, int expon, UINT64 coeff) {
1167 r |= (coeff | sgn);
1176 get_BID64_UF (UINT64 sgn, int expon, UINT64 coeff, UINT64 R, int rmode,
1199 // 10*coeff
1200 coeff = (coeff << 3) + (coeff << 1);
1208 coeff |= 1;
1211 C128.w[0] = coeff + round_const_table[rmode][extra_digits];
1213 // get coeff*(2^M[extra_digits])/10^extra_digits
1303 get_BID64_small_mantissa (UINT64 sgn, int expon, UINT64 coeff,
1338 C128.w[0] = coeff + round_const_table[rmode][extra_digits];
1340 // get coeff*(2^M[extra_digits])/10^extra_digits
1422 while (coeff < 1000000000000000ull && expon >= 3 * 256) {
1424 coeff = (coeff << 3) + (coeff << 1);
1449 if (coeff >= mask) {
1453 // add coeff, without leading bits
1455 coeff &= mask;
1456 r |= coeff;
1464 r |= (coeff | sgn);
1761 UINT128 coeff, T33, T34;
1778 /*coeff.w[0] = x.w[0];
1779 coeff.w[1] = (x.w[1]) & LARGE_COEFF_MASK128;
1782 if (__unsigned_compare_ge_128 (coeff, T33)) // non-canonical
1801 coeff.w[0] = x.w[0];
1802 coeff.w[1] = (x.w[1]) & SMALL_COEFF_MASK128;
1807 if (__unsigned_compare_ge_128 (coeff, T34))
1808 coeff.w[0] = coeff.w[1] = 0;
1810 pcoefficient_x->w[0] = coeff.w[0];
1811 pcoefficient_x->w[1] = coeff.w[1];
1816 return coeff.w[0] | coeff.w[1];
1826 UINT128 coeff, T33, T34;
1843 coeff.w[0] = px->w[0];
1844 coeff.w[1] = (px->w[1]) & LARGE_COEFF_MASK128;
1847 if (__unsigned_compare_ge_128 (coeff, T33)) { // non-canonical
1855 coeff.w[0] = px->w[0];
1856 coeff.w[1] = (px->w[1]) & SMALL_COEFF_MASK128;
1861 if (__unsigned_compare_ge_128 (coeff, T34))
1862 coeff.w[0] = coeff.w[1] = 0;
1864 pcoefficient_x->w[0] = coeff.w[0];
1865 pcoefficient_x->w[1] = coeff.w[1];
1870 return coeff.w[0] | coeff.w[1];
1878 UINT128 coeff, unsigned *prounding_mode,
1887 while (__unsigned_compare_gt_128 (T, coeff)
1889 coeff.w[1] =
1890 (coeff.w[1] << 3) + (coeff.w[1] << 1) + (coeff.w[0] >> 61) +
1891 (coeff.w[0] >> 63);
1892 tmp2 = coeff.w[0] << 3;
1893 coeff.w[0] = (coeff.w[0] << 1) + tmp2;
1894 if (coeff.w[0] < tmp2)
1895 coeff.w[1]++;
1927 pres->w[0] = coeff.w[0];
1930 pres->w[1] = sgn | tmp | coeff.w[1];
1942 UINT128 coeff) {
1945 pres->w[0] = coeff.w[0];
1948 pres->w[1] = sgn | tmp | coeff.w[1];
1957 get_BID128_fast (UINT128 * pres, UINT64 sgn, int expon, UINT128 coeff) {
1960 // coeff==10^34?
1961 if (coeff.w[1] == 0x0001ed09bead87c0ull
1962 && coeff.w[0] == 0x378d8e6400000000ull) {
1965 coeff.w[1] = 0x0000314dc6448d93ull;
1966 coeff.w[0] = 0x38c15b0a00000000ull;
1969 pres->w[0] = coeff.w[0];
1972 pres->w[1] = sgn | tmp | coeff.w[1];
1981 get_BID128 (UINT128 * pres, UINT64 sgn, int expon, UINT128 coeff,
1986 // coeff==10^34?
1987 if (coeff.w[1] == 0x0001ed09bead87c0ull
1988 && coeff.w[0] == 0x378d8e6400000000ull) {
1991 coeff.w[1] = 0x0000314dc6448d93ull;
1992 coeff.w[0] = 0x38c15b0a00000000ull;
1998 return handle_UF_128 (pres, sgn, expon, coeff, prounding_mode,
2004 while (__unsigned_compare_gt_128 (T, coeff)
2006 coeff.w[1] =
2007 (coeff.w[1] << 3) + (coeff.w[1] << 1) + (coeff.w[0] >> 61) +
2008 (coeff.w[0] >> 63);
2009 tmp2 = coeff.w[0] << 3;
2010 coeff.w[0] = (coeff.w[0] << 1) + tmp2;
2011 if (coeff.w[0] < tmp2)
2012 coeff.w[1]++;
2018 if (!(coeff.w[1] | coeff.w[0])) {
2049 pres->w[0] = coeff.w[0];
2052 pres->w[1] = sgn | tmp | coeff.w[1];
2063 get_BID128_string (UINT128 * pres, UINT64 sgn, int expon, UINT128 coeff) {
2068 // coeff==10^34?
2069 if (coeff.w[1] == 0x0001ed09bead87c0ull
2070 && coeff.w[0] == 0x378d8e6400000000ull) {
2073 coeff.w[1] = 0x0000314dc6448d93ull;
2074 coeff.w[0] = 0x38c15b0a00000000ull;
2080 return handle_UF_128 (pres, sgn, expon, coeff, &rmode, &status);
2086 (coeff.w[1] < power10_table_128[33].w[1] ||
2087 (coeff.w[1] == power10_table_128[33].w[1]
2088 && coeff.w[0] < power10_table_128[33].w[0]))) {
2089 D2.w[1] = (coeff.w[1] << 1) | (coeff.w[0] >> 63);
2090 D2.w[0] = coeff.w[0] << 1;
2091 D8.w[1] = (coeff.w[1] << 3) | (coeff.w[0] >> 61);
2092 D8.w[0] = coeff.w[0] << 3;
2094 __add_128_128 (coeff, D2, D8);
2097 } else if (!(coeff.w[0] | coeff.w[1]))
2127 pres->w[0] = coeff.w[0];
2130 pres->w[1] = sgn | tmp | coeff.w[1];
2185 get_BID32 (UINT32 sgn, int expon, UINT64 coeff, int rmode,
2193 if (coeff > 9999999ull) {
2195 coeff = 1000000ull;
2232 coeff += round_const_table[rmode][extra_digits];
2234 // get coeff*(2^M[extra_digits])/10^extra_digits
2235 __mul_64x64_to_128 (Q, coeff, reciprocals10_64[extra_digits]);
2302 while (coeff < 1000000 && expon > DECIMAL_MAX_EXPON_32) {
2303 coeff = (coeff << 3) + (coeff << 1);
2330 if (coeff < mask) {
2333 r |= ((UINT32) coeff | sgn);
2341 // add coeff, without leading bits
2343 r |= (((UINT32) coeff) & mask);
2354 very_fast_get_BID32 (UINT32 sgn, int expon, UINT32 coeff) {
2360 if (coeff < mask) {
2363 r |= (coeff | sgn);
2370 // add coeff, without leading bits
2372 coeff &= mask;
2373 r |= coeff;