> 現在のCMath.cbrt(-8)の結果は-2で、これは3乗すると-8になるとい
> う意味で正しい値に思えるのですが。Cmath.cbrt(-8)が返すべき
> 「正しい」値はなんだとお考えですか?

絶対的に正しい値はないと思いますが、おおよそ、Complex(-8) ** (1.0/3) で
ある (1.0+1.73205080756888i) ではないでしょうか。

> あるいは(-2+0i)を返すべきという主張なのかもしれませんが、現在
> のCMathの関数群は、全般に「Mathの関数群が実数の範囲で定義され
> ずエラーになる場合、CMathの対応する関数は複素数を返す」という
> 設計になっており、ことさらcbrtについてだけ変える必要があるよ
> うには思えません。

複素数を値域、定義域にする関数なら、複素数の範囲内でもっとも適切な値を
返すべきだと思います。逆に言えば、Math.cbrt は実数の範囲内では、-2.0 を
返すのが妥当だからそうなっているのではないかと思います。CMath は実数で
表現できない場合に複素数をつかう関数ではなく、複素数を値域、定義域に持
つ関数群なのではないでしょうか。