[docs]defsanitize_numeric_array(arr:FloatArray,*,cap:float=NUMERIC_SANITIZE_CAP)->FloatArray:"""Return finite array with values clipped to ``[-cap, cap]``."""out=np.nan_to_num(np.asarray(arr,dtype=np.float64),nan=0.0,posinf=cap,neginf=-cap)ifnp.max(np.abs(out),initial=0.0)>cap:out=np.clip(out,-cap,cap)returnout
[docs]defstable_rms(arr:FloatArray)->float:"""Compute RMS without overflow from squaring very large magnitudes."""vals=sanitize_numeric_array(arr)ifvals.size==0:return0.0max_abs=float(np.max(np.abs(vals),initial=0.0))ifmax_abs<=0.0:return0.0scaled=vals/max_absreturnfloat(max_abs*np.sqrt(np.mean(scaled*scaled)))