def _print_violations(unknowns, lower, upper):
    """
    Print out which variables exceed their bounds.

    Parameters
    ----------
    unknowns : <Vector>
        Vector containing the unknowns.
    lower : <Vector>
        Vector containing the lower bounds.
    upper : <Vector>
        Vector containing the upper bounds.
    """
    start = end = 0
    for name, val in unknowns._views_flat.items():
        end += val.size
        if any(val > upper[start:end]):
            print("'%s' exceeds upper bounds" % name)
            print('  Val:', val)
            print('  Upper:', upper[start:end], '\n')
        if any(val < lower[start:end]):
            print("'%s' exceeds lower bounds" % name)
            print('  Val:', val)
            print('  Lower:', lower[start:end], '\n')
        start = end
