You're welcome. Here's my take on ArcTan
/Log
, but I don't know to what extent it represents the intentions or philosophy of Wolfram.
The poles, of course, have to be at ±I
. While one might pick other lines for the branch cuts, the segments along the imaginary axis from each pole to infinity are symmetric and thus seem somewhat natural. For the values along the branch cuts, one may pick the values on any branch above the branch cut. I don't know to what degree the convention adopted by Mathematica is universal, but at the least, one should pick values that are continuous the principal branch, which usually leads to one of two choices. The choice for ArcTan[z]
may be seen to be the value approached when winding about the pole in a counterclockwise direction. (If that's the rule that is always used for the base transcendental functions, then there would be a predictable regularity to the values, which would be desirable in a programming language.)
The counterclockwise rule also applies to Log[z]
for z
a negative real number: Log[-E] == 1 + I * Pi
. However, when Log
is transformed, the counterclockwise rule can get reversed: -Log[-E] == -1 - I * Pi
, which is the value -Log[z]
approaches when the negative real axis is approached clockwise (with respect to the pole at the origin), that is, from above the negative real axis. The orientation is also reversed for Log[-z]
, which has the branch cut on the positive real axis: For z = E
, we have Log[-E] == 1 + I * Pi
, but this is the value you get approaching the positive real axis in the clockwise direction.
So the base functions ArcTan[z]
and Log[z]
have a certain consistency to them, but your expressions
{Log[1 + I ratio] - Log[1 - I ratio], Log[(1 + I*ratio)/(1 - I*ratio)]}
transform Log
in different ways, resulting in the orientation of the pole at ratio = -I
in the second expression being reversed. Note that the term - Log[1 - I ratio]
in the first expression reverses the orientation twice (once for each minus sign), so the first expression has the same counterclockwise rules at the branch cuts as I*2*ArcTan[ratio]
(the factors I*2
are a rotation and scaling, which do not reverse orientation).
Sometimes one wants, or at least hopes, to avoid the branch cuts in a particular problem. In those cases it does not matter what value is taken on branch cuts. Sometimes, it does not matter even if the branch cuts are not avoided. For instance if the value t = ArcTan[z]
is always used inside a trig. function, such as Sin[t]
, Cos[t]
, etc., then different values along the brach cuts won't matter. On the other hand, sometimes it does matter. It can be a pain if the argument is supposed to land approximately on the branch cut, but rounding error leads the argument to land unpredictably on one side or the other.