Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 19 additions & 146 deletions lib/node_modules/@stdlib/math/base/special/cinvf/test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,13 @@

var tape = require( 'tape' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var absf = require( '@stdlib/math/base/special/absf' );
var EPS = require( '@stdlib/constants/float32/eps' );
var PINF = require( '@stdlib/constants/float32/pinf' );
var NINF = require( '@stdlib/constants/float32/ninf' );
var Complex64 = require( '@stdlib/complex/float32/ctor' );
var realf = require( '@stdlib/complex/float32/real' );
var imagf = require( '@stdlib/complex/float32/imag' );
var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );
var isAlmostSameValue = require( '@stdlib/number/float32/base/assert/is-almost-same-value' );
var cinvf = require( './../lib' );


Expand Down Expand Up @@ -66,10 +65,8 @@ tape( 'the function computes the inverse of a single-precision complex floating-
});

tape( 'the function computes a complex inverse', function test( t ) {
var delta;
var qre;
var qim;
var tol;
var re;
var im;
var i;
Expand All @@ -83,27 +80,13 @@ tape( 'the function computes a complex inverse', function test( t ) {
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = 1.4 * EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = 1.4 * EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 2 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 2 ), true, 'returns expected value' );
}
t.end();
});

tape( 'the function computes a complex inverse (large negative imaginary components)', function test( t ) {
var delta;
var tol;
var qre;
var qim;
var re;
Expand All @@ -119,27 +102,13 @@ tape( 'the function computes a complex inverse (large negative imaginary compone
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 1 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 1 ), true, 'returns expected value' );
}
t.end();
});

tape( 'the function computes a complex inverse (large negative real components)', function test( t ) {
var delta;
var tol;
var qre;
var qim;
var re;
Expand All @@ -155,27 +124,13 @@ tape( 'the function computes a complex inverse (large negative real components)'
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 1 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 1 ), true, 'returns expected value' );
}
t.end();
});

tape( 'the function computes a complex inverse (large positive imaginary components)', function test( t ) {
var delta;
var tol;
var qre;
var qim;
var re;
Expand All @@ -191,27 +146,13 @@ tape( 'the function computes a complex inverse (large positive imaginary compone
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 1 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 1 ), true, 'returns expected value' );
}
t.end();
});

tape( 'the function computes a complex inverse (large positive real components)', function test( t ) {
var delta;
var tol;
var qre;
var qim;
var re;
Expand All @@ -227,27 +168,13 @@ tape( 'the function computes a complex inverse (large positive real components)'
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 1 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 1 ), true, 'returns expected value' );
}
t.end();
});

tape( 'the function computes a complex inverse (tiny negative imaginary components)', function test( t ) {
var delta;
var tol;
var qre;
var qim;
var re;
Expand All @@ -263,27 +190,13 @@ tape( 'the function computes a complex inverse (tiny negative imaginary componen
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = 1.5 * EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 1 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 2 ), true, 'returns expected value' );
}
t.end();
});

tape( 'the function computes a complex inverse (tiny negative real components)', function test( t ) {
var delta;
var tol;
var qre;
var qim;
var re;
Expand All @@ -299,27 +212,13 @@ tape( 'the function computes a complex inverse (tiny negative real components)',
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = 1.5 * EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 2 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 1 ), true, 'returns expected value' );
}
t.end();
});

tape( 'the function computes a complex inverse (tiny positive imaginary components)', function test( t ) {
var delta;
var tol;
var qre;
var qim;
var re;
Expand All @@ -335,27 +234,13 @@ tape( 'the function computes a complex inverse (tiny positive imaginary componen
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = 1.3 * EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 1 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 2 ), true, 'returns expected value' );
}
t.end();
});

tape( 'the function computes a complex inverse (tiny positive real components)', function test( t ) {
var delta;
var tol;
var qre;
var qim;
var re;
Expand All @@ -371,20 +256,8 @@ tape( 'the function computes a complex inverse (tiny positive real components)',
for ( i = 0; i < re.length; i++ ) {
q = cinvf( new Complex64( re[ i ], im[ i ] ) );

if ( realf( q ) === qre[ i ] ) {
t.strictEqual( realf( q ), qre[ i ], 'returns expected real component' );
} else {
delta = absf( realf( q ) - qre[ i ] );
tol = 1.6 * EPS * absf( qre[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. real: '+realf( q )+'. expected: '+qre[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
if ( imagf( q ) === qim[ i ] ) {
t.strictEqual( imagf( q ), qim[ i ], 'returns expected imaginary component' );
} else {
delta = absf( imagf( q ) - qim[ i ] );
tol = EPS * absf( qim[ i ] );
t.ok( delta <= tol, 'within tolerance. x: '+re[i]+'+ '+im[i]+'i. imag: '+imagf( q )+'. expected: '+qim[i]+'. delta: '+delta+'. tol: '+tol+'.' );
}
t.strictEqual( isAlmostSameValue( realf( q ), qre[ i ], 2 ), true, 'returns expected value' );
t.strictEqual( isAlmostSameValue( imagf( q ), qim[ i ], 1 ), true, 'returns expected value' );
}
t.end();
});
Expand Down
Loading