Если вы когда-нибудь получите zr == zi == 0
, вы будете пытаться взять log2(0)
, который не определен (-inf
как предел).
Если zr*zr+zi*zi
всегда равенменьше или равный единице, внутреннее log2
вернет 0 или отрицательное значение, которое сломает внешнее log2
(не может записывать в журнал отрицательное число, пока вы имеете дело с реалами).
(И я не думаю, что оно будет плавно масштабироваться для значений zr*zr+zi*zi
, немного превышающих 1.)