Code:
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
}


edit: the last %atan = was changed-- replaced "$pi" with "($pi / 2)"

Last edited by argv0; 26/07/08 09:18 PM.