I am observing a very strange behavior from PlanarAngle:
Fortunately, however, all results are correct.
Your findings are touched upon in the PlanarAngle documentation
PlanarAngle
Hans, you're right. I didn't really realize what "generic" means.
However, that makes the symbolic result of PlanarAngle pretty meaningless.
Meanwhile I found out that the symbolic result of PlanarAngle is wrong. The correct symbolic result of PlanarAngle would have to be a Piecewise expression that depends on the relative positions of the points p, q1, q2.
See the following and attached Notebook "210717b PlanarAngle Issues 2.nb".
A somewhat rough workaround could be to use VectorAngle instead:
VectorAngle
myPlanarAngle[p_, q1_, q2_] := VectorAngle[q1 - p, q2 - p] Table[{i, myPlanarAngle[{0, 1}, {-Sin[\[Phi]], Cos[\[Phi]]}, {Cos[\[Phi]], Sin[\[Phi]]}]}, {i, 50}]
This is clearly a bug and should be reported here. To work around the issue until it is fixed, I recommend calling ClearSystemCache[] before PlanarAngle.
ClearSystemCache[]
@Jason: This makes results at least reproducible, just like Remove, ClearAll do (see above). But it is a very expensive operation since it clears all cached intermediate results so far.
We now have:
Of course it doesn't prevent PlanarAngle from changing its behavior.
I reported this as a bug to Wolfram Support.
Very very strange. Does anybody have any idea what happens here?
I think repeatability and reproducibility shoul be one of the most basic features of programming languages. PlanarAngle seems to show a kind of randomness instead.
After testing a bit more on another W10 computer I must correct myself. There the change from complex to real also appears, but later than it does on the Cloud. Typically around the 14th evaluation.
Table[{i, PlanarAngle[{0, 1} -> {{-Sin[\[Phi]], Cos[\[Phi]]}, {Cos[\[Phi]], Sin[\[Phi]]}}]}, {i, 50}]
Werner, so far I had only tried the code on Mathematica installed on my computer. The so called Mathematica|Desktop. And there are no problems.
But after your recent reply I tried it on the Wolfram Cloud. And I get exactly the same strange results that you have described!
I did not try that within the cloud but on the desktop only. I use a Wolfram|One license.
I am also using Windows 10 and Mathematica 12.3.1. And I can not reproduce the issue. No matter how many times PlanarAngle[{0,1} -> {{-Sin ... is evaluated the output always contains Conjugate
PlanarAngle[{0,1} -> {{-Sin ...
Conjugate
Table[PlanarAngle[{0, 1} -> {{-Sin[\[Phi]], Cos[\[Phi]]}, {Cos[\[Phi]], Sin[\[Phi]]}}], 50]
Hmm, this is another miracle.
For me, your code executed in a freshly loaded kernel looks like: