I wanted to try using Blend Algebra to recreate Gimp's blend types inside CinGG. I couldn't because I don't really understand the formulas used by Gimp, or rather, what I understand less are the formulas used by CinGG. I understand that these are pre-multiplied while Gimp's are normal (“straight”). But even without taking this into account, I don't really understand how to compare the formulas (https://docs.gimp.org/3.0/en/gimp-concepts-layer-modes-legacy.html). For example, for the “Multiply” blend we have two different formulas, even though the manual says that the CinGG formula is the same as the Gimp formula: Gimp E = 1/255*(M*I) where “M” (foreground), if I understand correctly, corresponds to our “D” and “I” (background) corresponds to our “S” so it could be written: E = 1/255*(D*S) Instead, CinGG's formula is: [(Sa+Da-Sa*Da), Sc*(1-Da)+Dc*(1-Sa)+Sc*Dc] I cannot compare the two formulas, there is one too many Sc*(1-Da) and one too many Dc*(1-Sa), and a 1/255 is missing. Note: The presence of the parentheses like (1-Sa) is what makes me suspect that CinGG's formulas are “pre-multiplied” (https://en.wikipedia.org/wiki/Alpha_compositing#Straight_versus_premultiplie....) There are three types of blends whose formulas differ (and which I wanted to implement via Blend Algebra): (Normal); Addition; Subtract and Divide. Then there are Gimp blends that CinGG doesn't have, but they don't seem interesting to me. PS: I tried to look for the formulas used by CinCV but I don't know where to find them; do they exist anywhere?