You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: paper/paper.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ bibliography: paper.bib
38
38
39
39
# Summary
40
40
41
-
Numerics is a free and open-source numerical computing library for .NET, developed by the U.S. Army Corps of Engineers Risk Management Center (USACE-RMC). The library provides over 40 univariate probability distributions with L-moment and maximum likelihood parameter estimation, six Markov Chain Monte Carlo (MCMC) samplers for Bayesian inference, bootstrap uncertainty quantification, bivariate copulas, optimization algorithms, and numerical methods for integration, differentiation, root finding, and linear algebra. Numerics targets engineers, scientists, and analysts working in infrastructure risk assessment, flood frequency analysis, and Monte Carlo simulation within .NET-based enterprise systems. The library is self-contained with zero external runtime dependencies, supports .NET 8.0 through 10.0 and .NET Framework 4.8.1, and is validated by over 1,000 unit tests against published reference values.
41
+
Numerics is a free and open-source numerical computing library for .NET, developed by the U.S. Army Corps of Engineers Risk Management Center (USACE-RMC). The library provides over 40 univariate probability distributions with L-moment and maximum likelihood parameter estimation, eight Markov Chain Monte Carlo (MCMC) samplers for Bayesian inference, bootstrap uncertainty quantification, bivariate copulas, optimization algorithms, and numerical methods for integration, differentiation, root finding, and linear algebra. Numerics targets engineers, scientists, and analysts working in infrastructure risk assessment, flood frequency analysis, and Monte Carlo simulation within .NET-based enterprise systems. The library supports .NET 8.0 through 10.0 and .NET Framework 4.8.1 and is validated by over 1,000 unit tests against published reference values.
42
42
43
43
# Statement of Need
44
44
@@ -50,7 +50,7 @@ Numerics fills this gap by providing domain-specific capabilities within .NET:
50
50
51
51
-**Hydrology-specific distributions**: Log-Pearson Type III, Generalized Extreme Value, Pearson Type III, Generalized Pareto, and Kappa-Four, with L-moment parameter estimation [@hosking1990; @hosking1997] that outperforms conventional moments for the small samples typical of flood records.
52
52
-**Mixed-population and competing-risk models**: Mixture distributions [@waylen1982; @alila2002] for sites where floods arise from distinct causal mechanisms such as rainfall, snowmelt, or dam-regulated releases, and competing-risks models [@crowder2001; @bedford2001] for reliability analysis with multiple failure modes.
53
-
-**Bayesian inference**: Six MCMC samplers, including Random Walk Metropolis-Hastings, Adaptive RWMH [@haario2001], Adaptive Differential Evolution MCMC [@terbraak2008], Hamiltonian Monte Carlo [@neal2011], No-U-Turn Sampler (NUTS) [@hoffman2014], and Gibbs, with improved Gelman-Rubin convergence diagnostics [@gelmanrubin1992; @vehtari2021].
53
+
-**Bayesian inference**: Eight MCMC samplers, including Random Walk Metropolis-Hastings, Adaptive RWMH [@haario2001], Differential Evolution MCMC (DE-MCz and DE-MCzs) [@terbraak2008], Hamiltonian Monte Carlo [@neal2011], No-U-Turn Sampler (NUTS) [@hoffman2014], Gibbs, and Self-Normalizing Importance Sampling (SNIS), with improved Gelman-Rubin convergence diagnostics [@gelmanrubin1992; @vehtari2021].
54
54
-**Uncertainty quantification**: Bootstrap resampling methods [@efron1993] for confidence intervals on design estimates, a requirement in dam and levee safety risk assessments.
-**Adaptive numerical integration**: Gauss-Kronrod quadrature [@piessens1983] and VEGAS adaptive Monte Carlo integration [@lepage1978] for efficiently evaluating complex risk integrals involving multiple system components and failure modes, a core computation in quantitative risk assessment.
@@ -79,9 +79,11 @@ These applications support risk-informed decisions for thousands of dams and lev
79
79
80
80
# Software Design
81
81
82
-
Three design decisions shape the library. First, all univariate distributions inherit from a common base class with pluggable parameter estimation (L-moments, maximum likelihood, method of moments), allowing analysts to swap candidate distributions without changing workflow code, which is critical during frequency analysis model comparison. Second, the library has zero external runtime dependencies, relying only on .NET Base Class Libraries. This eliminates NuGet dependency conflicts in large government applications and simplifies deployment in regulated environments. Third, multi-targeting (.NET 8.0, 9.0, 10.0, and .NET Framework 4.8.1) ensures compatibility with both modern and legacy enterprise systems. Because .NET 8 and later are cross-platform, Numerics runs on Windows, Linux, and macOS, supporting both desktop engineering tools and cloud-hosted web applications. Python users can also access Numerics through PythonNet, making the library's performance and capabilities available to the broader scientific and academic community.
82
+
The library is organized around abstract base classes that define consistent interfaces for each computational domain. `UnivariateDistributionBase` provides PDF, CDF, inverse CDF, log-likelihood evaluation, and random variate generation for all 43 univariate distributions. Parameter estimation is decoupled from distribution classes through segregated interfaces (`IMaximumLikelihoodEstimation`, `ILinearMomentEstimation`, `IMomentEstimation`), so each distribution declares which estimation methods it supports and analysts can swap candidate distributions without changing workflow code. `Optimizer` provides a common minimization interface shared by all local and global optimization algorithms, with built-in function evaluation tracking, convergence testing, and numerical Hessian computation. `MCMCSampler` manages chain initialization, parallel execution via `Parallel.For`, thinning, and posterior output collection for all eight samplers, while convergence diagnostics are handled by a separate `MCMCDiagnostics` utility class. Bivariate copulas follow the same pattern through `BivariateCopula` and its `ArchimedeanCopula` specialization.
83
83
84
-
Continuous integration via GitHub Actions runs the full test suite (over 1,000 tests validated against published references [@press2007; @rao2000; @england2018]) on every pull request.
84
+
The library has zero external runtime dependencies, relying only on .NET Base Class Libraries, which eliminates NuGet dependency conflicts in large government applications and simplifies deployment in regulated environments. Multi-targeting (.NET 8.0, 9.0, 10.0, and .NET Framework 4.8.1) ensures compatibility with both modern and legacy enterprise systems. Because .NET 8 and later are cross-platform, Numerics runs on Windows, Linux, and macOS, supporting both desktop engineering tools and cloud-hosted web applications. Python users can also access Numerics through PythonNet, making the library's performance and capabilities available to the broader scientific and academic community.
85
+
86
+
Continuous integration via GitHub Actions runs the test suite (over 1,000 tests validated against published references [@press2007; @rao2000; @england2018]) on every pull request, preventing regressions in numerical accuracy.
0 commit comments