def tnk_g

unified-nsga-iii@0.2.2.0 · problems.bend:569

import unified-nsga-iii@0.2.2.0/problems.bend as Problems
import Base
import unified-nsga-iii@0.2.2.0/util.bend as Util

569# C# TnkProblem. g0 = -(x²+y²-1-0.1 cos(16 atan(x/y))). g1 = 2((x-0.5)²+(y-0.5)²)-1.
570def tnk_g(+x: List<&2, F32>) -> List<&2, F32>:
571  +x0 = Util.get_f32(x, 0n)
572  +x1 = Util.get_f32(x, 1n)
573  +circle = F32.sub(
574    F32.sub(F32.add(F32.square(x0), F32.square(x1)), 1.0),
575    F32.mul(0.1, F32.cos(F32.mul(16.0, F32.atan(F32.div(x0, x1)))))
576  )
577  +dx = F32.sub(x0, 0.5)
578  +dy = F32.sub(x1, 0.5)
579  F32.neg(circle) <> [F32.sub(F32.mul(2.0, F32.add(F32.square(dx), F32.square(dy))), 1.0)]

Uses (11)

Used by (1)