The previous benchmark results showed that the GA was failing to find accurate roots (high MAE) for many polynomials. This was because the fixed default search range ([-100, 100]) was often incorrect, and the GA was searching in the wrong place.
This commit introduces a significantly more robust solution:
1. Adds a `_get_cauchy_bound` helper function to mathematically calculate a search radius that is guaranteed to contain all real roots.
2. Updates `_solve_x_numpy` and `_solve_x_cuda` with new logic:
* If the user provides a *custom* `min_range` or `max_range`, we treat them as an expert and use their specified range.
* If the user is using the *default* range, we silently discard it and use the smarter, automatically-calculated Cauchy bound instead.
This provides the best of both worlds: a powerful, smart default for most users and an "expert override" for those who need to fine-tune the search area.