8000 feat: add `lapack/base/dlanv2` by aayush0325 · Pull Request #7492 · stdlib-js/stdlib · GitHub
[go: up one dir, main page]

Skip to content

feat: add lapack/base/dlanv2 #7492

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 15 commits into
base: develop
Choose a base branch
from
Prev Previous commit
Next Next commit
test: add ndarray tests
---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: na
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
  • Loading branch information
aayush0325 committed Jun 27, 2025
commit 03a8196221df28f87f53889b0fe917413addc331
192 changes: 192 additions & 0 deletions lib/node_modules/@stdlib/lapack/base/dlanv2/test/test.ndarray.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ var B_EQ_ZERO = require( './fixtures/b_eq_zero.json' );
var A_EQ_D_OPP_SIGN = require( './fixtures/a_eq_d_opp_sign.json' );
var Z_GT_MULTPLEPS = require( './fixtures/z_gt_multpleps.json' );
var Z_LT_MULTPLEPS = require( './fixtures/z_lt_multpleps.json' );
var SCALE_GT_SAFMAX = require( './fixtures/scale_gt_safmax.json' );
var SCALE_LT_SAFMIN = require( './fixtures/scale_lt_safmin.json' );
var Z_LT_MULTPLEPS_B_EQ_ZERO = require( './fixtures/z_lt_mutpleps_b_eq_zero.json' );


// TESTS //
Expand Down Expand Up @@ -363,3 +366,192 @@ tape( 'the function returns expected output for Z < MULTPL * EPS', function test

t.end();
});

tape( 'the function returns expected output for very large values', function test( t ) {
var RT1R_OUT;
var RT1I_OUT;
var RT2R_OUT;
var RT2I_OUT;
var CS_OUT;
var SN_OUT;
var A_OUT;
var B_OUT;
var C_OUT;
var D_OUT;
var data;
var RT1R;
var RT1I;
var RT2R;
var RT2I;
var CS;
var SN;
var A;
var B;
var C;
var D;

data = SCALE_GT_SAFMAX;

A = new Float64Array( data.A );
B = new Float64Array( data.B );
C = new Float64Array( data.C );
D = new Float64Array( data.D );
RT1R = new Float64Array( data.RT1R );
RT1I = new Float64Array( data.RT1I );
RT2R = new Float64Array( data.RT2R );
RT2I = new Float64Array( data.RT2I );
CS = new Float64Array( data.CS );
SN = new Float64Array( data.SN );

dlanv2( A, data.offsetA, B, data.offsetB, C, data.offsetC, D, data.offsetD, RT1R, data.offsetRT1R, RT1I, data.offsetRT1I, RT2R, data.offsetRT2R, RT2I, data.offsetRT2I, CS, data.offsetCS, SN, data.offsetSN );

A_OUT = new Float64Array( data.A_OUT );
B_OUT = new Float64Array( data.B_OUT );
C_OUT = new Float64Array( data.C_OUT );
D_OUT = new Float64Array( data.D_OUT );
RT1R_OUT = new Float64Array( data.RT1R_OUT );
RT1I_OUT = new Float64Array( data.RT1I_OUT );
RT2R_OUT = new Float64Array( data.RT2R_OUT );
RT2I_OUT = new Float64Array( data.RT2I_OUT );
CS_OUT = new Float64Array( data.CS_OUT );
SN_OUT = new Float64Array( data.SN_OUT );

t.deepEqual( A, A_OUT, 'returns expected value' );
t.deepEqual( B, B_OUT, 'returns expected value' );
t.deepEqual( C, C_OUT, 'returns expected value' );
t.deepEqual( D, D_OUT, 'returns expected value' );
t.deepEqual( RT1R, RT1R_OUT, 'returns expected value' );
t.deepEqual( RT1I, RT1I_OUT, 'returns expected value' );
t.deepEqual( RT2R, RT2R_OUT, 'returns expected value' );
t.deepEqual( RT2I, RT2I_OUT, 'returns expected value' );
t.deepEqual( CS, CS_OUT, 'returns expected value' );
t.deepEqual( SN, SN_OUT, 'returns expected value' );

t.end();
});

tape( 'the function returns expected output for very small values', function test( t ) {
var RT1R_OUT;
var RT1I_OUT;
var RT2R_OUT;
var RT2I_OUT;
var CS_OUT;
var SN_OUT;
var A_OUT;
var B_OUT;
var C_OUT;
var D_OUT;
var data;
var RT1R;
var RT1I;
var RT2R;
var RT2I;
var CS;
var SN;
var A;
var B;
var C;
var D;

data = SCALE_LT_SAFMIN;

A = new Float64Array( data.A );
B = new Float64Array( data.B );
C = new Float64Array( data.C );
D = new Float64Array( data.D );
RT1R = new Float64Array( data.RT1R );
RT1I = new Float64Array( data.RT1I );
RT2R = new Float64Array( data.RT2R );
RT2I = new Float64Array( data.RT2I );
CS = new Float64Array( data.CS );
SN = new Float64Array( data.SN );

dlanv2( A, data.offsetA, B, data.offsetB, C, data.offsetC, D, data.offsetD, RT1R, data.offsetRT1R, RT1I, data.offsetRT1I, RT2R, data.offsetRT2R, RT2I, data.offsetRT2I, CS, data.offsetCS, SN, data.offsetSN );

A_OUT = new Float64Array( data.A_OUT );
B_OUT = new Float64Array( data.B_OUT );
C_OUT = new Float64Array( data.C_OUT );
D_OUT = new Float64Array( data.D_OUT );
RT1R_OUT = new Float64Array( data.RT1R_OUT );
RT1I_OUT = new Float64Array( data.RT1I_OUT );
RT2R_OUT = new Float64Array( data.RT2R_OUT );
RT2I_OUT = new Float64Array( data.RT2I_OUT );
CS_OUT = new Float64Array( data.CS_OUT );
SN_OUT = new Float64Array( data.SN_OUT );

t.deepEqual( A, A_OUT, 'returns expected value' );
t.deepEqual( B, B_OUT, 'returns expected value' );
t.deepEqual( C, C_OUT, 'returns expected value' );
t.deepEqual( D, D_OUT, 'returns expected value' );
t.deepEqual( RT1R, RT1R_OUT, 'returns expected value' );
t.deepEqual( RT1I, RT1I_OUT, 'returns expected value' );
t.deepEqual( RT2R, RT2R_OUT, 'returns expected value' );
t.deepEqual( RT2I, RT2I_OUT, 'returns expected value' );
t.deepEqual( CS, CS_OUT, 'returns expected value' );
t.deepEqual( SN, SN_OUT, 'returns expected value' );

t.end();
});

tape( 'the function returns expected output when B = 0 post rotation', function test( t ) {
var RT1R_OUT;
var RT1I_OUT;
var RT2R_OUT;
var RT2I_OUT;
var CS_OUT;
var SN_OUT;
var A_OUT;
var B_OUT;
var C_OUT;
var D_OUT;
var data;
var RT1R;
var RT1I;
var RT2R;
var RT2I;
var CS;
var SN;
var A;
var B;
var C;
var D;

data = Z_LT_MULTPLEPS_B_EQ_ZERO;

A = new Float64Array( data.A );
B = new Float64Array( data.B );
C = new Float64Array( data.C );
D = new Float64Array( data.D );
RT1R = new Float64Array( data.RT1R );
RT1I = new Float64Array( data.RT1I );
RT2R = new Float64Array( data.RT2R );
RT2I = new Float64Array( data.RT2I );
CS = new Float64Array( data.CS );
SN = new Float64Array( data.SN );

dlanv2( A, data.offsetA, B, data.offsetB, C, data.offsetC, D, data.offsetD, RT1R, data.offsetRT1R, RT1I, data.offsetRT1I, RT2R, data.offsetRT2R, RT2I, data.offsetRT2I, CS, data.offsetCS, SN, data.offsetSN );

A_OUT = new Float64Array( data.A_OUT );
B_OUT = new Float64Array( data.B_OUT );
C_OUT = new Float64Array( data.C_OUT );
D_OUT = new Float64Array( data.D_OUT );
RT1R_OUT = new Float64Array( data.RT1R_OUT );
RT1I_OUT = new Float64Array( data.RT1I_OUT );
RT2R_OUT = new Float64Array( data.RT2R_OUT );
RT2I_OUT = new Float64Array( data.RT2I_OUT );
CS_OUT = new Float64Array( data.CS_OUT );
SN_OUT = new Float64Array( data.SN_OUT );

t.deepEqual( A, A_OUT, 'returns expected value' );
t.deepEqual( B, B_OUT, 'returns expected value' );
t.deepEqual( C, C_OUT, 'returns expected value' );
t.deepEqual( D, D_OUT, 'returns expected value' );
t.deepEqual( RT1R, RT1R_OUT, 'returns expected value' );
t.deepEqual( RT1I, RT1I_OUT, 'returns expected value' );
t.deepEqual( RT2R, RT2R_OUT, 'returns expected value' );
t.deepEqual( RT2I, RT2I_OUT, 'returns expected value' );
t.deepEqual( CS, CS_OUT, 'returns expected value' );
t.deepEqual( SN, SN_OUT, 'returns expected value' );

t.end();
});
0