def lin_comb(clist, vlist):
    """
    Compute a linear combination
    :param clist: X len list of scalars
    :param vlist: X len list of vectors all of domain D
    :return: D domain vector whose values are summation of clist * vlist
    """
    return sum([s * v for s, v in zip(clist, vlist)])