def is_dominated

unified-nsga-iii@0.2.2.0 · non_dominated_sort.bend:166

import unified-nsga-iii@0.2.2.0/non_dominated_sort.bend as NonDominatedSort
import Base

166# Sequential OR so a first hit can skip the rest. Candidate-level
167# parallelism lives in split_walk (coarse mid-split). Walks `all`
168# rows directly — no List.get into the population.
169def is_dominated(+all: List<&2, Row>, +i: Nat, +fi: List<&2, F32>, +cvi: F32) -> Bool:
170  match all:
171    case Nil{}:
172      False{}
173    case +r <> rs:
174      match r:
175        case Row{+j, +fj, +cvj}:
176          Bool.or(
177            Bool.and(Bool.not(Nat.is_eq(i, j)), dominates_cd(fj, cvj, fi, cvi)),
178            is_dominated(rs, i, fi, cvi)
179          )

Uses (10)

Used by (1)