def compare_cd.feas

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

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

114# 0 mutual, 1 a dominates b, 2 b dominates a.
115# Feasible (cv ≤ 0) beats infeasible. Both feasible → Pareto,
116# including unequal objective lengths (mutual non-domination).
117def compare_cd.feas(
118  +fa: List<&2, F32>,
119  +fb: List<&2, F32>,
120  +cva: F32,
121  +cvb: F32,
122  a_feas: Bool,
123  b_feas: Bool
124) -> Nat:
125  match a_feas b_feas:
126    case True{} True{}:
127      compare_pareto(fa, fb)
128    case True{} False{}:
129      1n
130    case False{} True{}:
131      2n
132    case False{} False{}:
133      compare_cd.infeas(cva, cvb, F32.is_lt(cva, cvb), F32.is_lt(cvb, cva))

Uses (7)

Used by (1)