AtlatestRepositorysigil-r7rs
sigil-r7rs / tree / src / schemeinexact.sgl
1
;;; (scheme inexact) - R7RS Inexact Library2
;;;3
;;; Mathematical functions for inexact (floating-point) numbers including4
;;; trigonometric, exponential, and logarithmic operations.5
;;;6
;;; See: [R7RS Small](https://small.r7rs.org/) §6.2.68
(define-library (scheme inexact)9
(export exp10
log11
sin12
cos13
tan14
asin15
acos16
atan17
sqrt18
finite?19
infinite?20
nan?)22
(begin23
;;; Test if a number is finite.24
;;;25
;;; Returns `#t` if the number is neither infinite nor NaN.26
;;;27
;;; ```scheme28
;;; (finite? 42) ; => #t29
;;; (finite? 3.14) ; => #t30
;;; (finite? +inf.0) ; => #f31
;;; (finite? +nan.0) ; => #f32
;;; ```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
;;; ```scheme40
;;; (infinite? +inf.0) ; => #t41
;;; (infinite? -inf.0) ; => #t42
;;; (infinite? 42) ; => #f43
;;; (infinite? +nan.0) ; => #f44
;;; ```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 results50
;;; from undefined operations like `(/ 0.0 0.0)`.51
;;;52
;;; ```scheme53
;;; (nan? +nan.0) ; => #t54
;;; (nan? (/ 0.0 0.0)) ; => #t55
;;; (nan? 42) ; => #f56
;;; (nan? +inf.0) ; => #f57
;;; ```58
(%set-docstring! nan?)))