純虚数の場合 引数が純虚数だと速くなる可能性があるので、 それ用にも書いてみる。 ここまでは一価だからやさしい。 log 虚部は[-π, π]だから、 sqrt 符号はyの正負による。 acos 実部が[0, π]だから、-を取る。 asin 実部が[-π/2, π/2]だから、 -を取ると、logの中が負で、(2n + 1)πiの項が出てきて、 範囲に収まらない。 +を取ると、logの中が正となり、実部は常に0。 atan powはメリットなさそうなので、パス。 import std.cstream; import std.math; void main(char[][] args) { dout.writefln(exp(0.1i)); dout.writefln(cos(0.1i)); dout.writefln(sin(0.1i)); dout.writefln(tan(0.1i)