diff --git a/lib/node_modules/@stdlib/blas/base/dznrm2/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dznrm2/test/test.ndarray.js index d1b7b4acd2c..2657e8fc721 100644 --- a/lib/node_modules/@stdlib/blas/base/dznrm2/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dznrm2/test/test.ndarray.js @@ -105,6 +105,86 @@ tape( 'the function computes the L2-norm', function test( t ) { actual = dznrm2( 3, zx, 1, 0 ); isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + zx = new Complex128Array([ + 1e150, // 1 + 1e150, // 1 + 1e150, // 2 + 1e150, // 2 + 1e150, // 3 + 1e150, // 3 + 1e150, // 4 + 1e150 // 4 + ]); + expected = 2.82842e+150; + + actual = dznrm2( 4, zx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + zx = new Complex128Array([ + 1e-155, // 1 + 1e-155, // 1 + 1e-155, // 2 + 1e-155, // 2 + 1e-155, // 3 + 1e-155, // 3 + 1e-155, // 4 + 1e-155 // 4 + ]); + expected = 2.82843e-155; + + actual = dznrm2( 4, zx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + zx = new Complex128Array([ + 1e150, // 1 + 1e50, // 1 + 1e150, // 2 + 1e50, // 2 + 1e150, // 3 + 1e50, // 3 + 1e150, // 4 + 1e50 // 4 + ]); + expected = 2.00000e150; + + actual = dznrm2( 4, zx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + zx = new Complex128Array([ + 1e-155, // 1 + 1e50, // 1 + 1e-155, // 2 + 1e50, // 2 + 1e-155, // 3 + 1e50, // 3 + 1e-155, // 4 + 1e50 // 4 + ]); + expected = 2.00000e50; + + actual = dznrm2( 4, zx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + zx = new Complex128Array([ + 1.4e-154, // 1 + 1.5e-154, // 1 + 1.4e-154, // 2 + 1.5e-154, // 2 + 1.4e-154, // 3 + 0, // 3 + 1.4e-154, // 4 + 0 // 4 + ]); + expected = 3.51283e-154; + + actual = dznrm2( 4, zx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/scnrm2/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/scnrm2/test/test.ndarray.js index 212ba463817..d864d9b3e8d 100644 --- a/lib/node_modules/@stdlib/blas/base/scnrm2/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/scnrm2/test/test.ndarray.js @@ -105,6 +105,86 @@ tape( 'the function computes the L2-norm', function test( t ) { actual = scnrm2( 3, cx, 1, 0 ); isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + cx = new Complex64Array([ + 5e+15, // 1 + 5e+15, // 1 + 5e+15, // 2 + 5e+15, // 2 + 5e+15, // 3 + 5e+15, // 3 + 5e+15, // 4 + 5e+15 // 4 + ]); + expected = 14142135623730952; + + actual = scnrm2( 4, cx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + cx = new Complex64Array([ + 1e-20, // 1 + 1e-20, // 1 + 1e-20, // 2 + 1e-20, // 2 + 1e-20, // 3 + 1e-20, // 3 + 1e-20, // 4 + 1e-20 // 4 + ]); + expected = 2.82843e-20; + + actual = scnrm2( 4, cx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + cx = new Complex64Array([ + 1e20, // 1 + 1e10, // 1 + 1e20, // 2 + 1e10, // 2 + 1e20, // 3 + 1e10, // 3 + 1e20, // 4 + 1e10 // 4 + ]); + expected = 200000000000000000000; + + actual = scnrm2( 4, cx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + cx = new Complex64Array([ + 1e-20, // 1 + 1e10, // 1 + 1e-20, // 2 + 1e10, // 2 + 1e-20, // 3 + 1e10, // 3 + 1e-20, // 4 + 1e10 // 4 + ]); + expected = 20000000000; + + actual = scnrm2( 4, cx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); + + // Checked on Wolfram Alpha: + cx = new Complex64Array([ + 1e-19, // 1 + 1.08420217e-19, // 1 + 1e-19, // 2 + 1.08420217e-19, // 2 + 1e-19, // 3 + 0, // 3 + 1e-19, // 4 + 0 // 4 + ]); + expected = 2.52012e-19; + + actual = scnrm2( 4, cx, 1, 0 ); + isApprox( t, actual, expected, 2.0 ); t.end(); });