This version marks the journey to our first stable release and introduces significant architectural changes, which obviously are backward incompatible.
- Decoupled vector and matrix representations from FSharp.Stats.
- Integrated
FsMathas the new lightweight, array-centric math backend. - Updated internal references in FSharp.Stats to use
FsMathprimitives for zero-friction integration. - Improved performance in core operations by leveraging
FsMath’s optimized routines.
Description
This PR introduces a separation of concerns between statistical algorithms and low-level numerical primitives.
Vector and matrix types have been moved to the new FsMath library under FsLab.org, which is optimized for performance and designed for seamless interoperability.
This change keeps FSharp.Stats focused on statistical functionality while making it easier to maintain and integrate into other F# workflows that rely on common libraries.
Migration note
If your project uses Vector or Matrix types from FSharp.Stats, you will now need to reference FsMath and update your open statements accordingly:
open FsMathAll existing APIs are preserved with minimal changes, so most code will require slight modifications from vector to Vector<float> explicitly, along with namespace adjustments.
Previously, arrays needed to be explicitly converted to vectors - now, Array and Vector can be used synonymously, removing the need for manual conversions in most cases.
Other Changes:
- Fix incorrect F-test denominator assignments in TwoWayAnovaModel
- Update test statistics to support generic type 'T data
- Additions:
- latest commit #529c2c01
- [#7aa79c61] add multinomial distribution
- [#bb43b03b] add Normalized Mutual Information #313
- [#4b6f1cf7] add KNN classifier
- [#9ba92b6f] add minkowski distance
- [#65a0a690] add Bezier interpolation
- [#b7792aeb] add hamming distance functions
- [#414d461e] add cubic spline with slopes
- [#6a9038e9] add interpolation differentiation add interpolation integration
- [#8fb5d6dd] add step interpolation
- [#f7a32615] rewrite kendall add tauc and taua variants
- [#57f89394] add Generalised Linear Models to FSharpStats (#334)
- Bugfixes:
- Docu:
- Rework
- Additions:
- latest commit #8ae34d07
- add various XML comments in Interpolation and Fitting modules
- BREAKING: major refactor of Fitting and Interpolation module
- separate CubicSpline.Simple and CubicSpline.Akima
- rename coefficient to fit and fit to predict
- addition of LinearRegression and Interpolation type
- [#8ab0975] addition of clamped cubic spline
- [#e884a75e] update FSharpAux version
- update interval type
- Additions:
- latest commit #46d86ad1
- [#c7117ef3] add negBinom distribution #256
- [#e35a3e6a] add Signal.Binning
- [#c3a98d41] add Nelder-Mead
- [#e28b4c88] add geomspace #252
- [#39e31c05] add linspace add linspace tests #235
- [#6b839083] add shorthand to filter out nan values from array #249
- [#35d0fc11] add chebyshev based approximation
- [#e688e2be] add mor normalization function
- [#3d6a2201] add normal InvCDF
- [#44c80715] add map merge #263
- [#6c9eb186] add wichura invCDF #262
- [#1ccd534b] Added Performance Optimized hClust #266
- [#7b210363] add invCDF for lognormal #262
- [#3a0940fa] add parameter field to distribution interface #271
- Bugfixes:
- Documentation:
- Deletions:
- Additions:
- Deletions:
- [#0726f42e] remove duplicate tests
- Bugfixes:
- [#9f350419] fix SAM permutation #243
- Documentation
- [#e7b81c1a] add normalization documentation closes #202
- Additions:
- Additions:
- Bugfixes:
- [#3aa4c4ce] fix failing docs
- Additions:
- latest commit #be68a276
- [#0d26dd2b] Add Gamma and Poisson fitting
- [#fa9dc6c1] Refactoring distribution modules
- [#20eee2e7] Add fitting and estimating a Gamma distribution from observations
- [#e9170b0e] Add Trigamma function
- [#e8e46bff] Add Digamma function
- [#35b3fa36] Add unit test for Beta.powerSeries
- [#ae70774b] Add Beta.powerSeries for incomplete beta integral
- [#f64b4f1e] Add Seq.meanQuadratic and Seq.meanQuadraticBy
- [#8b300c37] add new version PCA
- Deletions:
- [#8ca9b900] removed obsolete wilcoxon distribution #213
- Bugfixes:
- Tests:
- [#bcc98700] add unit tests meanQuadratic #233
- [#d21cc8c0] Added tests for Distributions.Continuous.F
- [#ab261eda] added Tests for FSharp.Stats.Distributions.Distinct.Binominal
- [#b0d6e540] add twoSamplePaired ttest test
- [#f203428c] add Intervals.intersect unit test
- [#a0ce2bbb] add PCA tests
- [#b92244a4] Added tests for Distributions.Continuous.F
- [#3ae95591] add interval tests #208
- [#4907e532] Add exponential Distribution unit tests
- [#47e2595e] Add beta function tests and xml docs
- [#d9617f56] Add tests for SolveTriangularLinearSystem
- [#dd412093] Add gamma function tests, add edgecase matches, add xml docs
- [#68aec558] add twoSamplePaired ttest test
- [#440a789c] add twosamplePaired ttest test
- [#e5d21a7e] Add Binomial coefficient tests
- [#142ae681] Add Unit test for F-Test
- [#542b7897] Add docs for Bernoulli distribution 📚
- [#312581f9] add onesample ttest test
- [#8582dd72] Add error function tests, fix edge case return values for erfcx
- [#cd964357] Add tests for SolveTriangularLinearSystems (Case: Lower)
- [#872ace38] add twosample ttest test
- [#c41cff63] Add logistic function tests
- [#60615948] Add tests for SolveTriangularLinearSystems (Case: Upper)
- [#1673a013] Add factorial and factorialLn tests, codebase cleanup
- [#261b0b80] add distance metrics tests
- Documentation
- Additions:
- latest commit #9386ed56
- [#a28a119b] add release notes build target
- Bugfixes:
- [#8060b68a] Fix index errors on ommitted rows + ommitted cols formatting
- Tests
- [#8a559f56] Add int Matrix formatting tests
- Additions:
- Bugfixes:
- Tests:
- Documentation:
- Additions:
- Improvements:
- Additions:
- Additions:
- Bugfixes:
- Additions:
- Bugfixes:
- Additions:
- latest commit #e699171
- [#1138ef6] update docs generation workflow
- [#f8c2ed9] add binder links to all docs
- [#e5a98bb] update altcover and switch to lcov coverage format
- [#80c89d0] add generic Seq.cov functions based on Vector.cov.
- [#8c82d85] add deseq2 medianOfRatios normalization
- [#eba03f3] add ZScore calculations
- update clustering, basic stats, and distribution documentation
- Deletions:
- [#e855845] remove unnecessary doc files
- Bugfixes:
- [#46d203e] fix Matrix.meanRowWise #119
The documentation and unit tests have been extended.
-
FSharp.Stats
- latest commit #c76af47
- Modernization of build and CI chains
- Additional functionalities:
-
FSharp.Stats.Lapack
-
FSharp.Stats.MSF
Several bugfixes and additions to multiple namespaces. The documentation and unit tests have been extended.
Version bump to 0.3.0
-
FSharp.Stats
- Improvement of gap statistics performance
- Bug fixes:
- Additional functionalities:
- Silhouette index for cluster number determination
- Extend range support for hypergeometric distribution
- getCriticalTValue function
- Confidence and prediction bands for simple linear regression
- Shuffle and split cross validation
- Generic version of leave one out cross validation
- Constrained simple linear regression
- Distribution distance metrices
- Confidence intervals
- SEM (Standard error of the mean)
- Growth curve fitting
- One sample t test
- Hierarchical clustering aggregation
- F test
- Fishers LSD
- H test
- Studentized range distribution
-
FSharp.Stats.Lapack
- no changes
-
FSharp.Stats.MSF
- Modularization of temporal classification module
- Additional functionalities:
First nuget pre-release package.
Version bump to 0.2.1-beta.
-
FSharp.Stats
- no changes
-
FSharp.Stats.Lapack
- no changes
-
FSharp.Stats.MSF
- no changes
Additions, improvements and bugfixes in multiple namespaces. The documentation has been extended.
-
FSharp.Stats.Fitting
- Additional functionalities:
-
FSharp.Stats.ML
- Namespace typo fix for GapStatistics. Watch out if using older versions.
- Additional functionalities:
-
FSharp.Stats.MSF
- Additional functionalities:
Several bugfixes and additions to multiple namespaces. The documentation and unit tests have been extended.
-
FSharp.Stats (core)
- Additional functionalities:
- Sparse Matrix initialization
- Sparse Matrix multiplication replaced implementation to gain performance
- Sparse Matrix QR decomposition
- Spectral matrix norm
- Generalized weighted pearson correlation
- Additional functionalities:
-
FSharp.Stats.Fitting
- Additional functionalities:
-
FSharp.Stats.Signal
- Additional functionalities:
- Estimate optimal window width for savitzky golay filters
- BaselineALS' internal use of sparse matrices to increase performance
- Additional functionalities:
-
FSharp.Stats.ML
- Additional functionalities:
- Set similarity measures
- Energy landscape plot to SA
- GapStatistics assists cluster number optimization
- Additional functionalities:
Several bugfixes and additions to multiple namespaces:
-
FSharp.Stats (core)
- Additional functionalities:
- Matrix FSI printer for increasing convenience when working with matrices
- Biweight midcorrelation for sequences, vectors and matrices
- Bug fixes:
- Additional functionalities:
-
FSharp.Stats.Fitting
- Additional functionalities:
- Weighted polynomial least squares fitting to cope with heteroscedacity
- Adjusted coefficient of determination to incorporate the number of required variables
- Leave-out-one cross validation
- Exponential fit model in non-linear regression
- Theil-Sen estimator for robust linear regression
- Weighted pearson correlation to cope with heteroscedacity
- Calculate derivatives for polynomial regression
- Additional functionalities:
-
FSharp.Stats.Interpolation
- Additional functionalities:
- Polynomial interpolation
- Cubic spline interpolating with several boundary conditions
- Cubic Hermite spline with simple slope estimator
- Get monotonicity slopes that if possible fit an monotone interpolating cubic spline
- Calculate derivatives for interpolating polynomials and interpolating cubic splines
- Additional functionalities:
-
FSharp.Stats.Integration
- Additional functionality:
-
FSharp.Stats.Algebra
- Additional functionality:
- Calculation of the nullpace of a matrix based on SVD
- Additional functionality:
-
FSharp.Stats.Signal
- Additional functionalities:
- Ricker wavelet for 2D continuous wavelet transform
- Marr wavelet for 3D continuous wavelet transform
- Signal padding
- Continuous wavelet transform with defaultCWT and discrete CWT
- Additional functionalities:
-
FSharp.Stats.MSF
- Several improvements for Hermite (Temporal Classification):
- commit c0d98de
- add extrema calculation of constrained spline
- add third extrema constraints
- add various weighting methods
- add corrected AIC model selection criterion
- commit c0d98de
- Several improvements for Hermite (Temporal Classification):
- PCA
- Fix pValueAdjust
- Fix median
- Bump version to 0.0.11
- Initial release