atan
より、
ただし、logが2π周期だから、
値は、実数がπ周期。
C99では、
http://docs.hp.com/ja/B2355-60104-06/catan.3M.html
import std.cstream;
import std.math;void main(char[][] args) {
dout.writefln(atan(1+1i)); // 1.01722+0.402359i
dout.writefln(atan(1-1i)); // 1.01722+-0.402359i
}cdouble atan(cdouble z) {
return 0.5i * log( (1 - 1i * z) / (1 + 1i * z));
}cdouble log(cdouble z) {
double x = z.re;
double y = z.im;
return std.math.log(x * x + y * y) / 2 + 1i * atan2(y, x);
}