WEBVTT

00:00:00.000 --> 00:00:03.130
A winning value should receive its gradient.

00:00:03.130 --> 00:00:06.261
In MLX block updates, one contribution disappears.

00:00:06.767 --> 00:00:10.893
Two overlapping blocks update four numbers.

00:00:10.893 --> 00:00:15.019
Forward maximum is correct. 5 beats 4: no ties.

00:00:15.533 --> 00:00:19.938
Expected gradient ends in 4. MLX returns 0.

00:00:19.938 --> 00:00:24.343
Finite differences of the C++ forward confirm it.

00:00:24.867 --> 00:00:28.354
Backward gather assumes a block length of 1.

00:00:28.354 --> 00:00:31.842
This block needs 2. The patch uses the actual shape.

00:00:32.367 --> 00:00:36.329
Minimal patch: all 26 targeted checks pass.

00:00:36.329 --> 00:00:40.292
The original fails 12 of those checks.

00:00:40.800 --> 00:00:46.035
Local CPU tests. Full-model impact unknown.

00:00:46.035 --> 00:00:51.270
Historical tie behavior is separate. Code and patches linked.

