chickadee » scheme » make-rectangular

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

These procedures are part of every implementation that supports general complex numbers. Suppose x[1], x[2], x[3], and x[4] are real numbers and z is a complex number such that

z = x[1] + x[2]i = x[3] . e^i x[4]

Then

(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]

where - pi < x[angle] < pi with x[angle] = x[4] + 2 pi n for some integer n.

Rationale: Magnitude is the same as abs for a real argument, but abs must be present in all implementations, whereas magnitude need only be present in implementations that support general complex numbers.