Lines Matching defs:op1
45 static void mpr_addsub(mpr *rop, mpr *op1, mpr *op2, int sub);
48 static int mpr_docmp(mpr *op1, mpr *op2, int sign);
160 mpr_add(mpr *rop, mpr *op1, mpr *op2)
162 mpr_addsub(rop, op1, op2, 0);
166 mpr_addi(mpr *rop, mpr *op1, long op2)
172 mpi_muli(&prod, mpr_den(op1), op2);
173 mpi_add(mpr_num(rop), mpr_num(op1), &prod);
178 mpr_sub(mpr *rop, mpr *op1, mpr *op2)
180 mpr_addsub(rop, op1, op2, 1);
184 mpr_subi(mpr *rop, mpr *op1, long op2)
190 mpi_muli(&prod, mpr_den(op1), op2);
191 mpi_sub(mpr_num(rop), mpr_num(op1), &prod);
196 mpr_addsub(mpr *rop, mpr *op1, mpr *op2, int sub)
203 mpi_mul(&prod1, mpr_num(op1), mpr_den(op2));
204 mpi_mul(&prod2, mpr_num(op2), mpr_den(op1));
214 mpi_mul(mpr_den(rop), mpr_den(op1), mpr_den(op2));
218 mpr_mul(mpr *rop, mpr *op1, mpr *op2)
221 if (op1 == op2 && rop == op1) {
226 mpi_mul(&prod, mpr_num(op1), mpr_num(op2));
227 mpi_mul(mpr_den(rop), mpr_den(op1), mpr_den(op2));
233 mpi_mul(mpr_num(rop), mpr_num(op1), mpr_num(op2));
234 mpi_mul(mpr_den(rop), mpr_den(op1), mpr_den(op2));
239 mpr_muli(mpr *rop, mpr *op1, long op2)
241 mpi_muli(mpr_num(rop), mpr_num(op1), op2);
245 mpr_div(mpr *rop, mpr *op1, mpr *op2)
248 if (op1 == op2 && rop == op1) {
253 mpi_mul(&prod, mpr_num(op1), mpr_den(op2));
254 mpi_mul(mpr_den(rop), mpr_num(op2), mpr_den(op1));
260 mpi_mul(mpr_num(rop), mpr_num(op1), mpr_den(op2));
261 mpi_mul(mpr_den(rop), mpr_num(op2), mpr_den(op1));
266 mpr_divi(mpr *rop, mpr *op1, long op2)
268 mpi_muli(mpr_den(rop), mpr_den(op1), op2);
305 mpr_cmp(mpr *op1, mpr *op2)
307 return (mpr_docmp(op1, op2, 1));
311 mpr_cmpi(mpr *op1, long op2)
318 cmp = mpr_docmp(op1, &rat, 1);
325 mpr_cmpabs(mpr *op1, mpr *op2)
327 return (mpr_docmp(op1, op2, 0));
331 mpr_cmpabsi(mpr *op1, long op2)
338 cmp = mpr_docmp(op1, &rat, 0);
345 mpr_docmp(mpr *op1, mpr *op2, int sign)
352 /* if op1 is negative */
353 if (mpr_num(op1)->sign ^ mpr_den(op1)->sign) {
367 if (mpi_cmpabs(mpr_den(op1), mpr_den(op2)) == 0) {
368 cmp = mpi_cmpabs(mpr_num(op1), mpr_num(op2));
379 /* "divide" op1 by op2
380 * if result is smaller than 1, op1 is smaller than op2 */
381 mpi_mul(&prod1, mpr_num(op1), mpr_den(op2));
382 mpi_mul(&prod2, mpr_num(op2), mpr_den(op1));
395 mpr_swap(mpr *op1, mpr *op2)
397 if (op1 != op2) {
400 memcpy(&swap, op1, sizeof(mpr));
401 memcpy(op1, op2, sizeof(mpr));