Line data Source code
1 : ;;; float-sup.el --- define some constants useful for floating point numbers.
2 :
3 : ;; Copyright (C) 1985-1987, 2001-2017 Free Software Foundation, Inc.
4 :
5 : ;; Maintainer: emacs-devel@gnu.org
6 : ;; Keywords: internal
7 : ;; Package: emacs
8 :
9 : ;; This file is part of GNU Emacs.
10 :
11 : ;; GNU Emacs is free software: you can redistribute it and/or modify
12 : ;; it under the terms of the GNU General Public License as published by
13 : ;; the Free Software Foundation, either version 3 of the License, or
14 : ;; (at your option) any later version.
15 :
16 : ;; GNU Emacs is distributed in the hope that it will be useful,
17 : ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : ;; GNU General Public License for more details.
20 :
21 : ;; You should have received a copy of the GNU General Public License
22 : ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23 :
24 : ;;; Commentary:
25 :
26 : ;;; Code:
27 :
28 : ;; Provide an easy hook to tell if we are running with floats or not.
29 : ;; Define pi and e via math-lib calls (much less prone to killer typos).
30 : (defconst float-pi (* 4 (atan 1)) "The value of Pi (3.1415926...).")
31 : (defconst pi float-pi
32 : "Obsolete since Emacs-23.3. Use `float-pi' instead.")
33 : (internal-make-var-non-special 'pi)
34 :
35 : (defconst float-e (exp 1) "The value of e (2.7182818...).")
36 :
37 : (defconst degrees-to-radians (/ float-pi 180.0)
38 : "Degrees to radian conversion constant.")
39 : (defconst radians-to-degrees (/ 180.0 float-pi)
40 : "Radian to degree conversion constant.")
41 :
42 : ;; These expand to a single multiply by a float when byte compiled.
43 :
44 : (defmacro degrees-to-radians (x)
45 : "Convert X from degrees to radians."
46 0 : (list '* degrees-to-radians x))
47 : (defmacro radians-to-degrees (x)
48 : "Convert X from radians to degrees."
49 0 : (list '* radians-to-degrees x))
50 :
51 : (provide 'lisp-float-type)
52 :
53 : ;;; float-sup.el ends here
|