private static XInt BigRecProduct(XInt[] s, int n, int m) { if (n > m) { return XInt.One; } if (n == m) { return s[n]; } int k = (n + m) >> 1; return BigRecProduct(s, n, k) * BigRecProduct(s, k + 1, m); }