tfp.experimental.distributions.marginal_fns.ps.logical_and

Returns the truth value of x AND y element-wise.

Logical AND function.

Requires that x and y have the same shape or have broadcast-compatible shapes. For example, x and y can be:

  • Two single elements of type bool.
  • One tf.Tensor of type bool and one single bool, where the result will be calculated by applying logical AND with the single element to each element in the larger Tensor.
  • Two tf.Tensor objects of type bool of the same shape. In this case, the result will be the element-wise logical AND of the two input tensors.

You can also use the & operator instead.

>>> a = tf.constant([True])
>>> b = tf.constant([False])
>>> tf.math.logical_and(a, b)
<tf.Tensor: shape=(1,), dtype=bool, numpy=array([False])>
>>> a & b
<tf.Tensor: shape=(1,), dtype=bool, numpy=array([False])>
c = tf.constant([True])
x = tf.constant([False, True, True, False])
tf.math.logical_and(c, x)
<tf.Tensor: shape=(4,), dtype=bool, numpy=array([False,  True,  True, False])>
c & x
<tf.Tensor: shape=(4,), dtype=bool, numpy=array([False,  True,  True, False])>
y = tf.constant([False, False, True, True])
z = tf.constant([False, True, False, True])
tf.math.logical_and(y, z)
<tf.Tensor: shape=(4,), dtype=bool, numpy=array([False, False, False, True])>
y & z
<tf.Tensor: shape=(4,), dtype=bool, numpy=array([False, False, False, True])>

This op also supports broadcasting

tf.logical_and([[True, False]], [[True], [False]])
<tf.Tensor: shape=(2, 2), dtype=bool, numpy=
  array([[ True, False],
         [False, False]])>

The reduction version of this elementwise operation is tf.math.reduce_all.

x A tf.Tensor of type bool.
y A tf.Tensor of type bool.
name A name for the operation (optional).

A tf.Tensor of type bool with the shape that x and y broadcast to.

x A Tensor of type bool.
y A Tensor of type bool.
name A name for the operation (optional).

A Tensor of type bool.