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

1 /* mpi-div.c  -  MPI functions
14 #include "mpi-internal.h"
22 int divisor_sign = divisor->sign; in mpi_fdiv_r()
36 if (((divisor_sign?1:0) ^ (dividend->sign?1:0)) && rem->nlimbs) in mpi_fdiv_r()
52 int divisor_sign = divisor->sign; in mpi_fdiv_qr()
62 if ((divisor_sign ^ dividend->sign) && rem->nlimbs) { in mpi_fdiv_qr()
87 mpi_size_t nsize = num->nlimbs; in mpi_tdiv_qr()
88 mpi_size_t dsize = den->nlimbs; in mpi_tdiv_qr()
90 mpi_size_t sign_remainder = num->sign; in mpi_tdiv_qr()
91 mpi_size_t sign_quotient = num->sign ^ den->sign; in mpi_tdiv_qr()
99 * up-shifted (normalized) below. in mpi_tdiv_qr()
104 qsize = rsize - dsize; /* qsize cannot be bigger than this. */ in mpi_tdiv_qr()
107 rem->nlimbs = num->nlimbs; in mpi_tdiv_qr()
108 rem->sign = num->sign; in mpi_tdiv_qr()
109 MPN_COPY(rem->d, num->d, nsize); in mpi_tdiv_qr()
115 quot->nlimbs = 0; in mpi_tdiv_qr()
116 quot->sign = 0; in mpi_tdiv_qr()
125 np = num->d; in mpi_tdiv_qr()
126 dp = den->d; in mpi_tdiv_qr()
127 rp = rem->d; in mpi_tdiv_qr()
129 /* Optimize division by a single-limb divisor. */ in mpi_tdiv_qr()
133 qp = quot->d; in mpi_tdiv_qr()
135 qsize -= qp[qsize - 1] == 0; in mpi_tdiv_qr()
136 quot->nlimbs = qsize; in mpi_tdiv_qr()
137 quot->sign = sign_quotient; in mpi_tdiv_qr()
142 rem->nlimbs = rsize; in mpi_tdiv_qr()
143 rem->sign = sign_remainder; in mpi_tdiv_qr()
149 qp = quot->d; in mpi_tdiv_qr()
160 normalization_steps = count_leading_zeros(dp[dsize - 1]); in mpi_tdiv_qr()
163 * shifting it NORMALIZATION_STEPS bits to the left. Also shift the in mpi_tdiv_qr()
179 * significant word. Move the shifted numerator in the remainder in mpi_tdiv_qr()
210 qsize = rsize - dsize; in mpi_tdiv_qr()
216 quot->nlimbs = qsize; in mpi_tdiv_qr()
217 quot->sign = sign_quotient; in mpi_tdiv_qr()
225 rsize -= rp[rsize - 1] == 0?1:0; in mpi_tdiv_qr()
228 rem->nlimbs = rsize; in mpi_tdiv_qr()
229 rem->sign = sign_remainder; in mpi_tdiv_qr()
231 markidx--; in mpi_tdiv_qr()