atan2 {
var %y = $1, %x = $2, %z = $1 / $2
if (%x == 0) {
if (%y > 0) return $calc($pi / 2)
if (%y == 0) return 0
else return $calc($pi / -2)
}
if ($abs(%z) < 1) {
var %atan = $calc(%z / (1 + 0.28 * (%z ^ 2)))
if (%x < 0) return $calc(%atan $iif(%y < 0, -, +) $pi)
}
else {
var %atan = $calc(($pi / 2) - %z / (%z ^ 2 + 0.28))
if (%y < 0) return $calc(%atan - $pi)
}
return %atan
}