Product Documentation
Cadence SKILL Language Reference
Product Version IC23.1, November 2023

nearlyEqual

nearlyEqual( 
n_val1 n_val2 
[ f_relTolerance [f_absTolerance] ] 
) 
=> t / nil

Description

Checks whether one value (n_val1) is approximately equal to another value (n_val2).

Arguments

n_val1 n_val2

The values that need to be checked.

f_relTolerance

The relative tolerance or the amount of error allowed, relative to the larger absolute value of n_val1 or n_val2. It must be greater than 0. The default tolerance is 1e-9, which ensures that the two values are the same within about 9 decimal digits.

To set a tolerance of 5%, for example, the pass tolerance must be equal to 0.05.

f_absTolerance

The minimum absolute tolerance level that can be used for comparisons near zero.

Value Returned

t

n_val1 is nearly equal to n_val2.

nil

n_val1 is not equal to n_val2.

Examples

;; nearlyEqual check at 0.1% relative tolerance
relativeTolerance = 0.001
Val1 = 17.00
Val2 = 17.01
nearlyEqual(val1 val2 relativeTolerance) 
=> t
nearlyEqual(val2 val1 relativeTolerance) 
=> t
;; This is equivalent to:
abs(val1 – val2) < relativeTolerance * max(val1 val2)  
=> t
;; Other Examples
nearlyEqual(0.7777777777777 0.7777777777777777777777) 
=> t
nearlyEqual(0.7777777777777 0.7777777777777777777777 0.0) 
=> nil
nearlyEqual(nan nan) 
=> nil
nearlyEqual(infinity nan1) 
=> nil

Related Topics

eq

equal

eqv


Return to top
 ⠀
X