Problems.nn_obj: def of unified-nsga-iii@0.2.2.0 Import: import unified-nsga-iii@0.2.2.0/problems.bend as Problems Lines 362-370 of unified-nsga-iii@0.2.2.0/problems.bend: https://jend.leeeet.dev/read.txt?path=unified-nsga-iii@0.2.2.0/problems.bend&start_line=362&end_line=370 import Base # F32 cos(π/2) is -4.371139e-8, not 0. The DTLZ2 map multiplies that # factor by (1+g). DTLZ3's g stays large on local fronts, so an in-bound # x=1 (SBX / polynomial mutation clamp to the box) gets a strictly # negative objective. Every feasible point has f≥0, so nothing dominates # that row. It stays on the ND front and pins an ASF extreme at (1+g). # DTLZ2's (1+g) is ~1, so the same raw trig is left alone (published # fronts). Clamp only this map back to the mathematical range f≥0. def nn_obj(+v: F32) -> F32: Bool.pick(F32, F32.is_lt(v, 0.0), 0.0, v) Uses (3): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.pick https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=F32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=F32.is_lt