Lines Matching defs:data
94 a->exp, a->digits, a->len, a->alloc, a->data}
108 static inline mpd_ssize_t _mpd_real_size(mpd_uint_t *data, mpd_ssize_t size);
226 return dec->data[dec->len-1];
380 return mpd_isoddword(dec->data[0]);
467 mpd_free(dec->data);
475 * Resize the coefficient. Existing data up to 'nwords' is left untouched.
562 mpd_uint_zero(result->data, nwords);
580 result->data = mpd_realloc(result->data, MPD_MINALLOC,
581 sizeof *result->data, &err);
693 /* Set data to dynamic */
700 /* Set data to static */
708 /* Set data to shared */
716 /* Set data to const */
782 result->data[0] = 0;
803 result->data[len--] = mpd_pow10[r]-1;
806 result->data[len] = MPD_RADIX-1;
825 result->data[len-1] %= mpd_pow10[r];
828 len = _mpd_real_size(result->data, len);
861 result->data[len-1] %= mpd_pow10[r];
864 len = _mpd_real_size(result->data, len);
897 *lo = dec->data[dec->len-1];
904 tmp = dec->data[dec->len-2] / mpd_pow10[MPD_RDIGITS-(n-r)];
917 _mpd_real_size(mpd_uint_t *data, mpd_ssize_t size)
919 while (size > 1 && data[size-1] == 0) {
934 if (dec->data[i] != 0) {
935 word = dec->data[i];
991 if (_mpd_isallzero(dec->data, dec->len-1)) {
1018 if (_mpd_isallnine(dec->data, dec->len-1)) {
1035 q = dec->data[q] / mpd_pow10[r];
1038 return dec->exp == 0 && mpd_isoddword(dec->data[0]);
1058 _mpd_div_word(&result->data[1], &result->data[0], a, MPD_RADIX);
1059 result->len = (result->data[1] == 0) ? 1 : 2;
1070 _mpd_div_word(&result->data[1], &result->data[0], a, MPD_RADIX);
1071 result->len = (result->data[1] == 0) ? 1 : 2;
1218 result->data[i] = w[i];
1364 tmp.data = tmp_data;
1721 ld = (int)mpd_lsd(dec->data[0]);
1749 mpd_uint_t carry = _mpd_baseincr(dec->data, dec->len);
1751 dec->data[dec->len-1] = mpd_pow10[MPD_RDIGITS-1];
1774 mpd_uint_t carry = _mpd_baseincr(dec->data, dec->len);
1779 dec->data[dec->len] = 1;
1796 mpd_uint_t carry = _mpd_baseincr(dec->data, dec->len);
1801 dec->data[dec->len] = 1;
1982 /* Internal function: Copy a decimal, share data with src: USE WITH CARE! */
1991 dest->data = src->data;
2012 memcpy(result->data, a->data, a->len * (sizeof *result->data));
2031 memcpy(result->data, a->data, a->len * (sizeof *result->data));
2045 memcpy(result->data, a->data, a->len * (sizeof *result->data));
2065 memcpy(result->data, a->data, a->len * (sizeof *result->data));
2146 * Compare the data of big and small. This function does the equivalent
2147 * of first shifting small to the left and then comparing the data of
2206 return -1 * _mpd_basecmp(b->data, a->data, b->len, a->len, shift);
2209 return _mpd_basecmp(a->data, b->data, a->len, b->len, -shift);
2218 CMP_EQUAL_OR_RETURN(a->data[i], b->data[i])
2518 _mpd_baseshiftl(result->data, a->data, size, a->len, n);
2531 _mpd_get_rnd(const mpd_uint_t *data, mpd_ssize_t len, int use_msd)
2535 word = data[len-1];
2540 rest = !_mpd_isallzero(data, len-1);
2544 rest = !_mpd_isallzero(data, len);
2570 rnd = _mpd_get_rnd(a->data, a->len, (n==a->digits));
2576 rnd = _mpd_baseshiftr(result->data, a->data, a->len, n);
2606 rnd = _mpd_get_rnd(result->data, result->len, (n==result->digits));
2610 rnd = _mpd_baseshiftr(result->data, result->data, result->len, n);
2645 rnd = _mpd_get_rnd(a->data, a->len, (n==a->digits));
2652 rnd = _mpd_baseshiftr(result->data, a->data, a->len, n);
2660 rnd = _mpd_baseshiftr(result->data, a->data, a->len, n);
2703 x = small->data[i];
2704 y = big->data[i];
2716 result->data[i] = z;
2719 x = small->data[i];
2720 y = big->data[i];
2733 result->data[i++] = z;
2745 y = big->data[i];
2757 result->len = _mpd_real_size(result->data, small->len);
2822 x = (i < a->len) ? a->data[i] : 0;
2832 result->data[i] = z;
2837 result->len = _mpd_real_size(result->data, len);
2894 x = small->data[i];
2895 y = big->data[i];
2907 result->data[i] = z;
2910 x = small->data[i];
2911 y = big->data[i];
2934 result->data[i++] = z;
2937 y = big->data[i];
2945 result->data[i] = big->data[i];
2950 result->len = _mpd_real_size(result->data, big->len);
3213 x = small->data[i];
3214 y = big->data[i];
3226 result->data[i] = z;
3229 x = small->data[i];
3230 y = big->data[i];
3253 result->data[i++] = z;
3256 y = big->data[i];
3264 result->data[i] = big->data[i];
3269 result->len = _mpd_real_size(result->data, big->len);
3395 tiny.data[0] = mpd_iszerocoeff(small) ? 0 : 1;
3423 carry = _mpd_baseadd(result->data, big->data, small->data,
3431 result->data[newsize-1] = carry;
3440 if (big->data[i] != small->data[i]) {
3441 if (big->data[i] < small->data[i]) {
3450 _mpd_basesub(result->data, big->data, small->data,
3452 newsize = _mpd_real_size(result->data, big->len);
3821 rem = _mpd_shortdiv(q->data, a->data, a->len, b->data[0]);
3824 int ret = _mpd_basedivmod(q->data, NULL, a->data, b->data,
3845 newsize = _mpd_real_size(q->data, newsize);
3854 ld = mpd_lsd(q->data[0]);
3856 q->data[0] += 1;
4034 assert(b->data[0] != 0); /* annotation for scan-build */
4036 _mpd_div_word(&q->data[0], &r->data[0], a->data[0], b->data[0]);
4039 r->data[0] = _mpd_shortdiv(q->data, a->data, a->len, b->data[0]);
4044 ret = _mpd_basedivmod(q->data, r->data, a->data, b->data,
4060 qsize = _mpd_real_size(q->data, qsize);
4072 rsize = _mpd_real_size(r->data, rsize);
4462 word.data[0] = j;
4879 z->data[0] = lnapprox[x];
5921 _mpd_singlemul(result->data, big->data[0], small->data[0]);
5926 _mpd_mul_2_le2(rbuf, big->data, small->data, small->len);
5931 _mpd_shortmul(rbuf, big->data, big->len, small->data[0]);
5934 _mpd_basemul(rbuf, small->data, big->data, small->len, big->len);
5941 result->data[i] = rbuf[i];
5951 _mpd_shortmul(rdata, big->data, big->len, small->data[0]);
5954 _mpd_basemul(rdata, small->data, big->data, small->len, big->len);
5959 rdata = _mpd_kmul(big->data, small->data, big->len, small->len, &rsize);
5962 rdata = _mpd_fntmul(big->data, small->data, big->len, small->len, &rsize);
5965 rdata = _mpd_kmul_fnt(big->data, small->data, big->len, small->len, &rsize);
5974 mpd_free(result->data);
5976 result->data = rdata;
5984 result->len = _mpd_real_size(result->data, rsize);
7443 (void)_mpd_shortdiv(z->data, p10data, 2, word);
7447 z->len = (z->data[1] == 0) ? 1 : 2;
7464 MPD_NEW_SHARED(vtmp, a); /* v shares data with a */
7741 z->data[0] = 1000000000UL / a;
7759 MPD_NEW_SHARED(vtmp, a); /* by default v will share data with a */
7999 int lsd = (int)mpd_lsd(result->data[0]);
8001 result->data[0] += 1;
8186 w->data[n++] = u[--ulen];
8188 carry = _mpd_shortmul_c(w->data, w->data, n, ubase);
8196 w->data[n++] = carry;
8198 carry = _mpd_shortadd(w->data, n, u[ulen]);
8206 w->data[n++] = carry;
8311 w->data[n++] = (uint32_t)_mpd_shortdiv_b(u, u, ulen, wbase, ubase);
8333 w->data[n++] = u[--ulen];
8335 carry = _mpd_shortmul_b(w->data, w->data, n, ubase, wbase);
8343 w->data[n++] = carry;
8345 carry = _mpd_shortadd_b(w->data, n, u[ulen], wbase);
8353 w->data[n++] = carry;
8419 n = _baseconv_to_u16(rdata, rlen, rbase, tsrc.data, tsrc.len);
8498 tsrc.data, tsrc.len, MPD_RADIX);
8501 n = _copy_equal_base(rdata, rlen, tsrc.data, tsrc.len);
8505 tsrc.data, tsrc.len, MPD_RADIX);
8509 tsrc.data, tsrc.len, MPD_RADIX);
8621 memcpy(result->data, srcdata, srclen * (sizeof *srcdata));
8666 _set_coeff(uint64_t data[3], uint64_t hi, uint64_t lo)
8673 data[0] = (uint64_t)r;
8678 data[1] = (uint64_t)r;
8683 data[2] = (uint64_t)r;
8689 return data[2] != 0 ? 3 : (data[1] != 0 ? 2 : 1);
8723 _set_coeff(mpd_uint_t *data, mpd_ssize_t len, uint64_t hi, uint64_t lo)
8737 return (mpd_ssize_t)_uint_from_u16(data, len, u16, 8);
8744 mpd_uint_t data[5] = {0};
8749 len = _set_coeff(data, hi, lo);
8751 len = _set_coeff(data, 5, hi, lo);
8759 result->data[i] = data[i];
8880 u128 = a->data[2]; /* fall through */
8882 u128 = u128 * MPD_RADIX + a->data[1]; /* fall through */
8884 u128 = u128 * MPD_RADIX + a->data[0];
8919 mpd_uint_t data[5] = {0};
8923 data[4] = a->data[4]; /* fall through */
8925 data[3] = a->data[3]; /* fall through */
8927 data[2] = a->data[2]; /* fall through */
8929 data[1] = a->data[1]; /* fall through */
8931 data[0] = a->data[0];
8937 _uint_to_u16(u16, data, a->len);