20 if (!function_exists(__NAMESPACE__ .
'\\theta')) {
21 function theta($complex): float
23 $complex = Complex::validateComplexArgument($complex);
25 if ($complex->getReal() == 0.0) {
26 if ($complex->isReal()) {
28 } elseif ($complex->getImaginary() < 0.0) {
32 } elseif ($complex->getReal() > 0.0) {
33 return \atan($complex->getImaginary() / $complex->getReal());
34 } elseif ($complex->getImaginary() < 0.0) {
35 return -(M_PI - \atan(\abs($complex->getImaginary()) / \abs($complex->getReal())));
38 return M_PI - \atan($complex->getImaginary() / \abs($complex->getReal()));