# `Sidereon.Reliability`
[🔗](https://github.com/neilberkman/sidereon-ex/blob/main/lib/sidereon/reliability.ex#L1)

Classical Baarda/Teunissen reliability diagnostics.

This module exposes pre-data reliability design and ARAIM reliability reports
from the Rust core. Inputs are range design rows or ARAIM geometry plus an
integrity support model. Outputs include redundancy numbers, minimal
detectable bias, external effects, and aggregate degrees of freedom.

# `reliability_error`

```elixir
@type reliability_error() ::
  :invalid_probability
  | :invalid_weight
  | :invalid_reliability_parameter
  | :invalid_design
  | :singular_geometry
  | :insufficient_geometry
  | :invalid_ism
  | :invalid_allocation
  | :numerical_failure
  | term()
```

# `reliability_araim`

```elixir
@spec reliability_araim(
  Sidereon.GNSS.ARAIM.Geometry.t(),
  Sidereon.GNSS.ARAIM.Ism.t(),
  Sidereon.Reliability.ReliabilityOptions.t() | keyword()
) ::
  {:ok, Sidereon.Reliability.ReliabilityReport.t()}
  | {:error, reliability_error()}
```

Compute reliability for ARAIM geometry using the supplied ISM range model.

# `reliability_design`

```elixir
@spec reliability_design(
  [Sidereon.Reliability.RangeReliabilityRow.t()],
  Sidereon.Reliability.ReliabilityOptions.t() | keyword()
) ::
  {:ok, Sidereon.Reliability.ReliabilityReport.t()}
  | {:error, reliability_error()}
```

Compute reliability from caller-supplied range design rows.

# `wtest_noncentrality`

```elixir
@spec wtest_noncentrality(number(), number()) ::
  {:ok, %{delta0: float(), lambda0: float()}} | {:error, reliability_error()}
```

Compute Baarda's W-test noncentrality from false-alarm probability and power.

Returns `{:ok, %{delta0: delta0, lambda0: lambda0}}`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
