1617a3babSopenharmony_ci#version 420
2617a3babSopenharmony_ci
3617a3babSopenharmony_ciin mat3x4 m1;
4617a3babSopenharmony_ciin mat3x4 m2;
5617a3babSopenharmony_ciin float f;
6617a3babSopenharmony_ciin vec3 v3;
7617a3babSopenharmony_ciin vec4 v4;
8617a3babSopenharmony_ci
9617a3babSopenharmony_ciout vec4 color;
10617a3babSopenharmony_ci
11617a3babSopenharmony_civoid main()
12617a3babSopenharmony_ci{
13617a3babSopenharmony_ci    mat3x4 sum34;
14617a3babSopenharmony_ci    dmat3x4 dm;
15617a3babSopenharmony_ci    vec3 sum3;
16617a3babSopenharmony_ci    vec4 sum4;
17617a3babSopenharmony_ci
18617a3babSopenharmony_ci    sum34 = m1 - m2;
19617a3babSopenharmony_ci    sum34 += m1 * f;
20617a3babSopenharmony_ci    sum34 += f * m1;
21617a3babSopenharmony_ci    sum34 /= matrixCompMult(m1, m2);
22617a3babSopenharmony_ci    sum34 += m1 / f;
23617a3babSopenharmony_ci    sum34 += f / m1;
24617a3babSopenharmony_ci    sum34 += f;
25617a3babSopenharmony_ci    sum34 -= f;
26617a3babSopenharmony_ci    dm = dmat3x4(sum34);
27617a3babSopenharmony_ci    sum34 = mat3x4(dm);
28617a3babSopenharmony_ci
29617a3babSopenharmony_ci    sum3 = v4 * m2;
30617a3babSopenharmony_ci    sum4 = m2 * v3;
31617a3babSopenharmony_ci
32617a3babSopenharmony_ci    mat4x3 m43 = transpose(sum34);
33617a3babSopenharmony_ci    mat4 m4 = m1 * m43;
34617a3babSopenharmony_ci
35617a3babSopenharmony_ci    sum4 = v4 * m4;
36617a3babSopenharmony_ci
37617a3babSopenharmony_ci    color = sum4;
38617a3babSopenharmony_ci
39617a3babSopenharmony_ci    ++sum34;
40617a3babSopenharmony_ci    --sum34;
41617a3babSopenharmony_ci
42617a3babSopenharmony_ci    sum34 += mat3x4(f);
43617a3babSopenharmony_ci    sum34 += mat3x4(v3, f, v3, f, v3, f);
44617a3babSopenharmony_ci
45617a3babSopenharmony_ci    color += sum3 * m43 + sum4;
46617a3babSopenharmony_ci
47617a3babSopenharmony_ci    color += vec4(m43);
48617a3babSopenharmony_ci    color += vec4(vec3(mat2(f)), 7.2);
49617a3babSopenharmony_ci}
50