Skip to content

Releases: cameronbracken/hecfda

hecfda 0.2.0

Choose a tag to compare

@cameronbracken cameronbracken released this 05 Sep 11:36
v0.2.0
75cf54e

HEC-FDA 2.1 parity release.

Highlights:

  • Tracks HEC-FDA 2.1.0 and its upstream source baseline.
  • Extends the shared C++ engine and keeps the R and Python interfaces aligned.
  • Preserves Fail and Non_Fail identities, Total aggregation, one-sided categories, risk outputs, and future UNASSIGNED handling.
  • Adds cross-platform source, wheel, package, documentation, and oracle checks.

This GitHub source release does not publish hecfdar to CRAN or hecfdapy to PyPI. See CHANGELOG.md for the full change record.

hecfda 0.1.1

Choose a tag to compare

@cameronbracken cameronbracken released this 14 Jul 06:10
v0.1.1
c9fc1be

[0.1.1] - 2026-07-14

Changed

  • Relicensed from 0BSD to MIT, matching upstream HEC-FDA. hecfdar uses the CRAN
    MIT + file LICENSE form; the root and hecfdapy LICENSE files carry the full MIT text.
  • ead_simulation() now rejects supplying both frequency input paths (flow_frequency +
    flow_stage and frequency_stage) with a clear error in both packages; the behavior was
    previously undefined.

Added

  • rv-managed R development library: rproject.toml + rv.lock pin the dev packages,
    .Rprofile activates rv/library/, and the R-touching pixi tasks (test-r, build-r,
    docs) run rv sync first. R itself is installed with rig (see the README).
  • Install-only targets for package users: make install-r / install-py / install
    and the matching pixi tasks build and install without running tests.

Fixed

  • Examples index described example 03 as spanning impact areas (that is example 04).
  • The docs deploy workflow now also triggers on fixtures/** and tools/** changes.

hecfda 0.1.0

Choose a tag to compare

@cameronbracken cameronbracken released this 13 Jul 23:05
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.