According to the Wikipedia article, another way to obtain z_0 and z_1 is with trig:
- z_0 = R cos(θ)
- z_1 = R sin(θ)
The trig functions will give negative values over half of their domains.
I won't hazard to pronounce the derivation from the so-called Basic Form (trig) to the Polar Form implemented in the BMT block. The advantage of the latter is that it avoids calling the trig functions in a language's floating point package. That difference maybe used to afford a real speed advantage. It's the form I've always used for simulations.
Here's a link to the article (or you can find the same in Knuth.)