# isZero: Checks if a value is (close to) zero or not In R.utils: Various Programming Utilities

## Description

Checks if a value (or a vector of values) is (close to) zero or not where "close" means if the absolute value is less than `neps*eps`. Note that `x == 0` will not work in all cases.

By default `eps` is the smallest possible floating point value that can be represented by the running machine, i.e. `.Machine\$double.eps` and `neps` is one. By changing `neps` it is easy to adjust how close to zero "close" means without having to know the machine precision (or remembering how to get it).

## Usage

 ```1 2``` ```## Default S3 method: isZero(x, neps=1, eps=.Machine\$double.eps, ...) ```

## Arguments

 `x` A `vector` of values. `eps` The smallest possible floating point. `neps` A scale factor of `eps` specifying how close to zero "close" means. If `eps` is the smallest value such that `1 + eps != 1`, i.e. `.Machine\$double.eps`, `neps` must be greater or equal to one. `...` Not used.

## Value

Returns a `logical` `vector` indicating if the elements are zero or not.

## Author(s)

Henrik Bengtsson

`all.equal`(). `Comparison`. `.Machine`.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23``` ```x <- 0 print(x == 0) # TRUE print(isZero(x)) # TRUE x <- 1 print(x == 0) # FALSE print(isZero(x)) # FALSE x <- .Machine\$double.eps print(x == 0) # FALSE print(isZero(x)) # FALSE x <- 0.9*.Machine\$double.eps print(x == 0) # FALSE print(isZero(x)) # TRUE # From help(Comparisions) x1 <- 0.5 - 0.3 x2 <- 0.3 - 0.1 print(x1 - x2) print(x1 == x2) # FALSE on most machines print(identical(all.equal(x1, x2), TRUE)) # TRUE everywhere print(isZero(x1-x2)) # TRUE everywhere ```

### Example output

```Loading required package: R.oo
R.methodsS3 v1.7.1 (2016-02-15) successfully loaded. See ?R.methodsS3 for help.
R.oo v1.22.0 (2018-04-21) successfully loaded. See ?R.oo for help.

Attaching package: 'R.oo'

The following objects are masked from 'package:methods':

getClasses, getMethods

The following objects are masked from 'package:base':

R.utils v2.8.0 successfully loaded. See ?R.utils for help.

Attaching package: 'R.utils'

The following object is masked from 'package:utils':

timestamp

The following objects are masked from 'package:base':

cat, commandArgs, getOption, inherits, isOpen, parse, warnings

 TRUE
 TRUE
 FALSE
 FALSE
 FALSE
 FALSE
 FALSE
 TRUE
 2.775558e-17
 FALSE
 TRUE
 TRUE
```

R.utils documentation built on Sept. 26, 2021, 9:07 a.m.