Well done Enzo. 1 -x is the inverse of x. PixelMath provides the pixel inversion operator ~, namely:

~x = 1 - x

Knowing this you can simplify many of the expressions, and hence make them run faster. The whole set would be:

Darken

Min( IMG1, IMG2 )

Multiply

IMG1 * IMG2

Color Burn (non-commutative)

~(~IMG1/ IMG2)

Linear Burn

IMG1 + IMG2 - 1

Lighten

Max( IMG1, IMG2 )

Screen

~(~IMG1 * ~IMG2)

Color Dodge (non-commutative)

IMG1 / ~IMG2

Overlay (non-commutative)

iif( IMG1 > 0.5, ~(~(2*(IMG1 - 0.5)) * ~IMG2), 2*IMG1*IMG2 )

Soft Light (?) (non-commutative)

iif( IMG2 > 0.5, ~(~IMG1 * ~(IMG2 - 0.5)), IMG1*(IMG2 + 0.5) )

Hard Light (non-commutative)

iif( IMG2 > 0.5, ~(~IMG1 * ~(2*(IMG2 - 0.5))), 2*IMG1*IMG2 ) )

Vivid Light (??) (non-commutative)

iif( IMG2 > 0.5, ~(~IMG1/(IMG2 - 0.5)/2), IMG1/~(2*IMG2) )

Linear Light (non-commutative)

iif( IMG2 > 0.5, IMG1 + 2*(IMG2 - 0.5), IMG1 + 2*IMG2 - 1 )

Pin Light (non-commutative)

iif( IMG2 > 0.5, Max( IMG1, 2*(IMG2 - 0.5) ), Min( IMG1, 2*IMG2 ) )

Difference

IMG1 -- IMG2

Exclusion

0.5 - 2*(IMG1 - 0.5)*(IMG2 - 0.5)