Releases: florisvb/PyNumDiff
Release list
JOSS 2.0 in-review
A round of fixes and improvements prompted by JOSS review
- Methods no longer lose relative accuracy when data is rescaled; a test now enforces
f(a*x) == a*f(x) lineardiffnow supportsaxis, defaults toCLARABEL, and is fast enough to joinsuggest_methodand the optimization demo notebookrobustdiff's search space is leaner and faster, now thatlog_rhas a natural set point at 0optimizeno longer swallows warnings, which surfaced a batch of numerical bugs since fixed, including insplinediff,estimate_integration_constant, androbust_rme- Windows are constrained to odd sizes, because evenness silently degraded results; windows also now forced to touch or overlap so samples cannot be left uncovered between windows nor at the array tail
- Missing values and variable timesteps now raise explanatory errors instead of often silently returning NaNs
- Dependency list corrected, with a few min versions added
- General hardening and bugfixes:
spectraldiffwavenumber indexing was off-by-one,rtsdiffno longer aliasies on circular domains;savgoldiffnow measures length along correct axis;butterdiffnow uses second-order sections;polydiffbounds window size against degree; andwaveletdiffno longer NaNs out at threshold 0
Joss 2.0 pre-review
- Added wavelet-based differentiation/smoothing method
- Added circular domain support for
rtsdiffvia custom innovation function to Kalman filter
Revamped++
Still further improvements to complete the overhaul:
- Multidimensional support: all non-deprecated methods (except
lineardiff) now have anaxisparameter. - Several methods have been updated to handle missing values.
robustdiffhas been updated to handle variabledtbetween data points while still running fast.
Revamped+
Further enhancements to the overhaul, including:
- collection of most methods in the
smooth_finite_differencemodule askerneldiff - convex optimization improvements to make
robustdiffrun in linear time - caching to avoid duplicate calls during optimization
- extension of utilities and loss function to better optimize all methods in the presence of outliers
- extension of TVR to better handle outliers
- improved test coverage and control of coveralls
- linted code
- added support for multidimensional data to several methods
Revamped
It's been Pavelized, everything combed through and rewritten. The biggest user-facing change is the support of (and preference for) keyword arguments, but methods have also been corrected, expanded, reorganized, extended to handle variable step sizes where possible, given better tests, integrated with improved optimization code, documented thoroughly, and been put through a head-to-head performance analysis. All while removing about 2000 lines of code to make it more readable, manageable, and understandable. Enjoy.
Final v0.1 checkpoint
Final tag and release before major overhaul.
PyNumDiff 0.1.2.4 JOSS
Final JOSS release with corrected author list.
PyNumDiff 0.1.2
Notable changes:
- Requires python >= 3.5, largely due to the deprecated numpy.matrix syntax
- New pi_cruise_control function
- No longer requires cvxpy and pychebfun for installation, though these are optionally required for certain functions
- Skip tests that require cvxpy and pychebfun if these are not installed