Skip to content

Releases: USACE-RMC/Numerics

Version 2.1.0

17 Jun 20:43
1873f8f

Choose a tag to compare

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.NegativeInfinity instead of double.MinValue as 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 NaN values 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

27 Apr 19:50
35b836c

Choose a tag to compare

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.DegreesOfFreedom setter no longer throws on invalid input. It now follows the same non-throwing _parametersValid convention used by BivariateCopula.Theta, BetaDistribution, and GammaDistribution — invalid values flip ParametersValid to false instead of crashing the caller. Constructors are aligned the same way.
  • StudentTCopula ν minimum unified at 2 + 1e-10 across ParameterConstraints and SetCopulaParameters. The previous 2.0 + Tools.DoubleMachineEpsilon expression silently rounded to 2.0 in IEEE 754 (the ULP at 2.0 is 2⁻⁵¹, larger than ε = 2⁻⁵³), causing fitting to fail at the lower bound.

Reliability

  • TimeSeriesDownload integration 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 from http:// to https://, 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

06 Apr 20:09
200452b

Choose a tag to compare

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

06 Apr 19:36
200452b

Choose a tag to compare

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

13 Sep 16:35
415e437

Choose a tag to compare

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!