Repository navigation
v0.12.2
Billing impact
This release corrects underbilling and invalid symmetry discounts. Affected
calls can cost more than in 0.12.1; ordinary calls outside the corrected paths
retain their existing pricing.
- Unary ufuncs price the actual loop selected by
dtype=,signature=or
sig=, and widerout=destinations contribute independently. With
production weights, four float32 values passed to
exp(signature="d->d")cost 128 instead of 64; a complex128 loop costs
396 instead of 64.modfandfrexpfollow the same rule; natural output
destinations remain price-neutral. choosewith a positional output and module-levelrandom.shufflenow
invalidate stale symmetry tags, removing discounts on asymmetric data.histogram2dandhistogramddapply per-axis bin-search pricing to supported
scalar counts, count vectors, shared edges and mixed count/edge forms.
histogramandhistogram_bin_edgesalso charge edge construction, and
histogram(density=True)charges its normalization arithmetic.- Each executed length-one FFT stage bills 2 base FLOPs per batch entry for
complex working-buffer movement, before dtype rates and operation weights.
Ordinary butterfly formulas are unchanged. polyfit(cov=True)andcov="unscaled"bill additional covariance work,
sharing matrix work across RHS columns. For eight float64 samples and degree
three, production charges rise from 4,328 to 5,150 (scaled) or 5,148
(unscaled).full=Truestill skips covariance.polyval,var/stdwith an enlargingmean=,trapezoidwith N-Dx,
andisclose/allclosewith array tolerances account for broadcast work.- Periodic
interpcharges its preprocessing;matrix_rankcharges broadcast
tolerance comparisons; relocatedvecdot/matvec/vecmataxes determine
the contraction being priced.
Symmetry and correctness
- Caller-declared
einsum(symmetry=...)results are canonicalized before
tagging, matchingas_symmetric: values within the validation tolerance are
made exactly symmetric instead of preserving arbitrary asymmetric data.
An exact S5 general-matmul exploit regression covers this boundary. - Positional destinations share keyword
out=write tracking, including
aliases, while preserving deferred custom-ufunc writes on NumPy 2.4. - Cumulative scans, reordered einsum outputs and vector quantile/percentile
outputs retain symmetry on the correct axes. Quantile fixes include NaN
variants and dimensions introduced byq. - Unary dtype/signature constraints are frozen once for consistent billing and
execution; invalid loops and incompatible output casts reject without charge.
Compatibility
- All three packages release together at 0.12.2. NumPy requirements remain
>=2.0.0,<2.5.0; this release does not raise the NumPy minimum. - FFT, histogram and polyfit changes preserve upfront budget enforcement.