isSameValueZero
Test whether two double-precision complex floating-point numbers are the same value.
Usage
var isSameValueZero = require( '@stdlib/complex/float64/base/assert/is-same-value-zero' );
isSameValueZero( z1, z2 )
Tests whether two double-precision complex floating-point numbers are the same value.
var Complex128 = require( '@stdlib/complex/float64/ctor' );
var z1 = new Complex128( 5.0, 3.0 );
var z2 = new Complex128( 5.0, 3.0 );
var out = isSameValueZero( z1, z2 );
// returns true
In contrast to the strict equality operator ===
, the function treats NaNs
as the same value.
var Complex128 = require( '@stdlib/complex/float64/ctor' );
var z1 = new Complex128( NaN, NaN );
var z2 = new Complex128( NaN, NaN );
var out = isSameValueZero( z1, z2 );
// returns true
In contrast to the SameValue Algorithm (as specified in ECMAScript 5), the function does not distinguish between +0
and -0
.
var Complex128 = require( '@stdlib/complex/float64/ctor' );
var z1 = new Complex128( -0.0, 0.0 );
var z2 = new Complex128( 0.0, -0.0 );
var out = isSameValueZero( z1, z2 );
// returns true
Examples
var Complex128 = require( '@stdlib/complex/float64/ctor' );
var isSameValueZero = require( '@stdlib/complex/float64/base/assert/is-same-value-zero' );
var z1 = new Complex128( 5.0, 3.0 );
var z2 = new Complex128( 5.0, 3.0 );
var out = isSameValueZero( z1, z2 );
// returns true
z1 = new Complex128( -5.0, -3.0 );
z2 = new Complex128( 5.0, 3.0 );
out = isSameValueZero( z1, z2 );
// returns false
z1 = new Complex128( NaN, 3.0 );
z2 = new Complex128( NaN, 3.0 );
out = isSameValueZero( z1, z2 );
// returns true
C APIs
Usage
#include "stdlib/complex/float64/base/assert/is_same_value_zero.h"
stdlib_base_complex128_is_same_value_zero( z1, z2 )
Tests whether two double-precision complex floating-point numbers are the same value.
#include "stdlib/complex/float64/ctor.h"
#include <stdbool.h>
stdlib_complex128_t z1 = stdlib_complex128( 5.0, 2.0 );
stdlib_complex128_t z2 = stdlib_complex128( 5.0, 2.0 );
bool v = stdlib_base_complex128_is_same_value_zero( z1, z2 );
The function accepts the following arguments:
- z1:
[in] stdlib_complex128_t
first double-precision complex floating-point number. - z2:
[in] stdlib_complex128_t
second double-precision complex floating-point number.
bool stdlib_base_complex128_is_same_value_zero( const stdlib_complex128_t z1, const stdlib_complex128_t z2 );
Examples
#include "stdlib/complex/float64/base/assert/is_same_value_zero.h"
#include "stdlib/complex/float64/ctor.h"
#include <stdbool.h>
#include <stdio.h>
int main( void ) {
const stdlib_complex128_t z[] = {
stdlib_complex128( 5.0, 2.0 ),
stdlib_complex128( -2.0, 1.0 ),
stdlib_complex128( 0.0, -0.0 ),
stdlib_complex128( 0.0/0.0, 0.0/0.0 )
};
bool v;
int i;
for ( i = 0; i < 4; i++ ) {
v = stdlib_base_complex128_is_same_value_zero( z[ i ], z[ i ] );
printf( "Same value? %s\n", ( v ) ? "True" : "False" );
}
}