def regularize_name(name,salutation_set={"Prof."}):
    """ Regularize professor name into last-name-first form.

    Processes name in form:
           'Special' (e.g., 'DGS')
           'Last, First [Middle]'
           'First [Middle] Last'
           'Prof. First [Middle] Last'

    Special (i.e., one-word) names are left untouched.

    Arguments:
        name (string) : the name
        salutation_set (set of string, optional) : salutations to strip

    Returns:
        (string) : the regularized name
    """

    tokens = name.split()

    if (len(tokens) == 1):
        # case 'Special'   (e.g., 'DGS')
        regularized_name = name
    elif (tokens[0][-1] == ","):
        # case 'Last, First [Middle]'
        regularized_name = " ".join(tokens)
    elif (tokens[0] in salutation_set):
        # case 'Salutation First [Middle] Last'
        regularized_name = "{}, {}".format(tokens[-1]," ".join(tokens[1:-1]))
    else:
        # case 'First [Middle] Last'
        regularized_name = "{}, {}".format(tokens[-1]," ".join(tokens[0:-1]))

    ## print(name,tokens,regularized_name)

    return regularized_name