# Function equal #

Test whether two values are equal.

The function tests whether the relative difference between x and y is smaller than the configured epsilon. The function cannot be used to compare values smaller than approximately 2.22e-16.

For matrices, the function is evaluated element wise. In case of complex numbers, x.re must equal y.re, and x.im must equal y.im.

Values `null` and `undefined` are compared strictly, thus `null` is only equal to `null` and nothing else, and `undefined` is only equal to `undefined` and nothing else. Strings are compared by their numerical value.

## Syntax #

``````math.equal(x, y)
``````

### Parameters #

Parameter Type Description
`x` number | BigNumber | boolean | Complex | Unit | string | Array | Matrix First value to compare
`y` number | BigNumber | boolean | Complex | Unit | string | Array | Matrix Second value to compare

### Returns #

Type Description
boolean | Array | Matrix Returns true when the compared values are equal, else returns false

## Examples #

``````math.equal(2 + 2, 3)         // returns false
math.equal(2 + 2, 4)         // returns true

const a = math.unit('50 cm')
const b = math.unit('5 m')
math.equal(a, b)             // returns true

const c = [2, 5, 1]
const d = [2, 7, 1]

math.equal(c, d)             // returns [true, false, true]
math.deepEqual(c, d)         // returns false

math.equal("1000", "1e3")    // returns true
math.equal(0, null)          // returns false
``````