def png.paeth
import gralha-png-decode@0.1.0.1/png.bend as Pngimport Base
import gralha-text-scan@0.1.0.1/scan.bend as U
58def png.paeth(+a: U32, +b: U32, +c: U32) -> U32:
59 +aa = U32.to_f32(a)
60 +bb = U32.to_f32(b)
61 +cc = U32.to_f32(c)
62 +pa = F32.abs((bb - cc : F32))
63 +pb = F32.abs((aa - cc : F32))
64 +pc = F32.abs((aa + bb - 2.0 * cc : F32))
65 U.choose(U32, F32.is_le(pa, pb) && F32.is_le(pa, pc), a, U.choose(U32, F32.is_le(pb, pc), b, c))