32 lines
673 B
Scheme
32 lines
673 B
Scheme
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; math.ss: some extra math routines
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
#lang scheme/base
|
|
(provide pi
|
|
sqr
|
|
sgn conjugate
|
|
sinh cosh)
|
|
|
|
(define (sqr z) (* z z))
|
|
|
|
(define pi (atan 0 -1))
|
|
|
|
;; sgn function
|
|
(define (sgn x)
|
|
(if (exact? x)
|
|
(cond [(< x 0) -1] [(> x 0) 1] [else 0])
|
|
(cond [(< x 0.0) -1.0] [(> x 0.0) 1.0] [else 0.0])))
|
|
|
|
;; complex conjugate
|
|
(define (conjugate z)
|
|
(make-rectangular (real-part z) (- (imag-part z))))
|
|
|
|
;; real hyperbolic functions
|
|
(define (sinh x)
|
|
(/ (- (exp x) (exp (- x))) 2.0))
|
|
|
|
(define (cosh x)
|
|
(/ (+ (exp x) (exp (- x))) 2.0))
|