I explain what I'd expected
for left value: max(0,0.5) = 0.5 (ok) min(0,0.5) = 0 (ok) k2* max + k3 * min = 1 * max + (-1) * min = max - min = 0.5 - 0 = 0.5 = grey
for middle value: max(0.5 , 0.5) = 0.5 (ok) min(0.5 , 0.5) = 0.5 (ok) k2* max + k3 * min = 1 * max + (-1) * min = max - min = 0.5 - 0.5 = 0 = black
for right value: max(1 , 0.5) = 1 (ok) min(1 , 0.5) = 0.5 (ok) k2* max + k3 * min = 1 * max + (-1) * min = max - min = 1 - 0.5 = 0.5 = grey
If I didn't miss something about premul or clamping, I think this is right
I explain what I'd expected
for left value:
max(0,0.5) = 0.5 (ok)
min(0,0.5) = 0 (ok)
k2* max + k3 * min = 1 * max + (-1) * min = max - min = 0.5 - 0 = 0.5 = grey
for middle value:
max(0.5 , 0.5) = 0.5 (ok)
min(0.5 , 0.5) = 0.5 (ok)
k2* max + k3 * min = 1 * max + (-1) * min = max - min = 0.5 - 0.5 = 0 = black
for right value:
max(1 , 0.5) = 1 (ok)
min(1 , 0.5) = 0.5 (ok)
k2* max + k3 * min = 1 * max + (-1) * min = max - min = 1 - 0.5 = 0.5 = grey
If I didn't miss something about premul or clamping, I think this is right