Releases: USACE-RMC/Numerics
Release list
Numerics v2.1.4
Numerics v2.1.4
Highlights
Numerics v2.1.4 tightens distribution factory, mixture, transformation, and empirical distribution behavior with focused regression coverage.
Reliability and Fixes
- Added non-throwing univariate distribution factory creation for validation-oriented callers.
- Preserved valid zero-inflated mixture weights.
- Hardened Box-Cox and Yeo-Johnson fitting and inversion against invalid candidates.
- Enforced ascending empirical distribution ordinates.
Statistics and Distributions
- Expanded regression tests for
UnivariateDistributionFactory,Mixture,EmpiricalDistribution,BoxCox,YeoJohnson, andYeoJohnsonLink.
Install
dotnet add package RMC.Numerics --version 2.1.4Numerics v2.1.3
Highlights
Numerics v2.1.3 hardens numerical edge cases found during an audit, improves distribution parameter validation, and enforces XML documentation quality in release builds.
Reliability and Fixes
- Fixed interpolation/search, histogram bound updates, probability underflow guards, MVNDST/COVSRT status handling, Brent bracketing failure handling, and atomic double addition edge cases.
- Hardened invalid-parameter behavior across univariate, multivariate, and copula distributions.
- Copula clones now deep-copy marginals, and Archimedean copula parameter validity no longer depends on sentinel values.
Statistics and Distributions
- Added non-throwing mutable covariance support to
MultivariateNormalfor likelihood workflows. - Added
MultivariateNormalmarginal and conditional distribution utilities. - Improved NoncentralT and other distribution validation/regression coverage.
Build and Documentation
- XML documentation warnings are now enforced as build errors for public API additions and changes.
- Expanded regression tests around audited numerical and API edge cases.
Install
dotnet add package RMC.Numerics --version 2.1.3Numerics v2.1.2
Highlights
Numerics v2.1.2 improves time-series download reliability, fixes duplicate timestamp handling, and refreshes package metadata for the next public release.
Reliability and Fixes
- Time-series downloads now prefer IPv4 while preserving IPv6 fallback, avoiding long stalls on networks that silently drop IPv6 traffic.
- Provider downloads no longer depend on unrelated generic connectivity probes.
- Duplicate USGS/GHCN timestamps are normalized deterministically with last-value-wins behavior.
Series.Clear()is faster on large downloads, andSeries.RemoveAt(index)now removes the requested index even when duplicate values exist.
Statistics
- Added
RunningStatistics.Clone(). - Fixed
RunningStatistics.Combine()and the+operator so results no longer alias non-empty operands when the other operand is empty.
Install
dotnet add package RMC.Numerics --version 2.1.2Version 2.1.1
Summary
Version 2.1.1 is a metadata and release-process patch for the JOSS publication.
Changes
- Increased the VSTest connection timeout in the release workflow to avoid testhost startup timeouts on slower runners.
- Refreshed NuGet package metadata and release notes.
- Updated citation, CodeMeta, README, and author/affiliation/ORCID metadata for the JOSS release.
- Updated snapshot package versioning to the next development patch line.
Compatibility
This release does not change the public API or numerical behavior.
Version 2.1.0
This release adds new statistical modeling features, improves bootstrap analysis support, and fixes several numerical and time-series reliability issues.
Added
- Added Fisher-Z and Yeo-Johnson link functions, including factory/controller support and unit tests.
- Added pivotal bootstrap functionality for uncertainty analysis.
- Added supporting pivotal bootstrap types for fit results, context, diagnostics, and invalid-draw handling.
- Added expanded test coverage for link functions, pivotal bootstrap behavior, MCMC recomputation, distribution edge cases, and time-series resampling.
Changed
- Improved distribution and likelihood handling by using
double.NegativeInfinityinstead ofdouble.MinValueas the sentinel for impossible or invalid likelihood values. - Updated NUTS and related sampling logic to better handle negative-infinity likelihoods and gradients.
- Improved XML documentation for the new link and bootstrap APIs.
- Updated JOSS bibliography DOI metadata.
Fixed
- Fixed KNN time-series resampling so generated trajectories advance correctly through time.
- Fixed moving sums, moving averages, and block aggregations so
NaNvalues propagate instead of being silently treated as zero. - Fixed culture-sensitive numeric parsing in serialization and external-data paths by using invariant-culture parsing where source data uses US-formatted numbers.
- Hardened time-series download providers with transient retry handling, improved connectivity checks, and better handling of service outages.
- Fixed parsing of offset-bearing BOM and CHMN real-time timestamps to avoid date shifts on machines in different local time zones.
- Fixed USGS peak-data parsing bounds checks for short historical rows.
- Removed a BOM fallback path that could silently return hourly data when daily data was requested.
Maintenance
- Updated the snapshot workflow so snapshot publishing does not rerun the full multi-target test suite.
- Replaced MSTest assertions flagged by analyzer warnings with the newer typed assertion APIs.
v2.0.2 — License Update + Bug Fixes
Highlights
Relicensed to Zero-Clause BSD (0BSD). Numerics now ships under the 0BSD license, replacing the prior BSD-3-Clause USACE-RMC license. 0BSD is a public-domain-equivalent permissive license: you may use, copy, modify, and distribute the software for any purpose without attribution. License headers have been stripped from all 378 source files; LICENSE, README, CITATION.cff, CONTRIBUTING.md, docs/index.md, codemeta.json, and the NuGet package metadata have been updated to match.
Bug fixes
StudentTCopula.DegreesOfFreedomsetter no longer throws on invalid input. It now follows the same non-throwing_parametersValidconvention used byBivariateCopula.Theta,BetaDistribution, andGammaDistribution— invalid values flipParametersValidtofalseinstead of crashing the caller. Constructors are aligned the same way.StudentTCopulaν minimum unified at2 + 1e-10acrossParameterConstraintsandSetCopulaParameters. The previous2.0 + Tools.DoubleMachineEpsilonexpression silently rounded to2.0in IEEE 754 (the ULP at 2.0 is 2⁻⁵¹, larger than ε = 2⁻⁵³), causing fitting to fail at the lower bound.
Reliability
TimeSeriesDownloadintegration tests are now resilient to upstream provider outages. Per-service availability probes (CHMN, USGS, GHCN, BOM) replace the generic online check in all 31 integration tests. A single provider being down (e.g. BOM's KiWIS / WDP backend) now skips the affected tests cleanly rather than failing the suite. BOM URLs switched fromhttp://tohttps://, and KiWIS error response bodies are now surfaced in exceptions for easier diagnosis.
Compatibility
No API breaking changes. Existing callers will see one behavioral change: new StudentTCopula(ρ, ν ≤ 2) and copula.DegreesOfFreedom = ν ≤ 2 no longer throw — they construct/assign and set ParametersValid = false instead. Any code that relied on the throw should switch to checking ParametersValid.
v2.0.1 — Zenodo Archival
Patch release for Zenodo DOI archival. For the full v2.0.0 release notes, see: https://github.com/USACE-RMC/Numerics/releases/tag/v2.0.0
v2.0.0 — Major Update
v2.0.0 — Major Update
This is a major update to Numerics with 274 files changed since v1.0.0. Highlights include new distributions, improved MCMC inference, enhanced numerical methods, and comprehensive documentation.
New Distributions
- Dirichlet distribution (multivariate)
- Multinomial distribution (multivariate)
- Multivariate Student-t distribution
- Student-t copula
- Von Mises distribution for circular data
- Enhanced Competing Risks distribution
Bayesian Inference & MCMC
- Added No-U-Turn sampler (NUTS) with adaptive tuning parameters
- Improved Gelman-Rubin convergence diagnostics
- Enhanced MCMC sampler reliability and convergence
Numerical Methods
- Bessel functions of the first and second kind
- Linear algebra enhancements
- Root-finding improvements
- ODE solver improvements
- Improved adaptive integration
Functions
- Link function framework (Identity, Logit, Log, Probit, Complementary Log-Log)
Data & Statistics
- Bootstrap analysis overhaul with new BootstrapResults class
- Time series download improvements
- Hypothesis test enhancements
- Enhanced parameter estimation methods
- Autocorrelation and convergence diagnostics improvements
Optimization
- Comprehensive correctness improvements across all optimizers
Machine Learning
- Generalized Linear Model enhanced with full link function support
- Code quality improvements
Infrastructure & Documentation
- Added .NET 10.0 target framework (now targets net8.0, net9.0, net10.0, net481)
- Zero runtime dependencies maintained
- 1,700+ unit tests validated against published references
- JOSS paper and metadata (CITATION.cff, codemeta.json)
- CONTRIBUTING.md and CODE_OF_CONDUCT.md
- 25+ documentation files covering all library capabilities
- NuGet publishing workflow for nuget.org
Numerics v1.0.0
We're thrilled to introduce the public release of the USACE-RMC Numerics library. This foundational library serves as the bedrock of the RMC software suite, powering critical tools like RMC-RFA, RMC-BestFit, RMC-TotalRisk, and LifeSim.
Key Features and Improvements:
The Numerics library includes a robust collection of numerical algorithms for tasks such as:
- Interpolation
- Regression
- Statistics
- Time series analysis
- Probability distributions
- Linear algebra
- Numerical integration
- Global and local optimization
- Machine learning
- Bootstrap uncertainty analysis
- Bayesian MCMC
Extensive Documentation
The library includes clear and detailed XML documentation to guide users in effectively leveraging the library's capabilities.
Example Use Cases
- Risk Assessment: Quantifying uncertainties and risks in engineering projects.
- Data Analysis: Exploring and analyzing large datasets to identify trends and patterns.
- Decision Support: Providing valuable insights to inform informed decision-making.
Getting Started
We recommend using NuGet for convenient installation of the RMC.Numerics package.
Join the Community
We invite you to become part of the Numerics community. Share your feedback, contribute to development, and collaborate with other users.
Future Plans
We're committed to the ongoing development and improvement of the Numerics library. Future releases will introduce new features, enhancements, and optimizations to meet the evolving needs of our users.
Thank you for your support!