def add_where_broadcastable(self, name, input_names, output_name):
        """
        Add a where_broadcastable layer to the model that returns the elements
        either from tensor x or tensor y, depending on the value in the
        condition tensor.
        Refer to the ``WhereBroadcastableLayerParams`` message in the specification
        (NeuralNetwork.proto) for more details.

        Parameters
        ----------
        name: str
            The name of this layer.
        input_names: list of str
            The input blob names of this layer.
        output_name: str
            The output blob name of this layer.

        See Also
        --------
        add_where_nonzero
        """

        spec_layer = self._add_generic_layer(name, input_names, [output_name])
        spec_layer.whereBroadcastable.MergeFromString(b"")

        self._set_max_input_rank(input_names, output_name)

        return spec_layer

        Add a where_broadcastable layer to the model that returns the elements
        either from tensor x or tensor y, depending on the value in the
        condition tensor.
        Refer to the ``WhereBroadcastableLayerParams`` message in the specification
        (NeuralNetwork.proto) for more details.

        Parameters
        ----------
        name: str
            The name of this layer.
        input_names: list of str
            The input blob names of this layer.
        output_name: str
            The output blob name of this layer.

        See Also
        --------
        add_where_nonzero
        
coremltools/models/neural_network/builder.py