Add 2012 to FSF copyright years for Emacs files
[bpt/emacs.git] / lisp / emacs-lisp / float-sup.el
CommitLineData
5e046f6d
JB
1;;; float-sup.el --- define some constants useful for floating point numbers.
2
acaf905b 3;; Copyright (C) 1985-1987, 2001-2012 Free Software Foundation, Inc.
5e046f6d
JB
4
5;; Maintainer: FSF
6;; Keywords: internal
bd78fa1d 7;; Package: emacs
5e046f6d
JB
8
9;; This file is part of GNU Emacs.
10
d6cba7ae 11;; GNU Emacs is free software: you can redistribute it and/or modify
5e046f6d 12;; it under the terms of the GNU General Public License as published by
d6cba7ae
GM
13;; the Free Software Foundation, either version 3 of the License, or
14;; (at your option) any later version.
5e046f6d
JB
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
d6cba7ae 22;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
5e046f6d
JB
23
24;;; Commentary:
25
26;;; Code:
27
9a0dd02d
GM
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).
9e0d4f9e 30(defconst float-pi (* 4 (atan 1)) "The value of Pi (3.1415926...).")
06788a55
SM
31(progn
32 ;; Simulate a defconst that doesn't declare the variable dynamically bound.
33 (setq-default pi float-pi)
34 (put 'pi 'variable-documentation
35 "Obsolete since Emacs-23.3. Use `float-pi' instead.")
36 (put 'pi 'risky-local-variable t)
37 (push 'pi current-load-list))
8f92ec4d 38
9e0d4f9e 39(defconst float-e (exp 1) "The value of e (2.7182818...).")
5e046f6d 40
9e0d4f9e 41(defconst degrees-to-radians (/ float-pi 180.0)
5e046f6d 42 "Degrees to radian conversion constant.")
9e0d4f9e 43(defconst radians-to-degrees (/ 180.0 float-pi)
5e046f6d
JB
44 "Radian to degree conversion constant.")
45
9a0dd02d 46;; These expand to a single multiply by a float when byte compiled.
5e046f6d
JB
47
48(defmacro degrees-to-radians (x)
99368725 49 "Convert X from degrees to radians."
9e0d4f9e 50 (list '* degrees-to-radians x))
5e046f6d 51(defmacro radians-to-degrees (x)
99368725 52 "Convert X from radians to degrees."
9e0d4f9e 53 (list '* radians-to-degrees x))
5e046f6d
JB
54
55(provide 'lisp-float-type)
56
57;;; float-sup.el ends here