Guest User

Untitled

a guest
Feb 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. x = RandomComplex[{-1 - I, 1 + I}, 1000000];
  2.  
  3. arg1[x_] := Mod[Arg@x, 2 π];
  4. arg2[x_] := Arg[-x] + π;
  5. arg3[z_] := π + ArcTan[-Re[z], -Im[z]];
  6.  
  7. Max[Abs[arg1[x] - arg2[x]], Abs[arg1[x] - arg3[x]]]
  8. (* 8.88178*10^-16 *)
  9.  
  10. arg1[x]; // AbsoluteTiming
  11. (* {0.16715, Null} *)
  12.  
  13. arg2[x]; // AbsoluteTiming
  14. (* {0.154602, Null} *)
  15.  
  16. arg3[x]; // AbsoluteTiming
  17. (* {0.090001, Null} *)
  18.  
  19. Block[{Arg = arg3}, Arg[Exp[-I]]]
  20. (* -1 + 2 π *)
  21.  
  22. Block[{Arg = arg3}, Plot[Arg@Exp[I φ], {φ, -2 π, 2 π}]]
  23.  
  24. arg[z_] /; Im[z] < 0 := Arg[z] + 2 Pi; arg[z_] /; Im[z] >= 0 := Arg[z]
  25.  
  26. argVec[zVec_] := Module[{imShift},
  27. imShift = Unitize[(Sign /@ Im[zVec] - 1)]*(2π//N);
  28. Arg[zVec] + imShift];
Add Comment
Please, Sign In to add comment