mul_helper_single_zero_inclusive

Function mul_helper_single_zero_inclusive 

Source
fn mul_helper_single_zero_inclusive(
    dt: &DataType,
    lhs: &Interval,
    rhs: &Interval,
    zero: ScalarValue,
) -> Interval
Expand description

Multiplies two intervals when only left-hand side interval contains zero.

This function takes in two intervals (lhs and rhs) as arguments and returns their product (whose data type is known to be dt). This function serves as a subroutine that handles the specific case when only lhs contains zero within its range. The interval not containing zero, i.e. rhs, can lie on either side of zero. Returns an error if the multiplication of bounds fails.

Left-hand side:  <-------=====0=====------->
Right-hand side: <--======----0------------>

                   or

Left-hand side:  <-------=====0=====------->
Right-hand side: <------------0--======---->

Caution: This function contains multiple calls to unwrap(). Therefore, it should be used with caution. Currently, it is used in contexts where the DataType (dt) is validated prior to calling this function.