v2.0.2 — License Update + Bug Fixes
Highlights
Relicensed to Zero-Clause BSD (0BSD). Numerics now ships under the 0BSD license, replacing the prior BSD-3-Clause USACE-RMC license. 0BSD is a public-domain-equivalent permissive license: you may use, copy, modify, and distribute the software for any purpose without attribution. License headers have been stripped from all 378 source files; LICENSE, README, CITATION.cff, CONTRIBUTING.md, docs/index.md, codemeta.json, and the NuGet package metadata have been updated to match.
Bug fixes
StudentTCopula.DegreesOfFreedomsetter no longer throws on invalid input. It now follows the same non-throwing_parametersValidconvention used byBivariateCopula.Theta,BetaDistribution, andGammaDistribution— invalid values flipParametersValidtofalseinstead of crashing the caller. Constructors are aligned the same way.StudentTCopulaν minimum unified at2 + 1e-10acrossParameterConstraintsandSetCopulaParameters. The previous2.0 + Tools.DoubleMachineEpsilonexpression silently rounded to2.0in IEEE 754 (the ULP at 2.0 is 2⁻⁵¹, larger than ε = 2⁻⁵³), causing fitting to fail at the lower bound.
Reliability
TimeSeriesDownloadintegration tests are now resilient to upstream provider outages. Per-service availability probes (CHMN, USGS, GHCN, BOM) replace the generic online check in all 31 integration tests. A single provider being down (e.g. BOM's KiWIS / WDP backend) now skips the affected tests cleanly rather than failing the suite. BOM URLs switched fromhttp://tohttps://, and KiWIS error response bodies are now surfaced in exceptions for easier diagnosis.
Compatibility
No API breaking changes. Existing callers will see one behavioral change: new StudentTCopula(ρ, ν ≤ 2) and copula.DegreesOfFreedom = ν ≤ 2 no longer throw — they construct/assign and set ParametersValid = false instead. Any code that relied on the throw should switch to checking ParametersValid.