v0.6.1-dev #22

Merged
jono merged 2 commits from v0.6.1-dev into main 2025-10-31 19:43:36 +00:00
2 changed files with 14 additions and 3 deletions

View File

@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project]
# --- Core Metadata ---
name = "polysolve"
version = "0.6.0"
version = "0.6.1"
authors = [
{ name="Jonathan Rampersad", email="jonathan@jono-rams.work" },
]

View File

@@ -133,6 +133,15 @@ class GA_Options:
raise ValueError(
f"blend_alpha cannot be negative, but got {self.blend_alpha}"
)
if self.root_precision > 15:
warnings.warn(
f"root_precision={self.root_precision} is greater than 15. "
"This demands an accuracy that is likely impossible for standard "
"64-bit floats (float64), which are limited to 15-16 significant digits. "
"The solver may fail to find any roots.",
UserWarning,
stacklevel=2
)
def _get_cauchy_bound(coeffs: np.ndarray) -> float:
"""
@@ -256,7 +265,9 @@ class Function:
"""
self._check_initialized()
if self._largest_exponent == 0:
raise ValueError("Cannot differentiate a constant (Function of degree 0).")
diff_func = Function(0)
diff_func.set_coeffs([0])
return diff_func
derivative_coefficients = np.polyder(self.coefficients)
@@ -672,7 +683,7 @@ class Function:
def _multiply_by_scalar(self, scalar: Union[int, float]) -> 'Function':
"""Helper method to multiply the function by a scalar constant."""
self._check_initialized() # It's good practice to check here too
self._check_initialized()
if scalar == 0:
result_func = Function(0)