# `Monty.Frameworks.Models.EvidenceMatching.EvidenceSlopeTracker.HypothesesSelection`
[🔗](https://github.com/d-led/ex.tbp.monty/blob/v0.1.0/packages/ex_tbp_monty_core/lib/monty/frameworks/models/evidence_matching/evidence_slope_tracker/hypotheses_selection.ex#L1)

Which hypotheses a slope threshold keeps, as a mask and as indices.

Mirrors `evidence_slope_tracker.py::HypothesesSelection`. The mask is the
thing that was decided; the two index lists are what a caller acts on, and
keeping them here means "retained" and "removed" cannot drift apart.

# `t`

```elixir
@type t() ::
  %Monty.Frameworks.Models.EvidenceMatching.EvidenceSlopeTracker.HypothesesSelection{
    mask: [boolean()]
  }
```

# `count`

```elixir
@spec count(t()) :: non_neg_integer()
```

How many hypotheses the selection is about.

# `ids_to_remove`

```elixir
@spec ids_to_remove(t()) :: [non_neg_integer()]
```

The indices of the hypotheses to remove, in order.

# `ids_to_retain`

```elixir
@spec ids_to_retain(t()) :: [non_neg_integer()]
```

The indices of the hypotheses to keep, in order.

# `new`

```elixir
@spec new([boolean()]) :: t()
```

A selection from a mask, `true` meaning the hypothesis is kept.

---

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