isSameValueZerof

Test whether two single-precision complex floating-point numbers are the same value.

Usage

var isSameValueZerof = require( '@stdlib/complex/float32/base/assert/is-same-value-zero' );

isSameValueZerof( z1, z2 )

Tests whether two single-precision complex floating-point numbers are the same value.

var Complex64 = require( '@stdlib/complex/float32/ctor' );

var z1 = new Complex64( 5.0, 3.0 );
var z2 = new Complex64( 5.0, 3.0 );

var out = isSameValueZerof( z1, z2 );
// returns true

In contrast to the strict equality operator ===, the function treats NaNs as the same value.

var Complex64 = require( '@stdlib/complex/float32/ctor' );

var z1 = new Complex64( NaN, NaN );
var z2 = new Complex64( NaN, NaN );

var out = isSameValueZerof( 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 Complex64 = require( '@stdlib/complex/float32/ctor' );

var z1 = new Complex64( -0.0, 0.0 );
var z2 = new Complex64( 0.0, -0.0 );

var out = isSameValueZerof( z1, z2 );
// returns true

Examples

var Complex64 = require( '@stdlib/complex/float32/ctor' );
var isSameValueZerof = require( '@stdlib/complex/float32/base/assert/is-same-value-zero' );

var z1 = new Complex64( 5.0, 3.0 );
var z2 = new Complex64( 5.0, 3.0 );
var out = isSameValueZerof( z1, z2 );
// returns true

z1 = new Complex64( -5.0, -3.0 );
z2 = new Complex64( 5.0, 3.0 );
out = isSameValueZerof( z1, z2 );
// returns false

z1 = new Complex64( NaN, 3.0 );
z2 = new Complex64( NaN, 3.0 );
out = isSameValueZerof( z1, z2 );
// returns true

C APIs

Usage

#include "stdlib/complex/float32/base/assert/is_same_value_zero.h"

stdlib_base_complex64_is_same_value_zero( z1, z2 )

Tests whether two single-precision complex floating-point numbers are the same value.

#include "stdlib/complex/float32/ctor.h"
#include <stdbool.h>

stdlib_complex64_t z1 = stdlib_complex64( 5.0f, 2.0f );
stdlib_complex64_t z2 = stdlib_complex64( 5.0f, 2.0f );

bool v = stdlib_base_complex64_is_same_value_zero( z1, z2 );

The function accepts the following arguments:

  • z1: [in] stdlib_complex64_t first single-precision complex floating-point number.
  • z2: [in] stdlib_complex64_t second single-precision complex floating-point number.
bool stdlib_base_complex64_is_same_value_zero( const stdlib_complex64_t z1, const stdlib_complex64_t z2 );

Examples

#include "stdlib/complex/float32/base/assert/is_same_value_zero.h"
#include "stdlib/complex/float32/ctor.h"
#include <stdbool.h>
#include <stdio.h>

int main( void ) {
    const stdlib_complex64_t z[] = {
        stdlib_complex64( 5.0f, 2.0f ),
        stdlib_complex64( -2.0f, 1.0f ),
        stdlib_complex64( 0.0f, -0.0f ),
        stdlib_complex64( 0.0f/0.0f, 0.0f/0.0f )
    };

    bool v;
    int i;
    for ( i = 0; i < 4; i++ ) {
        v = stdlib_base_complex64_is_same_value_zero( z[ i ], z[ i ] );
        printf( "Same value? %s\n", ( v ) ? "True" : "False" );
    }
}
Did you find this page helpful?