- // Case D: Diagonal samples have four-way symmetry.
- for (int xy = 1; xy <= R; ++xy) {
- vec4 sample = PREFIX(samples)[xy * (R + 1) + xy];
- vec2 mirror_sample = vec2(sample.x, -sample.y);
-
- vec4 local_sum = INPUT(tc - sample.xy) + INPUT(tc + sample.xy);
- local_sum += INPUT(tc - mirror_sample.xy) + INPUT(tc + mirror_sample.xy);
-
- sum += sample.z * local_sum;
- }
-
- // Case *: All other samples have eight-way symmetry.
- for (int y = 1; y < R; ++y) {
- for (int x = y + 1; x <= R; ++x) {
+ // Case D: All other samples have four-way symmetry.
+ // (Actually we have eight-way, but since we are using normalized
+ // coordinates, we can't just flip x and y.)
+ for (int y = 1; y <= R; ++y) {
+ for (int x = 1; x <= R; ++x) {