Lines Matching refs:sc_digit

243     const char* src_p, int dst_n, sc_digit* data_p, sc_digit* ctrl_p )
246 sc_digit ctrl; // Control word now assembling.
247 sc_digit data; // Data word now assembling.
378 const char* src_p, int dst_n, sc_digit* data_p, sc_digit* ctrl_p )
380 sc_digit ctrl; // Control word now assembling.
381 sc_digit data; // Data word now assembling.
548 vec_from_str(int unb, int und, sc_digit *u,
569 "vec_from_str( int, int, sc_digit*, const char*, sc_numrep base ) : "
594 "vec_from_str( int, int, sc_digit*, const char*, sc_numrep base ) : "
610 "vec_from_str( int, int, sc_digit*, const char*, sc_numrep base ) : "
629 vec_add(int ulen, const sc_digit *u,
630 int vlen, const sc_digit *v,
631 sc_digit *w)
641 const sc_digit *uend = (u + ulen);
642 const sc_digit *vend = (v + vlen);
644 sc_digit carry = 0; // Also used as sum to save space.
674 vec_add_on(int ulen, sc_digit *ubegin,
675 int vlen, const sc_digit *v)
684 sc_digit *u = ubegin;
685 const sc_digit *uend = (u + ulen);
686 const sc_digit *vend = (v + vlen);
688 sc_digit carry = 0; // Also used as sum to save space.
707 "vec_add_on( int, sc_digit*, int, const "
708 "sc_digit* ) : "
719 vec_add_on2(int ulen, sc_digit *ubegin,
724 , const sc_digit *v)
733 sc_digit *u = ubegin;
734 const sc_digit *uend = (u + ulen);
736 sc_digit carry = 0; // Also used as sum to save space.
748 "vec_add_on2( int, sc_digit*, int, const "
749 "sc_digit* ) : "
758 vec_add_small(int ulen, const sc_digit *u,
759 sc_digit v,
760 sc_digit *w)
768 const sc_digit *uend = (u + ulen);
771 sc_digit carry = (*u++) + v;
794 vec_add_small_on(int ulen, sc_digit *u, sc_digit v)
812 "vec_add_small_on( int, sc_digit*, unsigned "
824 vec_sub(int ulen, const sc_digit *u,
825 int vlen, const sc_digit *v,
826 sc_digit *w)
836 const sc_digit *uend = (u + ulen);
837 const sc_digit *vend = (v + vlen);
839 sc_digit borrow = 0; // Also used as diff to save space.
869 vec_sub_on(int ulen, sc_digit *ubegin,
870 int vlen, const sc_digit *v)
879 sc_digit *u = ubegin;
880 const sc_digit *uend = (u + ulen);
881 const sc_digit *vend = (v + vlen);
883 sc_digit borrow = 0; // Also used as diff to save space.
909 vec_sub_on2(int ulen, sc_digit *ubegin,
910 int vlen, const sc_digit *v)
918 sc_digit *u = ubegin;
919 const sc_digit *uend = (u + sc_min(ulen, vlen));
921 sc_digit borrow = 0; // Also used as diff to save space.
933 "vec_sub_on2( int, sc_digit*, int, const "
934 "sc_digit* ) : "
942 vec_sub_small(int ulen, const sc_digit *u,
943 sc_digit v,
944 sc_digit *w)
952 const sc_digit *uend = (u + ulen);
955 sc_digit borrow = ((*u++) + DIGIT_RADIX) - v;
979 vec_sub_small_on(int ulen, sc_digit *u, sc_digit v)
1000 vec_mul(int ulen, const sc_digit *u,
1001 int vlen, const sc_digit *vbegin,
1002 sc_digit *wbegin)
1069 const sc_digit *uend = (u + ulen);
1070 const sc_digit *vend = (vbegin + vlen);
1074 sc_digit u_h = (*u++); // A|B
1075 sc_digit u_l = low_half(u_h); // B
1083 sc_digit carry = 0;
1085 sc_digit *w = (wbegin++);
1087 const sc_digit *v = vbegin;
1091 sc_digit v_h = (*v++); // C|D
1092 sc_digit v_l = low_half(v_h); // D
1101 sc_digit prod_l = (*w) + u_l * v_l + low_half(carry);
1122 vec_mul_small(int ulen, const sc_digit *u,
1123 sc_digit v, sc_digit *w)
1134 const sc_digit *uend = (u + ulen);
1136 sc_digit carry = 0;
1140 sc_digit u_AB = (*u++);
1147 sc_digit prod_l = v * low_half(u_AB) + low_half(carry);
1166 vec_mul_small_on(int ulen, sc_digit *u, sc_digit v)
1176 sc_digit carry = 0;
1185 sc_digit prod_l = v * low_half(u[i]) + low_half(carry);
1200 "vec_mul_small_on( int, sc_digit*, unsigned "
1210 vec_div_large(int ulen, const sc_digit *u,
1211 int vlen, const sc_digit *v,
1212 sc_digit *w)
1244 // Set (uchar) x = (sc_digit) u.
1251 // Set (uchar) y = (sc_digit) v.
1269 sc_digit y2 = (y[ylen - 1] << BITS_PER_BYTE) + y[ylen - 2];
1271 const sc_digit DOUBLE_BITS_PER_BYTE = 2 * BITS_PER_BYTE;
1277 sc_digit qk;
1280 // following code assumes that sizeof(sc_digit) >= 3 BYTEs.
1295 sc_digit carry = 0;
1299 sc_digit diff = (xk[i] + BYTE_RADIX) - (carry & BYTE_MASK);
1338 // Set (sc_digit) w = (uchar) q.
1352 vec_div_small(int ulen, const sc_digit *u,
1353 sc_digit v, sc_digit *q)
1388 sc_digit r = 0;
1389 const sc_digit *ubegin = u;
1396 sc_digit u_AB = (*--u); // A|B
1403 sc_digit num = concat(r, high_half(u_AB)); // num = r|A
1418 vec_rem_large(int ulen, const sc_digit *u,
1419 int vlen, const sc_digit *v,
1420 sc_digit *w)
1445 // Set (uchar) x = (sc_digit) u.
1452 // Set (uchar) y = (sc_digit) v.
1470 sc_digit y2 = (y[ylen - 1] << BITS_PER_BYTE) + y[ylen - 2];
1472 const sc_digit DOUBLE_BITS_PER_BYTE = 2 * BITS_PER_BYTE;
1478 sc_digit qk;
1481 // following code assumes that sizeof(sc_digit) >= 3 BYTEs.
1496 sc_digit carry = 0;
1500 sc_digit diff = (xk[i] + BYTE_RADIX) - (carry & BYTE_MASK);
1534 // Set (sc_digit) w = (uchar) x for the remainder.
1547 sc_digit
1548 vec_rem_small(int ulen, const sc_digit *u, sc_digit v)
1558 sc_digit r = 0;
1559 const sc_digit *ubegin = u;
1564 sc_digit u_AB = (*--u); // A|B
1580 sc_digit
1581 vec_rem_on_small(int ulen, sc_digit *u, sc_digit v)
1591 sc_digit r = 0;
1592 const sc_digit *ubegin = u;
1598 sc_digit u_AB = (*--u); // A|B
1605 sc_digit num = concat(r, high_half(u_AB)); // num = r|A
1619 // Set (uchar) v = (sc_digit) u. Return the new vlen.
1621 vec_to_char(int ulen, const sc_digit *u,
1665 // Set (sc_digit) v = (uchar) u.
1666 // - sizeof(uchar) <= sizeof(sc_digit),
1669 int vlen, sc_digit *v)
1675 assert(sizeof(uchar) <= sizeof(sc_digit));
1678 sc_digit *vend = (v + vlen);
1681 const sc_digit mask = one_and_ones(nsr);
1683 (*v) = (sc_digit) u[ulen - 1];
1689 sc_digit *viter = v;
1691 sc_digit carry = 0;
1694 sc_digit vval = (*viter);
1702 (*v) |= (sc_digit) u[i];
1711 vec_shift_left(int ulen, sc_digit *u, int nsl)
1751 sc_digit *uiter = u;
1752 sc_digit *uend = uiter + ulen;
1755 sc_digit mask = one_and_ones(nsr);
1757 sc_digit carry = 0;
1760 sc_digit uval = (*uiter);
1773 vec_shift_right(int ulen, sc_digit *u, int nsr, sc_digit fill)
1820 sc_digit *ubegin = u;
1821 sc_digit *uiter = (ubegin + ulen);
1824 sc_digit mask = one_and_ones(nsr);
1826 sc_digit carry = (fill & mask) << nsl;
1829 sc_digit uval = (*--uiter);
1840 vec_reverse(int unb, int und, sc_digit *ud,
1851 std::sprintf( msg, "vec_reverse( int, int, sc_digit*, int l, int r ) : "
1863 sc_digit d[MAX_NDIGITS];
1865 sc_digit *d = new sc_digit[und];