<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def is_inside_bounds(value, params):
 """Return ``True`` if ``value`` is contained in ``params``. This method supports broadcasting in the sense that for ``params.ndim >= 2``, if more than one value is given, the inputs are broadcast against each other. Parameters value : `array-like` Value(s) to be checked. For several inputs, the final bool tells whether all inputs pass the check or not. params : `IntervalProd` Set in which the value is / the values are supposed to lie. Returns ------- is_inside_bounds : bool ``True`` is all values lie in ``params``, ``False`` otherwise. Examples -------- Check a single point: True False Using broadcasting: True False """

    if value in params:
        # Single parameter
        return True
    else:
        if params.ndim == 1:
            return params.contains_all(np.ravel(value))
        else:
            # Flesh out and flatten to check bounds
            bcast_value = np.broadcast_arrays(*value)
            stacked_value = np.vstack(bcast_value)
            flat_value = stacked_value.reshape(params.ndim, -1)
            return params.contains_all(flat_value)