#include #include #include typedef double _Complex C; typedef double R; C dilog(C); static C c(R x, R y){C a; __real__ a = x; __imag__ a = y; return a;} static R sq(R x){return x*x;} static R m2(C x){return sq(creal(x)) + sq(cimag(x));} static void pc(C a){printf("%19.16f + %19.16fi\n", creal(a), cimag(a));} int main(){C row[2004]; R dis = 0; C wh; {int j = 2004; while(j--) row[j] = dilog(c((j-1002)*0.001, -0.003));} {int k; for(k=-2; k<1005; ++k) {C m = dilog(c(-1002*0.001, k*0.001)); {int j; for(j=1; j<2004; ++j) {C w = c((j-1002)*0.001, k*0.001), v = dilog(w), d1 = v-m, d2 = v-row[j]; C cp1 = w-0.0005, der1 = - clog(1-cp1)/cp1; C cp2 = w-(0+0.0005i), der2 = - clog(1-cp2)/cp2; R e1 = m2(d1-der1*0.001), e2 = m2(d2-der2*0.001); if( e1>0.00008 || e2>0.00008) {printf("sing: %d %d\n", k, j); pc(w); pc(v); pc(cp1); pc(cp2); pc(d1); pc(der1); pc(d2); pc(der2); pc(e1); pc(e2);} else if(e1 > dis || e2 > dis) {wh = w; dis = e1