isclose#

ivy.isclose(a, b, /, *, rtol=1e-05, atol=1e-08, equal_nan=False, out=None)[source]#

Return a boolean array where two arrays are element-wise equal within a tolerance.

The tolerance values are positive, typically very small numbers. The relative difference (rtol * abs(b)) and the absolute difference atol are added together to compare against the absolute difference between a and b. The default atol is not appropriate for comparing numbers that are much smaller than one

Parameters:
  • a (Union[Array, NativeArray]) – First input array.

  • b (Union[Array, NativeArray]) – Second input array.

  • rtol (float, default: 1e-05) – The relative tolerance parameter.

  • atol (float, default: 1e-08) – The absolute tolerance parameter.

  • equal_nan (bool, default: False) – Whether to compare NaN’s as equal. If True, NaN’s in a will be considered equal to NaN’s in b in the output array.

  • out (Optional[Array], default: None) – Alternate output array in which to place the result. The default is None.

Return type:

Array

Returns:

ret – Returns a boolean array of where a and b are equal within the given tolerance. If both a and b are scalars, returns a single boolean value.

Examples

>>> ivy.isclose([1e10,1e-7], [1.00001e10,1e-8])
ivy.array([True, False])
>>> ivy.isclose([1.0, ivy.nan], [1.0, ivy.nan], equal_nan=True)
ivy.array([True, True])
>>> ivy.isclose([1e-100, 1e-7], [0.0, 0.0], atol=0.0)
ivy.array([False, False])
>>> ivy.isclose([1e-10, 1e-10], [1e-20, 0.999999e-10], rtol=0.005, atol=0.0)
ivy.array([False, True])
Array.isclose(self, b, /, *, rtol=1e-05, atol=1e-08, equal_nan=False, out=None)[source]#

ivy.Array instance method variant of ivy.isclose. This method simply wraps the function, and so the docstring for ivy.isclose also applies to this method with minimal changes.

Parameters:
  • self (Array) – First input array.

  • b (Array) – Second input array.

  • rtol (float, default: 1e-05) – The relative tolerance parameter.

  • atol (float, default: 1e-08) – The absolute tolerance parameter.

  • equal_nan (bool, default: False) – Whether to compare NaN’s as equal. If True, NaN’s in a will be considered equal to NaN’s in b in the output array.

  • out (Optional[Array], default: None) – Alternate output array in which to place the result. The default is None.

Return type:

Array

Returns:

ret – A new array holding the result is returned unless out is specified, in which it is returned.

Examples

>>> a = ivy.array([[ 2.1,  3.4,  ivy.nan], [ivy.nan, 2.4, 2.1]])
>>> b = ivy.array([[ 2.1,  3.4,  ivy.nan], [ivy.nan, 2.4, 2.1]])
>>> a.isclose(b)
ivy.array([[True, True, False],
       [False, True, True]])
>>> a.isclose(b, equal_nan=True)
ivy.array([[True, True, True],
       [True, True, True]])
>>> a=ivy.array([1.0, 2.0])
>>> b=ivy.array([1.0, 2.001])
>>> a.isclose(b, atol=0.0)
ivy.array([True, False])
>>> a.isclose(b, rtol=0.01, atol=0.0)
ivy.array([True, True])
Container.isclose(self, b, /, *, rtol=1e-05, atol=1e-08, equal_nan=False, key_chains=None, to_apply=True, prune_unapplied=False, map_sequences=False, out=None)[source]#

ivy.Container instance method variant of ivy.isclose. This method simply wraps the function, and so the docstring for ivy.isclose also applies to this method with minimal changes.

Parameters:
  • self (Container) – Input container containing first input array.

  • b (Container) – Input container containing second input array.

  • rtol (Union[float, Container], default: 1e-05) – The relative tolerance parameter.

  • atol (Union[float, Container], default: 1e-08) – The absolute tolerance parameter.

  • equal_nan (Union[bool, Container], default: False) – Whether to compare NaN’s as equal. If True, NaN’s in a will be considered equal to NaN’s in b in the output array.

  • key_chains (Optional[Union[List[str], Dict[str, str], Container]], default: None) – The key-chains to apply or not apply the method to. Default is None.

  • to_apply (Union[bool, Container], default: True) – If True, the method will be applied to key_chains, otherwise key_chains will be skipped. Default is True.

  • prune_unapplied (Union[bool, Container], default: False) – Whether to prune key_chains for which the function was not applied. Default is False.

  • map_sequences (Union[bool, Container], default: False) – Whether to also map method to sequences (lists, tuples). Default is False.

  • out (Optional[Container], default: None) – Alternate output array in which to place the result. The default is None.

Return type:

Container

Returns:

ret – A new array holding the result is returned unless out is specified, in which it is returned.

Examples

With one ivy.Container input: >>> x = ivy.Container(a=ivy.array([1.0, ivy.nan]), b=ivy.array([1.0, ivy.nan])) >>> y = ivy.Container(a=ivy.array([1.0, ivy.nan]), b=ivy.array([1.0, ivy.nan])) >>> x.isclose(y) {

a: ivy.array([True, False]), b: ivy.array([True, False])

} >>> x.isclose(y, equal_nan=True) {

a: ivy.array([True, True]), b: ivy.array([True, True])

} >>> x = ivy.Container(a=ivy.array([1.0, 2.0]), b=ivy.array([1.0, 2.0])) >>> y = ivy.Container(a=ivy.array([1.0, 2.001]), b=ivy.array([1.0, 2.0])) >>> x.isclose(y, atol=0.0) {

a: ivy.array([True, False]), b: ivy.array([True, True])

} >>> x.isclose(y, rtol=0.01, atol=0.0) {

a: ivy.array([True, True]), b: ivy.array([True, True])

}