Lines Matching refs:dest

707 void mpz_set(mpz_t *dest, const mpz_t *src) {  in mpz_set()  argument
708 mpz_need_dig(dest, src->len); in mpz_set()
709 dest->neg = src->neg; in mpz_set()
710 dest->len = src->len; in mpz_set()
711 memcpy(dest->dig, src->dig, src->len * sizeof(mpz_dig_t)); in mpz_set()
1041 void mpz_abs_inpl(mpz_t *dest, const mpz_t *z) { in mpz_abs_inpl() argument
1042 if (dest != z) { in mpz_abs_inpl()
1043 mpz_set(dest, z); in mpz_abs_inpl()
1045 dest->neg = 0; in mpz_abs_inpl()
1051 void mpz_neg_inpl(mpz_t *dest, const mpz_t *z) { in mpz_neg_inpl() argument
1052 if (dest != z) { in mpz_neg_inpl()
1053 mpz_set(dest, z); in mpz_neg_inpl()
1055 dest->neg = 1 - dest->neg; in mpz_neg_inpl()
1061 void mpz_not_inpl(mpz_t *dest, const mpz_t *z) { in mpz_not_inpl() argument
1062 if (dest != z) { in mpz_not_inpl()
1063 mpz_set(dest, z); in mpz_not_inpl()
1065 if (dest->len == 0) { in mpz_not_inpl()
1066 mpz_need_dig(dest, 1); in mpz_not_inpl()
1067 dest->dig[0] = 1; in mpz_not_inpl()
1068 dest->len = 1; in mpz_not_inpl()
1069 dest->neg = 1; in mpz_not_inpl()
1070 } else if (dest->neg) { in mpz_not_inpl()
1071 dest->neg = 0; in mpz_not_inpl()
1073 dest->len = mpn_sub(dest->dig, dest->dig, dest->len, &k, 1); in mpz_not_inpl()
1075 mpz_need_dig(dest, dest->len + 1); in mpz_not_inpl()
1077 dest->len = mpn_add(dest->dig, dest->dig, dest->len, &k, 1); in mpz_not_inpl()
1078 dest->neg = 1; in mpz_not_inpl()
1085 void mpz_shl_inpl(mpz_t *dest, const mpz_t *lhs, mp_uint_t rhs) { in mpz_shl_inpl() argument
1087 mpz_set(dest, lhs); in mpz_shl_inpl()
1089 mpz_need_dig(dest, lhs->len + (rhs + DIG_SIZE - 1) / DIG_SIZE); in mpz_shl_inpl()
1090 dest->len = mpn_shl(dest->dig, lhs->dig, lhs->len, rhs); in mpz_shl_inpl()
1091 dest->neg = lhs->neg; in mpz_shl_inpl()
1098 void mpz_shr_inpl(mpz_t *dest, const mpz_t *lhs, mp_uint_t rhs) { in mpz_shr_inpl() argument
1100 mpz_set(dest, lhs); in mpz_shr_inpl()
1102 mpz_need_dig(dest, lhs->len); in mpz_shr_inpl()
1103 dest->len = mpn_shr(dest->dig, lhs->dig, lhs->len, rhs); in mpz_shr_inpl()
1104 dest->neg = lhs->neg; in mpz_shr_inpl()
1105 if (dest->neg) { in mpz_shr_inpl()
1120 if (dest->len == 0) { in mpz_shr_inpl()
1122 dest->dig[0] = 1; in mpz_shr_inpl()
1123 dest->len = 1; in mpz_shr_inpl()
1126 dest->len = mpn_add(dest->dig, dest->dig, dest->len, &round_up, 1); in mpz_shr_inpl()
1136 void mpz_add_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs) { in mpz_add_inpl() argument
1144 mpz_need_dig(dest, lhs->len + 1); in mpz_add_inpl()
1145 dest->len = mpn_add(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len); in mpz_add_inpl()
1147 mpz_need_dig(dest, lhs->len); in mpz_add_inpl()
1148 dest->len = mpn_sub(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len); in mpz_add_inpl()
1151 dest->neg = lhs->neg; in mpz_add_inpl()
1157 void mpz_sub_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs) { in mpz_sub_inpl() argument
1168 mpz_need_dig(dest, lhs->len + 1); in mpz_sub_inpl()
1169 dest->len = mpn_add(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len); in mpz_sub_inpl()
1171 mpz_need_dig(dest, lhs->len); in mpz_sub_inpl()
1172 dest->len = mpn_sub(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len); in mpz_sub_inpl()
1176 dest->neg = 1 - lhs->neg; in mpz_sub_inpl()
1178 dest->neg = lhs->neg; in mpz_sub_inpl()
1185 void mpz_and_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs) { in mpz_and_inpl() argument
1196 mpz_need_dig(dest, lhs->len); in mpz_and_inpl()
1197 dest->len = mpn_and(dest->dig, lhs->dig, rhs->dig, rhs->len); in mpz_and_inpl()
1198 dest->neg = 0; in mpz_and_inpl()
1200 mpz_need_dig(dest, lhs->len + 1); in mpz_and_inpl()
1201 dest->len = mpn_and_neg(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len, in mpz_and_inpl()
1203 dest->neg = lhs->neg & rhs->neg; in mpz_and_inpl()
1208 mpz_need_dig(dest, lhs->len + (lhs->neg || rhs->neg)); in mpz_and_inpl()
1209 dest->len = mpn_and_neg(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len, in mpz_and_inpl()
1211 dest->neg = lhs->neg & rhs->neg; in mpz_and_inpl()
1219 void mpz_or_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs) { in mpz_or_inpl() argument
1230 mpz_need_dig(dest, lhs->len); in mpz_or_inpl()
1231 dest->len = mpn_or(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len); in mpz_or_inpl()
1232 dest->neg = 0; in mpz_or_inpl()
1234 mpz_need_dig(dest, lhs->len + 1); in mpz_or_inpl()
1235 dest->len = mpn_or_neg(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len, in mpz_or_inpl()
1237 dest->neg = 1; in mpz_or_inpl()
1242 mpz_need_dig(dest, lhs->len + (lhs->neg || rhs->neg)); in mpz_or_inpl()
1243 dest->len = mpn_or_neg(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len, in mpz_or_inpl()
1245 dest->neg = lhs->neg | rhs->neg; in mpz_or_inpl()
1253 void mpz_xor_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs) { in mpz_xor_inpl() argument
1264 mpz_need_dig(dest, lhs->len); in mpz_xor_inpl()
1266 dest->len = mpn_xor(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len); in mpz_xor_inpl()
1268 dest->len = mpn_xor_neg(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len, 0, 0, 0); in mpz_xor_inpl()
1270 dest->neg = 0; in mpz_xor_inpl()
1272 mpz_need_dig(dest, lhs->len + 1); in mpz_xor_inpl()
1273 dest->len = mpn_xor_neg(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len, 1, in mpz_xor_inpl()
1275 dest->neg = 1; in mpz_xor_inpl()
1280 mpz_need_dig(dest, lhs->len + (lhs->neg || rhs->neg)); in mpz_xor_inpl()
1281 dest->len = mpn_xor_neg(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len, in mpz_xor_inpl()
1283 dest->neg = lhs->neg ^ rhs->neg; in mpz_xor_inpl()
1291 void mpz_mul_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs) { in mpz_mul_inpl() argument
1293 mpz_set_from_int(dest, 0); in mpz_mul_inpl()
1298 if (lhs == dest) { in mpz_mul_inpl()
1300 if (rhs == dest) { in mpz_mul_inpl()
1303 } else if (rhs == dest) { in mpz_mul_inpl()
1307 mpz_need_dig(dest, lhs->len + rhs->len); // min mem l+r-1, max mem l+r in mpz_mul_inpl()
1308 memset(dest->dig, 0, dest->alloc * sizeof(mpz_dig_t)); in mpz_mul_inpl()
1309 dest->len = mpn_mul(dest->dig, lhs->dig, lhs->len, rhs->dig, rhs->len); in mpz_mul_inpl()
1312 dest->neg = 0; in mpz_mul_inpl()
1314 dest->neg = 1; in mpz_mul_inpl()
1323 void mpz_pow_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs) { in mpz_pow_inpl() argument
1325 mpz_set_from_int(dest, 0); in mpz_pow_inpl()
1330 mpz_set_from_int(dest, 1); in mpz_pow_inpl()
1337 mpz_set_from_int(dest, 1); in mpz_pow_inpl()
1341 mpz_mul_inpl(dest, dest, x); in mpz_pow_inpl()
1357 void mpz_pow3_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs, const mpz_t *mod) { in mpz_pow3_inpl() argument
1359 mpz_set_from_int(dest, 0); in mpz_pow3_inpl()
1363 mpz_set_from_int(dest, 1); in mpz_pow3_inpl()
1376 mpz_mul_inpl(dest, dest, x); in mpz_pow3_inpl()
1377 mpz_divmod_inpl(&quo, dest, dest, mod); in mpz_pow3_inpl()