Skip to content

Commit 8ae4726

Browse files
committed
Made edits to the JOSS paper.
1 parent ae06c34 commit 8ae4726

2 files changed

Lines changed: 13 additions & 6 deletions

File tree

JOSS_TODO.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ JOSS paper format: https://joss.readthedocs.io/en/latest/paper.html (750-1,750 w
2727
| 13 | Statement of need | MET | Paper includes Statement of Need section |
2828
| 14 | State of the field / related work | MET | Paper includes State of the Field section |
2929
| 15 | Zero or documented dependencies | MET | Zero runtime dependencies for .NET 8+; polyfills only for .NET Framework 4.8.1 |
30-
| 16 | Functionality matches claims | MET | All claims verified: 43 distributions, 8 MCMC samplers, 5+ optimizers, copulas, ML, bootstrap |
30+
| 16 | Functionality matches claims | MET | All claims verified: 43 distributions, 8 MCMC samplers (RWMH, ARWMH, DEMCz, DEMCzs, HMC, NUTS, Gibbs, SNIS), 5+ optimizers, copulas, ML, bootstrap |
3131
| 17 | Software installable | REMAINING | Publish `RMC.Numerics` to nuget.org (see Step 4 below) |
3232

3333
### Paper Requirements
@@ -63,9 +63,14 @@ JOSS paper format: https://joss.readthedocs.io/en/latest/paper.html (750-1,750 w
6363

6464
| # | Comment | Status | Action |
6565
|---|---------|--------|--------|
66-
| 1 | Co-author ORCIDs (Fields, Gonzalez, Niblett, Beam) | PENDING | Follow up with co-authors separately |
66+
| 1 | Co-author ORCIDs (Fields, Gonzalez, Niblett, Beam) | DONE | All ORCIDs added to paper.md |
6767
| 2 | "Differential Evolution MCMC" → "Adaptive Differential Evolution MCMC" (line 53) | DONE | Clarifies DE-MCz vs DE-MC |
6868
| 3 | "needed for reliable calibration" → "commonly applied for Bayesian inference" (line 61) | DONE | More accurate characterization |
69+
| 4 | Gonzalez: Software Design choppy language | DONE | Rewrote section with accurate base class descriptions, removed First/Second/Third structure |
70+
| 5 | Gonzalez: Redundant "zero dependencies" in Summary | DONE | Removed from Summary, kept in Software Design where it is explained |
71+
| 6 | Gonzalez: Why is CI important? | DONE | Added "preventing regressions in numerical accuracy" to CI sentence |
72+
| 7 | Gonzalez: References not in markdown | N/A | JOSS uses Pandoc + paper.bib to render citations at build time |
73+
| 8 | MCMC sampler count (was "six", should be "eight") | DONE | Updated Summary and Statement of Need to include DEMCzs and SNIS |
6974

7075
---
7176

paper/paper.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ bibliography: paper.bib
3838

3939
# Summary
4040

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.
4242

4343
# Statement of Need
4444

@@ -50,7 +50,7 @@ Numerics fills this gap by providing domain-specific capabilities within .NET:
5050

5151
- **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.
5252
- **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].
5454
- **Uncertainty quantification**: Bootstrap resampling methods [@efron1993] for confidence intervals on design estimates, a requirement in dam and levee safety risk assessments.
5555
- **Global optimization**: Differential Evolution [@storn1997], Shuffled Complex Evolution [@duan1994], Particle Swarm Optimization [@kennedy1995], Multi-Level Single-Linkage (MLSL) [@rinnooy1987], and Nelder-Mead [@nelder1965] for calibrating complex, multi-modal objective functions.
5656
- **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
7979

8080
# Software Design
8181

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.
8383

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.
8587

8688
# Example
8789

0 commit comments

Comments
 (0)