public static Vector4f Dp2Add(Vector4f a, Vector4f b, Vector4f c) { Vector4f res = a * b; //XX we could use HorizontalAdd here res = res + res.Shuffle (ShuffleSel.XFromY) + c; return res.Shuffle (ShuffleSel.ExpandX); }