fn

fmin

Tensor
fmin(a: Tensor, b: Tensor)
source

Element-wise NaN-quiet minimum.

Like lucid.minimum, but treats NaN as missing data: if exactly one operand is NaN at a given position, the non-NaN value is returned. Only when both are NaN does the result remain NaN.

Parameters

aTensor
First operand.
bTensor
Second operand. Must broadcast with a.

Returns

Tensor

Element-wise NaN-quiet minimum.

Notes

Mathematical definition:

fmin(ai,bi)={bi,ai=NaN,ai,bi=NaN,min(ai,bi),otherwise.\text{fmin}(a_i, b_i) = \begin{cases} b_i, & a_i = \text{NaN}, \\ a_i, & b_i = \text{NaN}, \\ \min(a_i, b_i),& \text{otherwise.} \end{cases}

Contrast with lucid.minimum, which propagates NaN per IEEE 754.

Examples

>>> import lucid
>>> import math
>>> a = lucid.tensor([1.0, math.nan, 3.0])
>>> b = lucid.tensor([2.0, 2.0, math.nan])
>>> lucid.fmin(a, b)
Tensor([1., 2., 3.])