Blame tests/comparisons.c

Packit Service 2e9770
/* comparisons.c -- Comparison functions.
Packit Service 2e9770
Packit Service 2e9770
Copyright (C) 2008, 2009, 2011 INRIA
Packit Service 2e9770
Packit Service 2e9770
This file is part of GNU MPC.
Packit Service 2e9770
Packit Service 2e9770
GNU MPC is free software; you can redistribute it and/or modify it under
Packit Service 2e9770
the terms of the GNU Lesser General Public License as published by the
Packit Service 2e9770
Free Software Foundation; either version 3 of the License, or (at your
Packit Service 2e9770
option) any later version.
Packit Service 2e9770
Packit Service 2e9770
GNU MPC is distributed in the hope that it will be useful, but WITHOUT ANY
Packit Service 2e9770
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
Packit Service 2e9770
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
Packit Service 2e9770
more details.
Packit Service 2e9770
Packit Service 2e9770
You should have received a copy of the GNU Lesser General Public License
Packit Service 2e9770
along with this program. If not, see http://www.gnu.org/licenses/ .
Packit Service 2e9770
*/
Packit Service 2e9770
Packit Service 2e9770
#include "mpc-tests.h"
Packit Service 2e9770
Packit Service 2e9770
/* comparisons, see description in mpc-tests.h */
Packit Service 2e9770
int
Packit Service 2e9770
same_mpfr_value (mpfr_ptr got, mpfr_ptr ref, int known_sign)
Packit Service 2e9770
{
Packit Service 2e9770
   /* The sign of zeroes and infinities is checked only when
Packit Service 2e9770
      known_sign is true.                                    */
Packit Service 2e9770
   if (mpfr_nan_p (got))
Packit Service 2e9770
      return mpfr_nan_p (ref);
Packit Service 2e9770
   if (mpfr_inf_p (got))
Packit Service 2e9770
      return mpfr_inf_p (ref) &&
Packit Service 2e9770
            (!known_sign || mpfr_signbit (got) == mpfr_signbit (ref));
Packit Service 2e9770
   if (mpfr_zero_p (got))
Packit Service 2e9770
      return mpfr_zero_p (ref) &&
Packit Service 2e9770
            (!known_sign || mpfr_signbit (got) == mpfr_signbit (ref));
Packit Service 2e9770
   return mpfr_cmp (got, ref) == 0;
Packit Service 2e9770
}
Packit Service 2e9770
Packit Service 2e9770
int
Packit Service 2e9770
same_mpc_value (mpc_ptr got, mpc_ptr ref, known_signs_t known_signs)
Packit Service 2e9770
{
Packit Service 2e9770
   return    same_mpfr_value (mpc_realref (got), mpc_realref (ref), known_signs.re)
Packit Service 2e9770
          && same_mpfr_value (mpc_imagref (got), mpc_imagref (ref), known_signs.im);
Packit Service 2e9770
}