aboutsummaryrefslogtreecommitdiffstats
path: root/src/floatfns.c
diff options
context:
space:
mode:
authorKenichi Handa2010-07-08 17:09:35 +0900
committerKenichi Handa2010-07-08 17:09:35 +0900
commit80d4189187791916590b6c2b20b54588d432bb75 (patch)
treee59e52ee4a456f3235bff0e7fba4362681dba7dd /src/floatfns.c
parenta7840ffb291e13c2a2386ccbd58089e1d7461c16 (diff)
parent0216627eb39f77958e30f4750f581714fdfd7faf (diff)
downloademacs-80d4189187791916590b6c2b20b54588d432bb75.tar.gz
emacs-80d4189187791916590b6c2b20b54588d432bb75.zip
merge trunk
Diffstat (limited to 'src/floatfns.c')
-rw-r--r--src/floatfns.c32
1 files changed, 12 insertions, 20 deletions
diff --git a/src/floatfns.c b/src/floatfns.c
index 5cd996d033c..96a89337c75 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -70,7 +70,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
70 70
71/* This declaration is omitted on some systems, like Ultrix. */ 71/* This declaration is omitted on some systems, like Ultrix. */
72#if !defined (HPUX) && defined (HAVE_LOGB) && !defined (logb) 72#if !defined (HPUX) && defined (HAVE_LOGB) && !defined (logb)
73extern double logb (); 73extern double logb (double);
74#endif /* not HPUX and HAVE_LOGB and no logb macro */ 74#endif /* not HPUX and HAVE_LOGB and no logb macro */
75 75
76#if defined(DOMAIN) && defined(SING) && defined(OVERFLOW) 76#if defined(DOMAIN) && defined(SING) && defined(OVERFLOW)
@@ -778,11 +778,10 @@ This is the same as the exponent of a float. */)
778/* the rounding functions */ 778/* the rounding functions */
779 779
780static Lisp_Object 780static Lisp_Object
781rounding_driver (arg, divisor, double_round, int_round2, name) 781rounding_driver (Lisp_Object arg, Lisp_Object divisor,
782 register Lisp_Object arg, divisor; 782 double (*double_round) (double),
783 double (*double_round) (); 783 EMACS_INT (*int_round2) (EMACS_INT, EMACS_INT),
784 EMACS_INT (*int_round2) (); 784 char *name)
785 char *name;
786{ 785{
787 CHECK_NUMBER_OR_FLOAT (arg); 786 CHECK_NUMBER_OR_FLOAT (arg);
788 787
@@ -832,8 +831,7 @@ rounding_driver (arg, divisor, double_round, int_round2, name)
832 integer functions. */ 831 integer functions. */
833 832
834static EMACS_INT 833static EMACS_INT
835ceiling2 (i1, i2) 834ceiling2 (EMACS_INT i1, EMACS_INT i2)
836 EMACS_INT i1, i2;
837{ 835{
838 return (i2 < 0 836 return (i2 < 0
839 ? (i1 < 0 ? ((-1 - i1) / -i2) + 1 : - (i1 / -i2)) 837 ? (i1 < 0 ? ((-1 - i1) / -i2) + 1 : - (i1 / -i2))
@@ -841,8 +839,7 @@ ceiling2 (i1, i2)
841} 839}
842 840
843static EMACS_INT 841static EMACS_INT
844floor2 (i1, i2) 842floor2 (EMACS_INT i1, EMACS_INT i2)
845 EMACS_INT i1, i2;
846{ 843{
847 return (i2 < 0 844 return (i2 < 0
848 ? (i1 <= 0 ? -i1 / -i2 : -1 - ((i1 - 1) / -i2)) 845 ? (i1 <= 0 ? -i1 / -i2 : -1 - ((i1 - 1) / -i2))
@@ -850,8 +847,7 @@ floor2 (i1, i2)
850} 847}
851 848
852static EMACS_INT 849static EMACS_INT
853truncate2 (i1, i2) 850truncate2 (EMACS_INT i1, EMACS_INT i2)
854 EMACS_INT i1, i2;
855{ 851{
856 return (i2 < 0 852 return (i2 < 0
857 ? (i1 < 0 ? -i1 / -i2 : - (i1 / -i2)) 853 ? (i1 < 0 ? -i1 / -i2 : - (i1 / -i2))
@@ -859,8 +855,7 @@ truncate2 (i1, i2)
859} 855}
860 856
861static EMACS_INT 857static EMACS_INT
862round2 (i1, i2) 858round2 (EMACS_INT i1, EMACS_INT i2)
863 EMACS_INT i1, i2;
864{ 859{
865 /* The C language's division operator gives us one remainder R, but 860 /* The C language's division operator gives us one remainder R, but
866 we want the remainder R1 on the other side of 0 if R1 is closer 861 we want the remainder R1 on the other side of 0 if R1 is closer
@@ -880,16 +875,14 @@ round2 (i1, i2)
880#define emacs_rint rint 875#define emacs_rint rint
881#else 876#else
882static double 877static double
883emacs_rint (d) 878emacs_rint (double d)
884 double d;
885{ 879{
886 return floor (d + 0.5); 880 return floor (d + 0.5);
887} 881}
888#endif 882#endif
889 883
890static double 884static double
891double_identity (d) 885double_identity (double d)
892 double d;
893{ 886{
894 return d; 887 return d;
895} 888}
@@ -941,8 +934,7 @@ With optional DIVISOR, truncate ARG/DIVISOR. */)
941 934
942 935
943Lisp_Object 936Lisp_Object
944fmod_float (x, y) 937fmod_float (Lisp_Object x, Lisp_Object y)
945 register Lisp_Object x, y;
946{ 938{
947 double f1, f2; 939 double f1, f2;
948 940