def process_primary_inputs(dict_):
    """
    This functions processes the parameters specified
    by the user in the initialization dictionary.

    Parameters
    ----------
    dict_: dict
        Estimation dictionary. Returned by grmpy.read(init_file).

    Returns
    -------
    bins: int
        Number of histogram bins used to determine common support.
    logit: bool
        Probability model for the choice equation.
        If True: logit, else: probit.
    bandwidth: float
        Kernel bandwidth for the local polynomial regression.
    gridsize: int
        Number of equally-spaced grid points of u_D over which the
        MTE shall be estimated.
    startgrid: int
        Start point of the grid of unobservable resistance (u_D),
        over which the MTE is evaluated.
    end_grind: int
        End point of the grid of unobservable resistance (u_D),
        over which the MTE is evaluated.
    """
    try:
        dict_["ESTIMATION"]["bins"]
    except KeyError:
        bins = 25
    else:
        bins = dict_["ESTIMATION"]["bins"]

    try:
        dict_["ESTIMATION"]["logit"]
    except KeyError:
        logit = True
    else:
        logit = dict_["ESTIMATION"]["logit"]

    try:
        dict_["ESTIMATION"]["bandwidth"]
    except KeyError:
        bandwidth = 0.32
    else:
        bandwidth = dict_["ESTIMATION"]["bandwidth"]

    try:
        dict_["ESTIMATION"]["gridsize"]
    except KeyError:
        gridsize = 500
    else:
        gridsize = dict_["ESTIMATION"]["gridsize"]

    try:
        dict_["ESTIMATION"]["ps_range"]
    except KeyError:
        prop_score_range = [0.005, 0.995]
    else:
        prop_score_range = dict_["ESTIMATION"]["ps_range"]

    start_grid = prop_score_range[0]
    endgrid = prop_score_range[1]

    return bins, logit, bandwidth, gridsize, start_grid, endgrid