>>688
double にキャストする位置がおかしい。

- *(X + i) = ((1 / (n1 - 1)) * (double)i);
+ *(X + i) = (1.0 / (n1 - 1)) * i;

Y も同様。