def inverse_dfp(vs, hessian, pre_scaled=False, post_scaled=False):
    """ 
        M1QN3.C and M1QN3.C2 in GL Equation 4.8, 4.10;
        and VAF post update scaling.
        This is not applicable since we do not implement DFP.
    """
    assert len(hessian.S) > 0
    D0 = hessian.D
    s = hessian.S[-1]
    y = hessian.Y[-1]
    ys = hessian.YS[-1]
    yy = hessian.YY[-1]
    dot = vs.dot
    mul = vs.mul
    addmul = vs.addmul
    pow = vs.pow
    yD0 = mul(y, D0)
    D0yy = dot(yD0, y)
    if pre_scaled:
        D0 = mul(ys / D0yy, D0)
    t = addmul(D0, pow(s, 2), 1 / ys)
    t = addmul(t, pow(yD0, 2), 1 / D0yy)
    D1 = t
    if post_scaled:
        yD1 = mul(y, D1)
        D1yy = dot(yD1, y)
        D1 = mul(D1, ys / D1yy)
    return D1
