Lines Matching +full:left +full:- +full:shifted

1 /* mpi-div.c  -  MPI functions
14 #include "mpi-internal.h"
21 int divisor_sign = divisor->sign; in mpi_fdiv_r()
32 return -ENOMEM; in mpi_fdiv_r()
40 if (((divisor_sign?1:0) ^ (dividend->sign?1:0)) && rem->nlimbs) in mpi_fdiv_r()
65 mpi_size_t nsize = num->nlimbs; in mpi_tdiv_qr()
66 mpi_size_t dsize = den->nlimbs; in mpi_tdiv_qr()
68 mpi_size_t sign_remainder = num->sign; in mpi_tdiv_qr()
69 mpi_size_t sign_quotient = num->sign ^ den->sign; in mpi_tdiv_qr()
78 * up-shifted (normalized) below. in mpi_tdiv_qr()
85 qsize = rsize - dsize; /* qsize cannot be bigger than this. */ in mpi_tdiv_qr()
88 rem->nlimbs = num->nlimbs; in mpi_tdiv_qr()
89 rem->sign = num->sign; in mpi_tdiv_qr()
90 MPN_COPY(rem->d, num->d, nsize); in mpi_tdiv_qr()
96 quot->nlimbs = 0; in mpi_tdiv_qr()
97 quot->sign = 0; in mpi_tdiv_qr()
109 np = num->d; in mpi_tdiv_qr()
110 dp = den->d; in mpi_tdiv_qr()
111 rp = rem->d; in mpi_tdiv_qr()
113 /* Optimize division by a single-limb divisor. */ in mpi_tdiv_qr()
117 qp = quot->d; in mpi_tdiv_qr()
119 qsize -= qp[qsize - 1] == 0; in mpi_tdiv_qr()
120 quot->nlimbs = qsize; in mpi_tdiv_qr()
121 quot->sign = sign_quotient; in mpi_tdiv_qr()
126 rem->nlimbs = rsize; in mpi_tdiv_qr()
127 rem->sign = sign_remainder; in mpi_tdiv_qr()
131 err = -ENOMEM; in mpi_tdiv_qr()
133 qp = quot->d; in mpi_tdiv_qr()
146 normalization_steps = count_leading_zeros(dp[dsize - 1]); in mpi_tdiv_qr()
149 * shifting it NORMALIZATION_STEPS bits to the left. Also shift the in mpi_tdiv_qr()
167 * significant word. Move the shifted numerator in the remainder in mpi_tdiv_qr()
200 qsize = rsize - dsize; in mpi_tdiv_qr()
206 quot->nlimbs = qsize; in mpi_tdiv_qr()
207 quot->sign = sign_quotient; in mpi_tdiv_qr()
215 rsize -= rp[rsize - 1] == 0?1:0; in mpi_tdiv_qr()
218 rem->nlimbs = rsize; in mpi_tdiv_qr()
219 rem->sign = sign_remainder; in mpi_tdiv_qr()
225 markidx--; in mpi_tdiv_qr()