← back

complexity_ladder

A single shader that ramps *several* realistic dimensions together as n grows, modelling how a real shader's compile cost behaves going from simple to highly complex — as opposed to the single-axis stressors, which isolate one pass. Each step adds: a branchy helper (control flow / SSA + phi), a generic call (sema + specialization), a small bounded inner loop, resource reads, and a dynamic-dispatch site. Helpers are chained in bounded-depth groups (call graph depth) so doubling n roughly doubles total work across all of front-end, IR opt, and codegen at once. Sweep this to get the holistic complexity->compile-time curve and a floor+slope fit. Scaling reference (not a null): several axes co-scale, so the sweep's linear line means 'cost tracks code size' — a user-meaningful reference. Standing super-linearity here is expected; the actionable signal is its release-over-release movement.

bucket: realistic_scaling  ·  compile mode: target  ·  flags: -target spirv -emit-spirv-directly  ·  default N: 160

Phase composition across releases

Full sub-counter decomposition of compileInner — named leaf timers plus (self) residuals (a parent's time not covered by a named child, e.g. the autodiff transform in linkAndOptimizeIR (self)). Topmost band traces compileInner; hover a band for its phase.

Across releases

complexity_ladder — Across releases (median ms) complexity_ladder 0.73× 0.0 209 418 25.12 25.13 25.14 25.15 25.16 25.17 25.18 25.19 25.20 25.21 25.22 25.23 25.24 26.1 26.2 26.3 26.4 26.5 26.7 26.8 26.9 26.10 26.11 26.12 26.13 26.13.1 26.14 26.14.1 26.16 26.16.1 complexity_ladder — parseTranslationUnit complexity_ladder — SemanticChecking complexity_ladder — generateIR complexity_ladder — frontEndExecute (self) complexity_ladder — specializeModule complexity_ladder — simplifyIR complexity_ladder — linkIR complexity_ladder — unrollLoopsInModule complexity_ladder — legalizeResourceTypes complexity_ladder — legalizeExistentialTypeLayout complexity_ladder — performMandatoryEarlyInlining complexity_ladder — performForceInlining complexity_ladder — linkAndOptimizeIR (self) complexity_ladder — generateOutput (self) complexity_ladder — compileInner (self) phase buckets parseTranslationUnit SemanticChecking generateIR frontEndExecute (self) specializeModule simplifyIR linkIR unrollLoopsInModule legalizeResourceTypes legalizeExistentialTypeLayout performMandatoryEarlyInlining performForceInlining linkAndOptimizeIR (self) emitEntryPointsSourceFromIR generateOutput (self) compileInner (self)

Daily tip-of-tree (last 30 days)

complexity_ladder — Daily tip-of-tree (last 30 days) (median ms) complexity_ladder 0.92× 0.0 104 208 07-30 07-31 08-01 08-02 08-03 08-04 08-05 08-06 08-07 08-08 08-09 08-10 08-11 08-12 08-13 08-14 08-15 08-15 08-18 08-19 08-20 08-21 08-22 08-23 08-24 08-25 08-26 08-27 08-28 08-29 complexity_ladder — parseTranslationUnit complexity_ladder — SemanticChecking complexity_ladder — generateIR complexity_ladder — frontEndExecute (self) complexity_ladder — specializeModule complexity_ladder — simplifyIR complexity_ladder — linkIR complexity_ladder — unrollLoopsInModule complexity_ladder — legalizeResourceTypes complexity_ladder — legalizeExistentialTypeLayout complexity_ladder — performMandatoryEarlyInlining complexity_ladder — performForceInlining complexity_ladder — linkAndOptimizeIR (self) complexity_ladder — generateOutput (self) complexity_ladder — compileInner (self) phase buckets parseTranslationUnit SemanticChecking generateIR frontEndExecute (self) specializeModule simplifyIR linkIR unrollLoopsInModule legalizeResourceTypes legalizeExistentialTypeLayout performMandatoryEarlyInlining performForceInlining linkAndOptimizeIR (self) emitEntryPointsSourceFromIR generateOutput (self) compileInner (self)

Daily window progress

Overall compileInner: 191.3 → 175.8 ms  -8.1%  (2026-07-30 7c58a326b → 2026-08-29 28c755b09)

Contributors — the mutually-exclusive phase buckets (named leaves + (self) residuals) that tile compileInner; the pp column sums to the overall %. Buckets moving the total by ≥0.2% are listed, the rest fold into the remainder row. Below them, every other reported counter (nested/overlapping, e.g. serialized-module reads — own change only):

counterΔown %of total
linkAndOptimizeIR (self)-5.4 ms-29.8%-2.8pp
generateOutput (self)-3.0 ms-4.6%-1.6pp
legalizeExistentialTypeLayout-2.8 ms-65.9%-1.4pp
legalizeResourceTypes-2.7 ms-68.8%-1.4pp
generateIR-0.6 ms-4.0%-0.3pp
simplifyIR-0.5 ms-2.5%-0.3pp
(remaining 9 buckets)-0.5 ms-0.3pp
loadBuiltinModule-5.6 ms-5.2%
readSerializedModuleIR-4.0 ms-7.4%

Largest day steps (≥5% of the previous day, both directions; bisect with git log <c0>..<c1> -- source/):

boundary% vs prev daycommitstop buckets (own %)
2026-08-04 → 2026-08-05-7.1%0864e60e6..ff45b15edlinkAndOptimizeIR (self) -29%, legalizeResourceTypes -68%, legalizeExistentialTypeLayout -63%

Reproduce

Run from the slang repo root. This regenerates the sources below and re-runs this workload's measurement; --gen-dir keeps the generated files (they go to a tempdir and are deleted otherwise).

python3 tools/compile-perf/bench.py --slangc /path/to/slangc --only complexity_ladder --label repro --gen-dir repro-complexity_ladder

Compiled Slang source

the complete compiled source (N = 160), shown in full

complexity_ladder.slang (1513 lines)

// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
RWStructuredBuffer<float> outBuf;
StructuredBuffer<float> inBuf;

interface IOp { float apply(float x); }
struct OpAdd : IOp { float apply(float x) { return x + 1.0; } }
struct OpMul : IOp { float apply(float x) { return x * 1.5 + 0.25; } }
struct OpSq  : IOp { float apply(float x) { return x * x - 0.5; } }

T gpoly<T : IArithmetic>(T a, T b) { return a * a + b * a + a; }

float dispatch(int id, float x)
{
    IOp o;
    switch (id % 3)
    {
    case 0: o = OpAdd(); break;
    case 1: o = OpMul(); break;
    default: o = OpSq(); break;
    }
    return o.apply(x);
}

float h_0(float x)
{
    float t = x;
    if (t > 0.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_1(float x)
{
    float t = h_0(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_2(float x)
{
    float t = h_1(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_3(float x)
{
    float t = h_2(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_4(float x)
{
    float t = h_3(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_5(float x)
{
    float t = h_4(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_6(float x)
{
    float t = h_5(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_7(float x)
{
    float t = h_6(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_8(float x)
{
    float t = x;
    if (t > 8.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_9(float x)
{
    float t = h_8(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_10(float x)
{
    float t = h_9(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_11(float x)
{
    float t = h_10(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_12(float x)
{
    float t = h_11(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_13(float x)
{
    float t = h_12(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_14(float x)
{
    float t = h_13(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_15(float x)
{
    float t = h_14(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_16(float x)
{
    float t = x;
    if (t > 5.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_17(float x)
{
    float t = h_16(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_18(float x)
{
    float t = h_17(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_19(float x)
{
    float t = h_18(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_20(float x)
{
    float t = h_19(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_21(float x)
{
    float t = h_20(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_22(float x)
{
    float t = h_21(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_23(float x)
{
    float t = h_22(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_24(float x)
{
    float t = x;
    if (t > 2.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_25(float x)
{
    float t = h_24(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_26(float x)
{
    float t = h_25(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_27(float x)
{
    float t = h_26(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_28(float x)
{
    float t = h_27(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_29(float x)
{
    float t = h_28(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_30(float x)
{
    float t = h_29(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_31(float x)
{
    float t = h_30(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_32(float x)
{
    float t = x;
    if (t > 10.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_33(float x)
{
    float t = h_32(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_34(float x)
{
    float t = h_33(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_35(float x)
{
    float t = h_34(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_36(float x)
{
    float t = h_35(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_37(float x)
{
    float t = h_36(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_38(float x)
{
    float t = h_37(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_39(float x)
{
    float t = h_38(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_40(float x)
{
    float t = x;
    if (t > 7.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_41(float x)
{
    float t = h_40(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_42(float x)
{
    float t = h_41(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_43(float x)
{
    float t = h_42(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_44(float x)
{
    float t = h_43(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_45(float x)
{
    float t = h_44(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_46(float x)
{
    float t = h_45(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_47(float x)
{
    float t = h_46(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_48(float x)
{
    float t = x;
    if (t > 4.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_49(float x)
{
    float t = h_48(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_50(float x)
{
    float t = h_49(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_51(float x)
{
    float t = h_50(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_52(float x)
{
    float t = h_51(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_53(float x)
{
    float t = h_52(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_54(float x)
{
    float t = h_53(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_55(float x)
{
    float t = h_54(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_56(float x)
{
    float t = x;
    if (t > 1.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_57(float x)
{
    float t = h_56(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_58(float x)
{
    float t = h_57(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_59(float x)
{
    float t = h_58(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_60(float x)
{
    float t = h_59(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_61(float x)
{
    float t = h_60(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_62(float x)
{
    float t = h_61(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_63(float x)
{
    float t = h_62(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_64(float x)
{
    float t = x;
    if (t > 9.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_65(float x)
{
    float t = h_64(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_66(float x)
{
    float t = h_65(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_67(float x)
{
    float t = h_66(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_68(float x)
{
    float t = h_67(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_69(float x)
{
    float t = h_68(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_70(float x)
{
    float t = h_69(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_71(float x)
{
    float t = h_70(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_72(float x)
{
    float t = x;
    if (t > 6.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_73(float x)
{
    float t = h_72(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_74(float x)
{
    float t = h_73(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_75(float x)
{
    float t = h_74(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_76(float x)
{
    float t = h_75(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_77(float x)
{
    float t = h_76(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_78(float x)
{
    float t = h_77(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_79(float x)
{
    float t = h_78(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_80(float x)
{
    float t = x;
    if (t > 3.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_81(float x)
{
    float t = h_80(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_82(float x)
{
    float t = h_81(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_83(float x)
{
    float t = h_82(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_84(float x)
{
    float t = h_83(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_85(float x)
{
    float t = h_84(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_86(float x)
{
    float t = h_85(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_87(float x)
{
    float t = h_86(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_88(float x)
{
    float t = x;
    if (t > 0.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_89(float x)
{
    float t = h_88(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_90(float x)
{
    float t = h_89(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_91(float x)
{
    float t = h_90(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_92(float x)
{
    float t = h_91(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_93(float x)
{
    float t = h_92(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_94(float x)
{
    float t = h_93(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_95(float x)
{
    float t = h_94(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_96(float x)
{
    float t = x;
    if (t > 8.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_97(float x)
{
    float t = h_96(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_98(float x)
{
    float t = h_97(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_99(float x)
{
    float t = h_98(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_100(float x)
{
    float t = h_99(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_101(float x)
{
    float t = h_100(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_102(float x)
{
    float t = h_101(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_103(float x)
{
    float t = h_102(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_104(float x)
{
    float t = x;
    if (t > 5.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_105(float x)
{
    float t = h_104(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_106(float x)
{
    float t = h_105(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_107(float x)
{
    float t = h_106(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_108(float x)
{
    float t = h_107(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_109(float x)
{
    float t = h_108(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_110(float x)
{
    float t = h_109(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_111(float x)
{
    float t = h_110(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_112(float x)
{
    float t = x;
    if (t > 2.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_113(float x)
{
    float t = h_112(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_114(float x)
{
    float t = h_113(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_115(float x)
{
    float t = h_114(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_116(float x)
{
    float t = h_115(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_117(float x)
{
    float t = h_116(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_118(float x)
{
    float t = h_117(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_119(float x)
{
    float t = h_118(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_120(float x)
{
    float t = x;
    if (t > 10.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_121(float x)
{
    float t = h_120(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_122(float x)
{
    float t = h_121(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_123(float x)
{
    float t = h_122(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_124(float x)
{
    float t = h_123(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_125(float x)
{
    float t = h_124(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_126(float x)
{
    float t = h_125(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_127(float x)
{
    float t = h_126(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_128(float x)
{
    float t = x;
    if (t > 7.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_129(float x)
{
    float t = h_128(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_130(float x)
{
    float t = h_129(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_131(float x)
{
    float t = h_130(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_132(float x)
{
    float t = h_131(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_133(float x)
{
    float t = h_132(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_134(float x)
{
    float t = h_133(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_135(float x)
{
    float t = h_134(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_136(float x)
{
    float t = x;
    if (t > 4.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_137(float x)
{
    float t = h_136(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_138(float x)
{
    float t = h_137(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_139(float x)
{
    float t = h_138(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_140(float x)
{
    float t = h_139(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_141(float x)
{
    float t = h_140(x);
    if (t > 9.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_142(float x)
{
    float t = h_141(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_143(float x)
{
    float t = h_142(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_144(float x)
{
    float t = x;
    if (t > 1.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_145(float x)
{
    float t = h_144(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_146(float x)
{
    float t = h_145(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_147(float x)
{
    float t = h_146(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_148(float x)
{
    float t = h_147(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_149(float x)
{
    float t = h_148(x);
    if (t > 6.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_150(float x)
{
    float t = h_149(x);
    if (t > 7.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_151(float x)
{
    float t = h_150(x);
    if (t > 8.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_152(float x)
{
    float t = x;
    if (t > 9.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_153(float x)
{
    float t = h_152(x);
    if (t > 10.0) t = t * 1.01 + sin(t + 6.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_154(float x)
{
    float t = h_153(x);
    if (t > 0.0) t = t * 1.01 + sin(t + 0.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}
float h_155(float x)
{
    float t = h_154(x);
    if (t > 1.0) t = t * 1.01 + sin(t + 1.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 0.0);
    return t;
}
float h_156(float x)
{
    float t = h_155(x);
    if (t > 2.0) t = t * 1.01 + sin(t + 2.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 1.0);
    return t;
}
float h_157(float x)
{
    float t = h_156(x);
    if (t > 3.0) t = t * 1.01 + sin(t + 3.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 2.0);
    return t;
}
float h_158(float x)
{
    float t = h_157(x);
    if (t > 4.0) t = t * 1.01 + sin(t + 4.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 3.0);
    return t;
}
float h_159(float x)
{
    float t = h_158(x);
    if (t > 5.0) t = t * 1.01 + sin(t + 5.0);
    else t = t - cos(t * 0.5) * 0.25;
    [MaxIters(4)] for (int k = 0; k < (int(t) & 3) + 1; ++k)
        t = t * 0.999 + gpoly<float>(t, 4.0);
    return t;
}

[shader("compute")]
[numthreads(64,1,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
    int idx = int(tid.x);
    float acc = inBuf[idx];
    acc += h_7(acc + float(0));
    acc += dispatch(idx + 0, acc);
    acc += h_15(acc + float(1));
    acc += dispatch(idx + 1, acc);
    acc += h_23(acc + float(2));
    acc += dispatch(idx + 2, acc);
    acc += h_31(acc + float(3));
    acc += dispatch(idx + 3, acc);
    acc += h_39(acc + float(4));
    acc += dispatch(idx + 4, acc);
    acc += h_47(acc + float(5));
    acc += dispatch(idx + 5, acc);
    acc += h_55(acc + float(6));
    acc += dispatch(idx + 6, acc);
    acc += h_63(acc + float(7));
    acc += dispatch(idx + 7, acc);
    acc += h_71(acc + float(8));
    acc += dispatch(idx + 8, acc);
    acc += h_79(acc + float(9));
    acc += dispatch(idx + 9, acc);
    acc += h_87(acc + float(10));
    acc += dispatch(idx + 10, acc);
    acc += h_95(acc + float(11));
    acc += dispatch(idx + 11, acc);
    acc += h_103(acc + float(12));
    acc += dispatch(idx + 12, acc);
    acc += h_111(acc + float(13));
    acc += dispatch(idx + 13, acc);
    acc += h_119(acc + float(14));
    acc += dispatch(idx + 14, acc);
    acc += h_127(acc + float(15));
    acc += dispatch(idx + 15, acc);
    acc += h_135(acc + float(16));
    acc += dispatch(idx + 16, acc);
    acc += h_143(acc + float(17));
    acc += dispatch(idx + 17, acc);
    acc += h_151(acc + float(18));
    acc += dispatch(idx + 18, acc);
    acc += h_159(acc + float(19));
    acc += dispatch(idx + 19, acc);
    acc += float(gpoly<int>(idx, idx + 1));
    outBuf[idx] = acc;
}