1. Module (scheme complex)

Module (scheme complex)

R7RS Operations on complex numbers.

[procedure] (make-rectangular x[1] x[2])
[procedure] (make-polar x[3] x[4])
[procedure] (real-part z)
[procedure] (imag-part z)
[procedure] (magnitude z)
[procedure] (angle z)

Let x[1], x[2], x[3] and x[4] be real numbers and z be a complex number such that

  z  =  x[1]  +  x[2] * i =  x[3] * e^(i * x[4])

Then all of

(make-rectangular x[1] x[2])   ==> z
(make-polar x[3] x[4])         ==> z
(real-part z)                  ==> x[1]
(imag-part z)                  ==> x[2]
(magnitude z)                  ==> |x[3]|
(angle z)                      ==> x[angle]

are true, where

   −π ≤ x[angle] ≤ π with x[angle] = x[4] + 2 * π * n for some integer n.

The make-polar procedure may return an inexact complex number even if its arguments are exact. The real-part and imag-part procedures may return exact real numbers when applied to an inexact complex number if the corresponding argument passed to make-rectangular was exact.

Rationale: The magnitude procedure is the same as abs for a real argument, but abs is in the base library, whereas magnitude is in the optional complex library.


Previous: Module (scheme char)

Next: Module (scheme cxr)