In 13.3 and I believe quite a few versions earlier I could perform

 ComplexAnalysis`BranchPoints[Sqrt[z^2 - 1], z] and

 ComplexAnalysis`BranchCuts[Sqrt[z^2 - 1], z]

The functions seem undocumented.

What is their status? Are they there just to support other Complex Analysis functions? Or will they become mainstream available soon, what do you think? If you have any (preliminary) documentation, please provide.

  • 2
    $\begingroup$ I'd like to notice that ComplexAnalysis'BranchPoints[Sqrt[z^(9/2) - 1], z] and ComplexAnalysis ' BranchCuts[Sqrt[z^(9/2) - 1], z] are much stronger than their Maple's analogs. However I have got a problem with plotting the result of the latter. $\endgroup$
    – user64494
    Commented Aug 30, 2023 at 16:44
  • $\begingroup$ Perhaps you can find something in the Graphics Guide. I found how to visualize Riemann surfaces in that guide. - I was tipped by Bing Chat. $\endgroup$ Commented Aug 30, 2023 at 20:31
  • 2
    $\begingroup$ FYI there is also FunctionProperties`Singularities. $\endgroup$
    – Silvia
    Commented Jan 20 at 7:41
  • $\begingroup$ @Silvia While it might be tempting to think that singularities must always be branch points, it is not true in general. math.stackexchange.com/a/2137633/1280840 $\endgroup$
    – lotus2019
    Commented Jan 20 at 9:07
  • 1
    $\begingroup$ @lotus2019 That's surely correct. I just wanted to bring up a function of related topic, no further implies intended. $\endgroup$
    – Silvia
    Commented Jan 20 at 9:16

2 Answers 2


I think those commands leave much to be desired at the present. For example,

ComplexAnalysis`BranchPoints[Sqrt[z^(9/2) - 1], z]

{0, 1, -(-1)^(1/9), (-1)^(2/9), -(-1)^(1/3), (-1)^( 4/9), -(-1)^(5/9), (-1)^(2/3), -(-1)^(7/9), (-1)^( 8/9), ComplexInfinity}

If I am not mistaken, the above result is not true. The function under consideration has its branch points at 0, where z^(9/2) has, and at the roots of z(9/2)==1. But

Reduce[z^(9/2) == 1, z]

z == 1 || z == -(-1)^(1/9) || z == (-1)^(4/9) || z == -(-1)^(5/9) || z == (-1)^(8/9)

Not taking into account ComplexInfinity, we see only 6 branch points, not 10 ones.

  • $\begingroup$ One more bug : ComplexAnalysis'BranchPoints[Cos[Sqrt[z]], z] results in {0} though Cos[Sqrt[z]] is known to be an entire function. $\endgroup$
    – user64494
    Commented Sep 2, 2023 at 7:06
  • $\begingroup$ Are there any good examples?? Or is it all broken? $\endgroup$ Commented Sep 25, 2023 at 5:00

When the function ComplexAnalysis`BranchPoints operates on radical functions, it often mistakenly treats ComplexInfinity or 0 as branch points. In such cases, it is necessary to validate or exclude them based on the definition of branch points, for example:

expr = Sqrt[(z - a)*(z + b)];
pts = Assuming[a > 0 && b > 0, ComplexAnalysis`BranchPoints[expr, z]]

(* {a, -b, ComplexInfinity} *)

According to the definition of branch points ( https://encyclopediaofmath.org/wiki/Branch_point ;

https://mathworld.wolfram.com/BranchPoint.html ):

expr1 = Sqrt[(r  Exp[I  \[Theta]] - a)*(r  Exp[I  \[Theta]] + b)]
expr2 = Simplify[expr1 /. {\[Theta] -> \[Theta] + 2  \[Pi]}]
expr1 == expr2

(* True *)

Therefore, ComplexInfinity is not a branch point.

While it might be tempting to think that singularities must always be branch points, it is not true in general. See https://math.stackexchange.com/a/2137633/1280840

It is necessary to revise the code of ComplexAnalysis`BranchPoints from the perspective of the branch point definition, or develop a new universally applicable function for determining the branch point.

  • $\begingroup$ You wrote "According to the definition of branch points". Can you give us an accessible reference to that definition? $\endgroup$
    – user64494
    Commented Jan 21 at 9:06
  • $\begingroup$ I think you have to be a bit more careful when you use Mathematica for this type work. It's not using global analytic functions, but functions with branch cuts. For instance, subbing expr1 = Sqrt[r Exp[I \[Theta]]] into your example yields True. In fact, probably for every function, f[r Exp[I \[Theta]]] /. {\[Theta] -> \[Theta] + 2 \[Pi]}] yields f[r Exp[I \[Theta]]]. $\endgroup$
    – Goofy
    Commented Jan 21 at 21:30
  • $\begingroup$ @Goofy You are right, and I may have made a mistake in my examples. I provided two correct examples in this question: mathematica.stackexchange.com/q/296769/69835. $\endgroup$
    – lotus2019
    Commented Jan 22 at 4:44
  • $\begingroup$ How do you define "Radical Function" ? $\endgroup$ Commented Mar 6 at 18:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.