Skip to content

Releases: EpiAware/EpiAwareADTools.jl

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 24 Aug 14:45
566ba15

EpiAwareADTools v0.2.3

Diff since v0.2.2

  • Made a truncated Student-t differentiable.
    truncated normalises eagerly, so building a truncated TDist calls
    logcdf, which routes to SpecialFunctions.beta_inc and has no method
    for a Dual. Every gradient through a truncated t therefore failed
    outright rather than returning a wrong number. TDist and its
    location-scale wrapper now evaluate through the AD-safe hooks on all
    seven backends. Building a truncated t directly from tracked parameters
    stays ForwardDiff-only, which is how Gamma and Beta already behave,
    since that path needs Dual methods added to Distributions and no
    other backend extension adds them.
  • Relaxed the AD-safe evaluation hooks so they no longer require a
    Distributions.UnivariateDistribution subtype. cdf_ad_safe,
    logcdf_ad_safe, ccdf_ad_safe, logccdf_ad_safe and pdf_ad_safe
    previously raised a MethodError on a leaf that implements the
    univariate interface without inheriting from it, which blocked
    duck-typed leaves inside racing-hazard (compete) nodes and duck-typed
    components in a convolution's quadrature path. primal_distribution was
    relaxed with it, and a type carrying no params method now raises an
    ArgumentError naming the type rather than a MethodError.
  • Added the missing Extensions section of the documentation site.
    The navigation already declared one page per package extension, but none
    of the pages had been written, so the whole group was dropped from the
    build and readers saw no Extensions section at all.

Merged pull requests:

  • docs: write the seven package extension pages (#84) (@seabbs-bot)
  • fix: accept duck-typed leaves in the AD-safe hooks and primal_distribution (#85) (@seabbs-bot)
  • fix: make a truncated Student-t differentiable (#80) (#86) (@seabbs-bot)
  • docs: land the extension-page corrections that missed the #84 merge (#89) (@seabbs-bot)
  • chore: auto-increment version to 0.2.3 (#90) (@github-actions[bot])
  • ci(deps): bump the github-actions group with 12 updates (#91) (@dependabot[bot])
  • fix: run the AS 187 shape-partial series to convergence at large shape (#93) (@seabbs-bot)
  • docs: update shared ecosystem badge to new EpiAware design system icon (#94) (@seabbs-bot)
  • ci(deps): bump the github-actions group with 12 updates (#98) (@dependabot[bot])

Closed issues:

  • Benchmarks and AD benchmarks (#28)
  • Epic: AD, numerics and differentiation tooling (#35)
  • docs: wire up the split AD-comparison benchmark page after kit#305 (#49)
  • _grad_p_a_series loses accuracy at extreme shapes (k ≳ 1e5) (#67)
  • Write docs pages for the seven extensions (#68)
  • truncated(TDist) is not ForwardDiff-differentiable: truncated eagerly calls logcdf, which routes to beta_inc (#80)
  • logccdf_ad_safe is bounded on UnivariateDistribution, blocking duck-typed leaves in compete (#81)
  • cdf_ad_safe/pdf_ad_safe/primal_distribution have no duck-typed fallback (#83)

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 17 Aug 20:25
cb7ed63

EpiAwareADTools v0.2.2

Diff since v0.2.1

  • Fixed a NaN gradient (every AD backend: ForwardDiff, ReverseDiff,
    Enzyme forward/reverse, Mooncake forward/reverse) from cdf_ad_safe,
    logcdf_ad_safe, ccdf_ad_safe, logccdf_ad_safe, and pdf_ad_safe on
    a LogNormal evaluated below its support (x <= 0), and from
    logcdf_ad_safe on a Weibull evaluated below its support. The primal
    value was already correct (-Inf/0/1 as appropriate); only the
    gradient broke, because the stock evaluator still routes the fixed
    boundary value through an expression carrying the Dual shape/scale
    parameters.
  • No public API changes.

Merged pull requests:

  • ci: sync managed infra to the EpiAware standard (#76) (@github-actions[bot])
  • chore(deps): update Runic requirement from =1.7.0 to =1.7.0, 1.8 in /test/formatter in the julia-isolated group across 1 directory (#77) (@dependabot[bot])
  • fix: NaN gradient for LogNormal/Weibull hooks below their support (#78) (@seabbs-bot)

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 14 Aug 00:23
63548e1

EpiAwareADTools v0.2.1

Diff since v0.2.0

  • Switched EpiAwarePackageTools from a git [sources] pin to a registered [compat] bound ("0.3, 0.4") in every environment that depends on it: the kit is now published to the General registry, and the git pin only ever worked on Julia >= 1.11.
  • Synced managed CI/tooling infrastructure to the current EpiAwarePackageTools standard (dependabot groups, template-sync workflow, AGENTS.md/CLAUDE.md, docs nav, AD-comparison benchmark page).
  • Removed the retired ad-backends.jl tutorial registration from the docs nav config; its content now lives on the AD-comparison benchmark page, and existing links to it still resolve.
  • Updated developer docs (FAQ, contributing guide) that still described the retired JuliaFormatter standard to describe Runic, and fixed a stale claim that the AD harness covers "six backends" (it's been seven since ReverseDiff (compiled) landed).

No public API changes.

Merged pull requests:

  • chore!: sync with EpiAwarePackageTools main, depend on the registered kit (#72) (@seabbs-bot)

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 19:53
c164a87

EpiAwareADTools v0.2.0

Diff since v0.1.2

This is a breaking release.

  • Fixed logccdf_ad_safe(::Gamma) returning -Inf in the far right tail, where the stock (non-differentiable) logccdf stays finite; the same issue affected SurvivalDistributions.GeneralizedGamma. A new log-space Gamma survival primitive fixes both, with AD rules across every backend.
  • Fixed _beta_cdf's continued-fraction evaluator returning NaN for widely disparate shape parameters near the boundary of x, and improved its accuracy by raising the default term count.
  • Fixed primal_distribution throwing a MethodError on Truncated and Censored distributions; it now rebuilds them recursively through the public truncated/censored constructors. This also unblocks EpiAware/CensoredDistributions.jl.
  • Added fixed_draw and ad_eltype, a reparameterisation-trick helper pair mirroring the existing primal/primal_distribution tape-strip helpers.
  • Pointed the release notes docs page at GitHub releases instead of NEWS.md.

Merged pull requests:

  • ci(deps): bump the github-actions group with 9 updates (#59) (@dependabot[bot])
  • fix: primal_distribution rebuilds Truncated/Censored via public constructors (#60) (@seabbs-bot)
  • fix: logccdf_ad_safe underflows in the Gamma far right tail (#61) (@seabbs-bot)
  • fix: rescale continued-fraction accumulators to stop beta CDF NaN (#62) (@seabbs-bot)
  • feat: reparameterisation-trick helpers (fixed_draw/ad_eltype) (#63) (@seabbs-bot)
  • docs: point the release notes page at GitHub releases (#64) (@seabbs-bot)
  • chore!: sync with EpiAwarePackageTools main and raise the Julia floor to 1.11 (#69) (@seabbs-bot)
  • ci(deps): bump the github-actions group with 11 updates (#70) (@dependabot[bot])
  • chore(deps): bump the julia-isolated group across 2 directories with 15 updates (#71) (@dependabot[bot])

Closed issues:

  • Widen the AD-safe function family to more continuous families and publish per-family coverage (#36)
  • Reparameterisation-trick helpers for differentiating through a stochastic computation (#38)
  • _beta_cdf continued fraction overflows to NaN for disparate shapes near the x boundary (#42)
  • logccdf_ad_safe loses the far right tail: log1p(-F) underflows where the stock evaluator does not (#47)
  • Point the release-notes docs page at GitHub Releases (#53)
  • primal_distribution has no method for Truncated (#57)
  • primal_distribution(::Truncated) reconstructs via stale 3-float Truncated(...) constructor (MethodError) (#58)

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 05 Aug 16:05

EpiAwareADTools v0.1.2

Diff since v0.1.1

  • Added additional special function support
  • Added support for the generalised gamma

Merged pull requests:

  • fix: close the two follow-ups left by PR #43's review (#52) (@seabbs-bot)
  • feat: own the xlogy/xlog1py Mooncake rules for the ecosystem (#54) (@seabbs-bot)

Closed issues:

  • main-branch docs build red: missing Plots dependency + SpecialFunctions issue-link 500 (#33)

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 03 Aug 13:45
1e637ab

EpiAwareADTools v0.1.1

Diff since v0.1.0

Merged pull requests:

  • chore: auto-increment version to 0.1.1 (#1) (@github-actions[bot])
  • ci(deps): bump EpiAware/.github/.github/workflows/downgrade.yml from dc919e0d1674c16d1518df07eda5ee0be09b47e2 to 6fcdcde033ec670ac3832b239427fd2ded591bbc (#2) (@dependabot[bot])
  • ci(deps): bump actions/checkout from 4 to 7 (#3) (@dependabot[bot])
  • ci(deps): bump EpiAware/.github/.github/workflows/ad.yml from dc919e0d1674c16d1518df07eda5ee0be09b47e2 to 6fcdcde033ec670ac3832b239427fd2ded591bbc (#4) (@dependabot[bot])
  • ci(deps): bump EpiAware/.github/.github/workflows/documentation.yml from dc919e0d1674c16d1518df07eda5ee0be09b47e2 to 6fcdcde033ec670ac3832b239427fd2ded591bbc (#5) (@dependabot[bot])
  • ci(deps): bump EpiAware/.github/.github/workflows/cancel-on-close.yml from 6d4e35e2515f947acbf7d2a683cbf02b341005c7 to 6fcdcde033ec670ac3832b239427fd2ded591bbc (#6) (@dependabot[bot])
  • ci(deps): bump julia-actions/cache from 2 to 3 (#11) (@dependabot[bot])
  • chore: scaffold_update to KIT 0.3.0 (fix sync workflow, refresh managed infra) (#15) (@seabbs-bot)
  • chore(deps): update DataFramesMeta requirement to 0.15.6 (#16) (@dependabot[bot])
  • chore(deps): update CairoMakie requirement to 0.15.13 (#17) (@dependabot[bot])
  • chore(deps): update DifferentiationInterfaceTest requirement from 0.9, 0.10 to 0.9, 0.10, 0.11 (#18) (@dependabot[bot])
  • chore(deps): update JET requirement from 0.9, 0.10 to 0.9, 0.10, 0.11 (#19) (@dependabot[bot])
  • chore(deps): update AlgebraOfGraphics requirement to 0.13.1 (#20) (@dependabot[bot])
  • chore(deps): update Statistics requirement to 1.11.1 (#21) (@dependabot[bot])
  • docs: point at the real org setup guide, fix stale Discussions links (#22) (@seabbs-bot)
  • docs: fix wrong docs domain in README (#23) (@seabbs-bot)
  • ci(deps): consolidate reusable-workflow SHA bumps (supersedes #7#10) (#24) (@seabbs-bot)
  • ci: sync managed infra to the EpiAware standard (#25) (@github-actions[bot])
  • ci: qualify the scaffold_update call ahead of the kit's export-to-public move (#30) (@seabbs-bot)
  • docs: trim developer-note section, dedupe install docs, regroup benchmarks nav (#32) (@seabbs-bot)
  • docs: add a Related packages section to the README (#69) (#34) (@seabbs-bot)
  • feat: AD-safe Beta CDF derivative (_beta_cdf), mirroring gamma_ad.jl (#40) (@seabbs-bot)
  • feat: add a shared streaming log-sum-exp accumulator (#41) (@seabbs-bot)
  • feat: add nondifferentiable, a user-facing differentiation opt-out (#43) (@seabbs-bot)
  • ci(deps): bump the github-actions group with 9 updates (#44) (@dependabot[bot])
  • fix(docs): repair docs build broken by a 404 linkcheck and a dangling @ref (#45) (@seabbs-bot)
  • feat: host the SurvivalDistributions GeneralizedGamma hook methods (#46) (@seabbs-bot)
  • fix: correct the GeneralizedGamma failure path and close its test gaps (#48) (@seabbs-bot)

Closed issues:

  • Remove: What does not live here (#26)
  • Installation (#27)
  • ad page DIT update failing (#29)
  • User-facing opt-out to hold a function or struct out of differentiation (#37)
  • Shared streaming log-sum-exp accumulator over an unbounded discrete support (#39)

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 00:25
3fa83a1

EpiAwareADTools v0.1.0

First release of backend AD tools for the EpiAware org

Merged pull requests:

  • chore: scaffold_update convergence onto kit main + adopt AD-backends tutorial (#12) (@seabbs-bot)