root/maint/gnulib/lib/modf.c

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. modf

   1 /* Get signed integer and fractional parts of a floating-point number.
   2    Copyright (C) 2012-2021 Free Software Foundation, Inc.
   3 
   4    This file is free software: you can redistribute it and/or modify
   5    it under the terms of the GNU Lesser General Public License as
   6    published by the Free Software Foundation; either version 3 of the
   7    License, or (at your option) any later version.
   8 
   9    This file is distributed in the hope that it will be useful,
  10    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12    GNU Lesser General Public License for more details.
  13 
  14    You should have received a copy of the GNU Lesser General Public License
  15    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  16 
  17 #include <config.h>
  18 
  19 /* Specification.  */
  20 #include <math.h>
  21 
  22 double
  23 modf (double x, double *iptr)
     /* [previous][next][first][last][top][bottom][index][help] */
  24 {
  25   if (isfinite (x))
  26     {
  27       double integer_part = trunc (x);
  28       *iptr = integer_part;
  29       return x - integer_part;
  30     }
  31   else
  32     {
  33       if (isinf (x))
  34         {
  35           *iptr = x;
  36           return 1.0 / x;
  37         }
  38       else /* isnand (x) */
  39         {
  40           *iptr = x;
  41           return x;
  42         }
  43     }
  44 }

/* [previous][next][first][last][top][bottom][index][help] */