'Cumulative sum via difference matrix.
Parameters
arg_objs : list
LinExpr for each argument.
size : tuple
The size of the resulting expression.
data :
Additional data required by the atom.
Returns
tuple
(LinOp for objective, list of constraints)'

@staticmethod
def graph_implementation(arg_objs, size, data=None):

    Y = lu.create_var(size)
    axis = data[0]
    dim = size[axis]
    diff_mat = get_diff_mat(dim, axis)
    diff_mat = lu.create_const(diff_mat, (dim, dim), sparse=True)
    if (axis == 0):
        diff = lu.mul_expr(diff_mat, Y, size)
    else:
        diff = lu.rmul_expr(Y, diff_mat, size)
    return (Y, [lu.create_eq(arg_objs[0], diff)])
