Skip to content

Releases: RXY712200/ProbSpan

Release list

ProbSpan v1.0.0

Choose a tag to compare

@RXY712200 RXY712200 released this 20 Oct 02:50

ProbSpan v1.0.0

Released October 20, 2026. This is the first stable C11 release of ProbSpan, a small deterministic core for probability uncertainty and decision analysis.

ProbSpan follows a focused pipeline: probability → uncertainty → historical evidence → odds/payoff → expected-value intervals → classifications → model relationships. Subjective and historical models remain independent; the library does not choose a final probability or make decisions on the caller's behalf.

Highlights

  • Subjective uncertainty estimation: preserves raw 0–100% input, applies the frozen mathematical clamp, and computes the model-defined logit-width interval. This subjective interval is not a statistical confidence interval.
  • Historical evidence: Jeffreys Beta(½,½) posterior, posterior mean, central 95% credible interval, and an explicit readiness gate. Historical analysis distinguishes absent, insufficient, and valid evidence.
  • Two-sided decision analysis: event/complement expected-value centers and intervals, correctly reversed complement bounds, distinct break-even probabilities, exact epsilon-based interval states, and odds-combination classifications.
  • Robust margins and posterior decision probabilities: subjective robust-margin S with explicit availability, plus the historical posterior probability that each side's expected value is positive when history is valid.
  • Independent model relations: positive/negative agreement, conflict, uncertainty, or historical unavailability. No subjective/historical probability fusion is performed.
  • Exact odds conversion: full-string ASCII decimal parsing with exact decimal-to-IEEE-754-binary64 round-to-nearest, ties-to-even conversion, independent of locale and caller rounding mode.
  • Pure information provenance: deterministic, sticky evidence-exposure and subjective-independence compromise transitions. Previously exposed evidence controls later compromise; first exposure does not retroactively compromise a change in the same operation. Raw-input identity is preserved, and malformed provenance states are rejected.
  • Versioned analysis composition: a complete analysis value retains inputs, availability, derived outputs, model relationships, and independent subjective-model, historical-model, gate, and odds-analysis versions. Callers own storage and must preserve meaningful fields rather than dumping raw C struct bytes or silently recomputing historical results with a later model.

Build and integration

ProbSpan v1.0.0 is static-only, with 13 public functions in one installed C header. Product version is 1.0.0, ABI version is 1, and the independent model/gate/analysis versions remain 1.

CMake supports build, test, installation, and an exported package target:

find_package(ProbSpan 1.0 CONFIG REQUIRED)
target_link_libraries(your_app PRIVATE ProbSpan::probspan)

The source includes complete decision-analysis and provenance examples, committed reference fixtures usable in C-only builds, and an installed external-consumer test. See the installation guide and public API documentation.

Verification

The successful release CI run verifies the exact release commit on Windows/MSVC, Linux/GCC, Linux/Clang, macOS/AppleClang, and Linux/GCC with AddressSanitizer and UndefinedBehaviorSanitizer. The matrix includes installation and external package-consumer checks.

Regression coverage includes frozen Python behavioral references, exact decimal bit comparisons, decision and provenance parity, composition equality, API safety, corrected independent high-precision Beta references, and large-count stress through INT64_MAX.

This initial source release uses GitHub's automatically generated ZIP and tar.gz archives. No separately built platform binaries are attached.

Numerical assumptions and limitations

The full numerical contract requires IEEE-754 binary64 double, round-to-nearest ties-to-even, gradual underflow, and the documented ordinary floating-point environment. Unsafe fast-math, flush-to-zero, floating-point traps, and non-default rounding modes are outside the full-library contract. The decimal parser's stronger rounding-mode-independent guarantee does not extend to all libm calculations.

Exact input conversion and discrete policy behavior are distinguished from tolerance-based elementary and Beta results. Universal bitwise identity across all mathematical functions, compilers, and platforms is not promised. Extremely concentrated posteriors are limited by binary64 quantile resolution: adjacent representable values can span substantial probability mass.

Where the frozen SciPy implementation is demonstrably inconsistent at extreme Beta parameters, the explicitly authorized numerical policy uses separate independent high-precision references, including mpmath 1.3.0 at 80 digits with a 60/80-digit historical-reference cross-check. This preserves the Jeffreys model, formulas, gate, and version meanings rather than introducing a different statistical model. See the numerical contract.

The runtime uses standard C/libm without Python, SciPy, or mpmath dependencies. It performs no heap allocation, I/O, network access, locale mutation, or management of mutable global state. v1.0.0 includes no persistence or serialization engine, GUI, database, application workflow, generic statistics/distribution catalog, or probability fusion. Callers own lifecycle, clocks, presentation, and storage.

Origin, licensing, and project records

ProbSpan is extracted/reimplemented from the same author's Probability Calibration Tool, with the original Python model frozen at a581f84ccd217ed45789b3566347255f56ffbeac. This is a faithful behavioral extraction subject to the documented numerical exception, not a redesign of the model or a guarantee of predictive accuracy.

MIT License. Copyright (c) 2026 RXY712200. See LICENSE and CHANGELOG.