]> git.eshelyaron.com Git - emacs.git/commitdiff
Add doc-strings to some cl float parameters.
authorGlenn Morris <rgm@gnu.org>
Thu, 27 Oct 2011 07:21:00 +0000 (00:21 -0700)
committerGlenn Morris <rgm@gnu.org>
Thu, 27 Oct 2011 07:21:00 +0000 (00:21 -0700)
* lisp/emacs-lisp/cl-extra.el (cl-float-limits): Add doc string.
* lisp/emacs-lisp/cl.el (most-positive-float, most-negative-float)
(least-positive-float, least-negative-float)
(least-positive-normalized-float, least-negative-normalized-float)
(float-epsilon, float-negative-epsilon): Add doc-strings,
based on those in cl.texi.

* lisp/emacs-lisp/cl-extra.el (most-positive-float, most-negative-float)
(least-positive-float, least-negative-float)
(least-positive-normalized-float, least-negative-normalized-float)
(float-epsilon, float-negative-epsilon):
Remove unnecessary declarations.

lisp/ChangeLog
lisp/emacs-lisp/cl-extra.el
lisp/emacs-lisp/cl.el

index cbfc662da52ca4abe0b5097df0b88fbf1f3e3d0f..6aa1bddb9f30fa610d0e27c6f3de0854025d7446 100644 (file)
@@ -1,5 +1,18 @@
 2011-10-27  Glenn Morris  <rgm@gnu.org>
 
+       * emacs-lisp/cl-extra.el (most-positive-float, most-negative-float)
+       (least-positive-float, least-negative-float)
+       (least-positive-normalized-float, least-negative-normalized-float)
+       (float-epsilon, float-negative-epsilon):
+       Remove unnecessary declarations.
+
+       * emacs-lisp/cl-extra.el (cl-float-limits): Add doc string.
+       * emacs-lisp/cl.el (most-positive-float, most-negative-float)
+       (least-positive-float, least-negative-float)
+       (least-positive-normalized-float, least-negative-normalized-float)
+       (float-epsilon, float-negative-epsilon): Add doc-strings,
+       based on those in cl.texi.
+
        * files.el (set-visited-file-name): If the major-mode changed,
        reload the local variables.  (Bug#9796)
 
index 7468a0237cf48126c965a014dc45e5e9c54834ba..8ea58b2e07cb10cf4e96e849b3c0be8d1e4a97f9 100644 (file)
@@ -480,17 +480,13 @@ If STATE is t, return a new state object seeded from the time of day."
        (and (numberp res) (/= res (/ res 2)) res))
     (arith-error nil)))
 
-(defvar most-positive-float)
-(defvar most-negative-float)
-(defvar least-positive-float)
-(defvar least-negative-float)
-(defvar least-positive-normalized-float)
-(defvar least-negative-normalized-float)
-(defvar float-epsilon)
-(defvar float-negative-epsilon)
-
 ;;;###autoload
 (defun cl-float-limits ()
+  "Initialize the Common Lisp floating-point parameters.
+This sets the values of: `most-positive-float', `most-negative-float',
+`least-positive-float', `least-negative-float', `float-epsilon',
+`float-negative-epsilon', `least-positive-normalized-float', and
+`least-negative-normalized-float'."
   (or most-positive-float (not (numberp '2e1))
       (let ((x '2e0) y z)
        ;; Find maximum exponent (first two loops are optimizations)
index 526475eb1bda51956d2c7743564cd52b741424fc..0b34e9f27f7dedca6804fac52fc18b5f953f7658 100644 (file)
@@ -333,15 +333,51 @@ always returns nil."
 
 (defvar *random-state* (vector 'cl-random-state-tag -1 30 (cl-random-time)))
 
-;; The following are actually set by cl-float-limits.
-(defconst most-positive-float nil)
-(defconst most-negative-float nil)
-(defconst least-positive-float nil)
-(defconst least-negative-float nil)
-(defconst least-positive-normalized-float nil)
-(defconst least-negative-normalized-float nil)
-(defconst float-epsilon nil)
-(defconst float-negative-epsilon nil)
+(defconst most-positive-float nil
+  "The largest value that a Lisp float can hold.
+If your system supports infinities, this is the largest finite value.
+For IEEE machines, this is approximately 1.79e+308.
+Call `cl-float-limits' to set this.")
+
+(defconst most-negative-float nil
+  "The largest negative value that a Lisp float can hold.
+This is simply -`most-negative-float'.
+Call `cl-float-limits' to set this.")
+
+(defconst least-positive-float nil
+  "The smallest value greater than zero that a Lisp float can hold.
+For IEEE machines, it is about 4.94e-324 if denormals are supported,
+or 2.22e-308 if they are not.
+Call `cl-float-limits' to set this.")
+
+(defconst least-negative-float nil
+  "The smallest value less than zero that a Lisp float can hold.
+This is simply -`least-positive-float'.
+Call `cl-float-limits' to set this.")
+
+(defconst least-positive-normalized-float nil
+  "The smallest normalized Lisp float greater than zero.
+This is the smallest value for which IEEE denormalization does not lose
+precision.  For IEEE machines, this value is about 2.22e-308.
+For machines that do not support the concept of denormalization
+and gradual underflow, this constant equals `least-positive-float'.
+Call `cl-float-limits' to set this.")
+
+(defconst least-negative-normalized-float nil
+  "The smallest normalized Lisp float less than zero.
+This is simply -`least-positive-normalized-float'.
+Call `cl-float-limits' to set this.")
+
+(defconst float-epsilon nil
+  "The smallest positive float that adds to 1.0 to give a distinct value.
+Adding a number less than this to 1.0 returns 1.0 due to roundoff.
+For IEEE machines, epsilon is about 2.22e-16.
+Call `cl-float-limits' to set this.")
+
+(defconst float-negative-epsilon nil
+  "The smallest positive float that subtracts from 1.0 to give a distinct value.
+For IEEE machines, it is about 1.11e-16.
+Call `cl-float-limits' to set this.")
 
 
 ;;; Sequence functions.