Skip to content

hecfda 0.1.0

Choose a tag to compare

@cameronbracken cameronbracken released this 13 Jul 23:05
· 22 commits to main since this release
v0.1.0
1b3d15e

[0.1.0] - 2026-07-13

First tagged release. Everything below is new.

Added

  • Shared C++17 core: a faithful port of the numerical core of USACE-HEC HEC-FDA
    (HEC.FDA.Statistics and the pure-numeric parts of HEC.FDA.Model): 13 distribution
    families, special functions, paired-data curve algebra with the .NET Array.BinarySearch
    semantics, structure inventories and occupancy-type uncertainty, the stage-damage compute,
    the seeded Monte Carlo EAD simulation with performance metrics (AEP, assurance, levee
    fragility), scenarios, EqAD annualization, and with/without-project benefits.
  • R package hecfdar and Python package hecfdapy, thin bindings over the same
    compiled core. A bit-exact port of .NET's seeded System.Random means seeded results are
    identical across R, Python, and the upstream C# (the 100-iteration EAD benchmark
    121194.5159789352 reproduces bit-for-bit).
  • Public workflow API (same surface in both packages): stage_damage(),
    ead_simulation(), scenario_results(), alternative_ead() / eqad(),
    alternative_comparison(), plus distribution evaluators (dist_pdf/dist_cdf/
    dist_quantile/dist_sample) and rng_sequence().
  • Validation: a language-neutral oracle fixture suite consumed by C++, R, and Python
    test runners, plus a dev-only gate replaying all 820 fixture assertions against the real
    HEC-FDA C# source (820 reproduced, 0 failed).
  • Documentation site with five worked examples in both languages, a porting status page,
    and full API references (quartodoc for Python, pkgdown for R).
  • Pixi development environment with tasks mapping to the Makefile targets.