Add log2 support and make log10 obsolete for consistency.
* configure.ac (log2): Check for this function. * doc/lispref/numbers.texi (Math Functions): Remove obsolete function log10. * lisp/subr.el (log10): Move here from C code, and declare as obsolete. All uses of (log10 X) replaced with (log X 10). * src/floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the base is 2; this is more accurate. (Flog10): Move to Lisp (marked obsolete there).
This commit is contained in:
parent
4719912369
commit
89561f72e5
12 changed files with 44 additions and 26 deletions
|
@ -1,3 +1,7 @@
|
|||
2013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
|
||||
|
||||
* configure.ac (log2): Check for this function.
|
||||
|
||||
2013-06-19 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* .bzrignore: Add GNU GLOBAL files.
|
||||
|
|
|
@ -3235,7 +3235,7 @@ gai_strerror mkstemp getline getdelim sync \
|
|||
difftime posix_memalign \
|
||||
getpwent endpwent getgrent endgrent \
|
||||
touchlock \
|
||||
cfmakeraw cfsetspeed copysign __executable_start)
|
||||
cfmakeraw cfsetspeed copysign __executable_start log2)
|
||||
|
||||
## Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
|
||||
## has a broken `rint' in some library versions including math library
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2013-06-20 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* numbers.texi (Math Functions): Remove obsolete function log10.
|
||||
|
||||
2013-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* modes.texi (Mode Line Data, Properties in Mode): Advertise `keymap'
|
||||
|
|
|
@ -1156,11 +1156,6 @@ This function returns the logarithm of @var{arg}, with base
|
|||
returns a NaN.
|
||||
@end defun
|
||||
|
||||
@defun log10 arg
|
||||
This function returns the logarithm of @var{arg}, with base 10:
|
||||
@code{(log10 @var{x})} @equiv{} @code{(log @var{x} 10)}.
|
||||
@end defun
|
||||
|
||||
@defun expt x y
|
||||
This function returns @var{x} raised to power @var{y}. If both
|
||||
arguments are integers and @var{y} is positive, the result is an
|
||||
|
|
1
etc/NEWS
1
etc/NEWS
|
@ -469,6 +469,7 @@ file using `set-file-extended-attributes'.
|
|||
** New macro with-eval-after-load. Like eval-after-load, but better behaved.
|
||||
|
||||
** Obsoleted functions:
|
||||
*** `log10'
|
||||
*** `dont-compile'
|
||||
*** `lisp-complete-symbol'
|
||||
*** `field-complete'
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2013-06-20 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* subr.el (log10): Move here from C code, and declare as obsolete.
|
||||
All uses of (log10 X) replaced with (log X 10).
|
||||
|
||||
2013-06-20 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* emacs-lisp/tabulated-list.el (tabulated-list-format): Fix typo.
|
||||
|
|
|
@ -5342,7 +5342,7 @@ Optional arg CONTEXT indicates interior levels to include."
|
|||
(cons (make-string
|
||||
(1+ (truncate (if (zerop (car flat-index))
|
||||
1
|
||||
(log10 (car flat-index)))))
|
||||
(log (car flat-index) 10))))
|
||||
? )
|
||||
result)))
|
||||
(setq flat-index (cdr flat-index)))
|
||||
|
@ -5382,7 +5382,7 @@ Optional arg CONTEXT indicates interior levels to include."
|
|||
(cons (make-string
|
||||
(1+ (truncate (if (zerop (car flat-index))
|
||||
1
|
||||
(log10 (car flat-index)))))
|
||||
(log (car flat-index) 10))))
|
||||
? )
|
||||
result)))
|
||||
(setq flat-index (cdr flat-index)))
|
||||
|
|
|
@ -2485,7 +2485,7 @@ the United States."
|
|||
|
||||
|
||||
(defconst math-bignum-digit-length
|
||||
(truncate (/ (log10 (/ most-positive-fixnum 2)) 2))
|
||||
(truncate (/ (log (/ most-positive-fixnum 2) 10) 2))
|
||||
"The length of a \"digit\" in Calc bignums.
|
||||
If a big integer is of the form (bigpos N0 N1 ...), this is the
|
||||
length of the allowable Emacs integers N0, N1,...
|
||||
|
|
|
@ -1206,6 +1206,11 @@ is converted into a string by expressing it in decimal."
|
|||
(declare (obsolete make-hash-table "22.1"))
|
||||
(make-hash-table :test (or test 'eql)))
|
||||
|
||||
(defun log10 (x)
|
||||
"Return (log X 10), the log base 10 of X."
|
||||
(declare (obsolete log "24.4"))
|
||||
(log x 10))
|
||||
|
||||
;; These are used by VM and some old programs
|
||||
(defalias 'focus-frame 'ignore "")
|
||||
(make-obsolete 'focus-frame "it does nothing." "22.1")
|
||||
|
|
|
@ -2419,8 +2419,8 @@ level to align."
|
|||
;; for the numbers.
|
||||
(if (cdr node)
|
||||
(setq fmt (format "%%-%dd"
|
||||
(1+ (floor (log10 (length
|
||||
(cdr node))))))))))
|
||||
(1+ (floor (log (length (cdr node))
|
||||
10))))))))
|
||||
|
||||
(dolist (child (cdr node))
|
||||
(rst-toc-insert-node child
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2013-06-20 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* floatfns.c (Flog10): Move to Lisp (marked obsolete there).
|
||||
|
||||
2013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
|
||||
|
||||
* floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
|
||||
base is 2; this is more accurate.
|
||||
|
||||
2013-06-19 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* sound.c (string_default): Move to !WINDOWSNT section.
|
||||
|
|
|
@ -25,7 +25,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* C89 requires only the following math.h functions, and Emacs omits
|
||||
the starred functions since we haven't found a use for them:
|
||||
acos, asin, atan, atan2, ceil, cos, *cosh, exp, fabs, floor, fmod,
|
||||
frexp, ldexp, log, log10, *modf, pow, sin, *sinh, sqrt, tan, *tanh.
|
||||
frexp, ldexp, log, log10 [via (log X 10)], *modf, pow, sin, *sinh,
|
||||
sqrt, tan, *tanh.
|
||||
|
||||
C99 and C11 require the following math.h functions in addition to
|
||||
the C89 functions. Of these, Emacs currently exports only the
|
||||
|
@ -33,10 +34,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
acosh, atanh, cbrt, *copysign, erf, erfc, exp2, expm1, fdim, fma,
|
||||
fmax, fmin, fpclassify, hypot, ilogb, isfinite, isgreater,
|
||||
isgreaterequal, isinf, isless, islessequal, islessgreater, *isnan,
|
||||
isnormal, isunordered, lgamma, log1p, log2, *logb (approximately),
|
||||
lrint/llrint, lround/llround, nan, nearbyint, nextafter,
|
||||
nexttoward, remainder, remquo, *rint, round, scalbln, scalbn,
|
||||
signbit, tgamma, trunc.
|
||||
isnormal, isunordered, lgamma, log1p, *log2 [via (log X 2)], *logb
|
||||
(approximately), lrint/llrint, lround/llround, nan, nearbyint,
|
||||
nextafter, nexttoward, remainder, remquo, *rint, round, scalbln,
|
||||
scalbn, signbit, tgamma, trunc.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -252,21 +253,16 @@ If the optional argument BASE is given, return log ARG using that base. */)
|
|||
|
||||
if (b == 10.0)
|
||||
d = log10 (d);
|
||||
#if HAVE_LOG2
|
||||
else if (b == 2.0)
|
||||
d = log2 (d);
|
||||
#endif
|
||||
else
|
||||
d = log (d) / log (b);
|
||||
}
|
||||
return make_float (d);
|
||||
}
|
||||
|
||||
DEFUN ("log10", Flog10, Slog10, 1, 1, 0,
|
||||
doc: /* Return the logarithm base 10 of ARG. */)
|
||||
(Lisp_Object arg)
|
||||
{
|
||||
double d = extract_float (arg);
|
||||
d = log10 (d);
|
||||
return make_float (d);
|
||||
}
|
||||
|
||||
DEFUN ("sqrt", Fsqrt, Ssqrt, 1, 1, 0,
|
||||
doc: /* Return the square root of ARG. */)
|
||||
(Lisp_Object arg)
|
||||
|
@ -564,7 +560,6 @@ syms_of_floatfns (void)
|
|||
defsubr (&Sexp);
|
||||
defsubr (&Sexpt);
|
||||
defsubr (&Slog);
|
||||
defsubr (&Slog10);
|
||||
defsubr (&Ssqrt);
|
||||
|
||||
defsubr (&Sabs);
|
||||
|
|
Loading…
Add table
Reference in a new issue