AtlatestRepositorysigil-r7rs

sigil-r7rs / tree / src / schemeinexact.sgl

1;;; (scheme inexact) - R7RS Inexact Library
2;;;
3;;; Mathematical functions for inexact (floating-point) numbers including
4;;; trigonometric, exponential, and logarithmic operations.
5;;;
6;;; See: [R7RS Small](https://small.r7rs.org/) §6.2.6
7
8(define-library (scheme inexact)
9 (export exp
10 log
11 sin
12 cos
13 tan
14 asin
15 acos
16 atan
17 sqrt
18 finite?
19 infinite?
20 nan?)
22 (begin
23 ;;; Test if a number is finite.
24 ;;;
25 ;;; Returns `#t` if the number is neither infinite nor NaN.
26 ;;;
27 ;;; ```scheme
28 ;;; (finite? 42) ; => #t
29 ;;; (finite? 3.14) ; => #t
30 ;;; (finite? +inf.0) ; => #f
31 ;;; (finite? +nan.0) ; => #f
32 ;;; ```
33 (%set-docstring! finite?)
35 ;;; Test if a number is infinite.
36 ;;;
37 ;;; Returns `#t` if the number is positive or negative infinity.
38 ;;;
39 ;;; ```scheme
40 ;;; (infinite? +inf.0) ; => #t
41 ;;; (infinite? -inf.0) ; => #t
42 ;;; (infinite? 42) ; => #f
43 ;;; (infinite? +nan.0) ; => #f
44 ;;; ```
45 (%set-docstring! infinite?)
47 ;;; Test if a number is NaN (not a number).
48 ;;;
49 ;;; Returns `#t` if the number is the special NaN value, which results
50 ;;; from undefined operations like `(/ 0.0 0.0)`.
51 ;;;
52 ;;; ```scheme
53 ;;; (nan? +nan.0) ; => #t
54 ;;; (nan? (/ 0.0 0.0)) ; => #t
55 ;;; (nan? 42) ; => #f
56 ;;; (nan? +inf.0) ; => #f
57 ;;; ```
58 (%set-docstring! nan?)))