1layout(key) float zero = floor(0.5);
2layout(key) float one = ceil(0.5);
3
4half4 main() {
5    half4x4 m = half4x4(one);
6    half4 n = half4(zero);
7    bool4 b = bool4(true);
8
9    n.x = abs(n.x);
10    b.z = all(b.xy);
11    b.w = any(b.xyz);
12    n.xy = atan(n.xy);
13    n.zwx = atan(n.yyy, n.zzz);
14    n.xyzw = ceil(n.xyzw);
15    n.x = clamp(n.y, n.z, n.w);
16    n.y = cos(n.y);
17    n.w = cross(n.xy, n.zw);
18    n.xyz = degrees(n.xyz);
19    n.w = distance(n.xz, n.yw);
20    n.x = dot(n.yzw, n.yzw);
21    b.xyz = equal(b.xxx, b.www);
22    n.yz = exp(n.wx);
23    n.zw = exp2(n.xy);
24    n.x = faceforward(n.y, n.z, n.w);
25    n = floor(n);
26    n.yzw = fract(n.yzw);
27    b.xy = greaterThan(n.xy, n.zw);
28    b.xy = greaterThanEqual(n.xy, n.zw);
29    n = inversesqrt(n);
30    m = inverse(m);
31    n.w = length(n.zyyx);
32    b.xy = lessThan(n.xy, n.zw);
33    b.xy = lessThanEqual(n.xy, n.zw);
34    n.x = log(n.x);
35    n.y = max(n.z, n.w);
36    n.z = min(n.x, n.y);
37    n.w = mod(n.y, n.z);
38    n = normalize(n);
39    b = not(b);
40    n.x = pow(n.y, n.z);
41    n.xyz = radians(n.yzw);
42    n.xy = reflect(n.xy, n.zw);
43    n.wz = refract(n.xy, n.zw, 2);
44    n = saturate(n);
45    n.x = sign(n.x);
46    n.y = sin(n.y);
47    n.zw = smoothstep(n.xx, n.yy, n.zz);
48    n = sqrt(n);
49    n.xy = step(n.xy, n.zw);
50    n.x = tan(n.x);
51    n = unpremul(n.aaaa);
52
53    return half4(0, 1, 0, 1);
54}
55