~ubuntu-branches/ubuntu/intrepid/parted/intrepid

« back to all changes in this revision

Viewing changes to gnulib/lib/floorl.c

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2008-06-24 14:31:05 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20080624143105-rd7yw67a9qnvh51i
Tags: 1.8.8.git.2008.03.24-7ubuntu1
* Resynchronise with Debian (LP: #237568). Remaining changes:
  - swap-uuid.dpatch: Create UUIDs on new swap partitions.
  - gptsync.dpatch: On Intel Mac systems, write a synced MBR rather than a
    protective MBR.
  - Add -fno-stack-protector on sparc.
  - sparc-new-label.dpatch: Fix sparc disk label generation. This is
    required for LDOM and parallel installations with Solaris 10.
  - loop-partitions.dpatch: Loop devices can only have one partition, so
    don't generate device names such as "/dev/loop0p1".
  - unpartitioned-disks.dpatch: Don't try to call BLKPG ioctls on
    unpartitionable disks (only implemented for loop devices at the
    moment), as they will always fail.
  - When building with gcc-4.3, add -Wno-array-bounds to CFLAGS.
  - Cell partition tables are misdetected as pc98, so disable pc98 support
    on powerpc.
  - array-bounds.dpatch: Backport patch from git to allow building with
    gcc-4.3.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Emulation for floorl.
 
2
   Contributed by Paolo Bonzini
 
3
 
 
4
   Copyright 2002, 2003, 2007 Free Software Foundation, Inc.
 
5
 
 
6
   This file is part of gnulib.
 
7
 
 
8
   This program is free software; you can redistribute it and/or modify
 
9
   it under the terms of the GNU General Public License as published by
 
10
   the Free Software Foundation; either version 2, or (at your option)
 
11
   any later version.
 
12
 
 
13
   This program is distributed in the hope that it will be useful,
 
14
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
   GNU General Public License for more details.
 
17
 
 
18
   You should have received a copy of the GNU General Public License along
 
19
   with this program; if not, write to the Free Software Foundation,
 
20
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
21
 
 
22
#include <config.h>
 
23
 
 
24
/* Specification.  */
 
25
#include <math.h>
 
26
 
 
27
#include <float.h>
 
28
 
 
29
/* To compute the integer part of X, sum a big enough
 
30
   integer so that the precision of the floating point
 
31
   number is exactly 1.  */
 
32
 
 
33
long double
 
34
floorl(long double x)
 
35
{
 
36
  long double y;
 
37
  if (x < 0.0L)
 
38
    y = -(1.0L / LDBL_EPSILON - x - 1.0 / LDBL_EPSILON);
 
39
  else
 
40
    y = 1.0L / LDBL_EPSILON + x - 1.0 / LDBL_EPSILON;
 
41
 
 
42
  if (y > x)
 
43
    return y - 1.0L;
 
44
  else
 
45
    return y;
 
46
}