/* mpq_cmp_ui(u,vn,vd) -- Compare U with Vn/Vd. Return positive, zero, or negative based on if U > V, U == V, or U < V. Vn and Vd may have common factors.
The GNU MP Library is free software; you can redistribute it and/or modify it under the terms of either:
* the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
or
* the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
or both in parallel, as here.
The GNU MP Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with the GNU MP Library. If not,
see https://www.gnu.org/licenses/. */
/* need canonical sign to get right result */
ASSERT (den1_size > 0);
if (UNLIKELY (den2 == 0))
DIVIDE_BY_ZERO;
if (num2 == 0) return num1_size; if (num1_size <= 0) return -1;
/* NUM1 x DEN2 is either TMP1_SIZE limbs or TMP1_SIZE-1 limbs.
Same for NUM2 x DEN1 with respect to TMP2_SIZE. */ /* If frac2 <= 1 (i.e. num2 <= den2), shortcut with a simpler
condition: num1 > den1. Here we only test sizes. */ if (num1_size > den1_size + (num2 > den2)) /* NUM1 x DEN2 is surely larger in magnitude than NUM2 x DEN1. */ return num1_size; if (den1_size > num1_size + (den2 > num2)) /* NUM1 x DEN2 is surely smaller in magnitude than NUM2 x DEN1. */ return -num1_size;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.