def evaluate_compound(demand, price):
    """
    Evaluate compound.

    Parameters
    ----------
    demand : number
        Compound demand.
    price : number
        Compound price.

    Returns
    -------
    number
        Value of the compound.

    Raises
    ------
    TypeError
        If demand or price are not numeric.
    ValueError
        If demand or price is not non-negative.

    """
    if not isinstance(demand, (float, int)):
        raise TypeError('Input demand type must be float or int.')
    elif not isinstance(price, (float, int)):
        raise TypeError('Input price type must be float or int.')
    elif demand < 0 or price < 0:
        raise ValueError('Demand and price must be non-negative.')
    return demand * price