diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/NOTICE b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/NOTICE
new file mode 100644
index 000000000000..1ff5cb1e7591
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/NOTICE
@@ -0,0 +1,52 @@
+Derived from Reference-LAPACK DSYCONVF_ROOK at commit
+2e5d9c1273435fbd953adb294ed603e4789afaba (SRC/dsyconvf_rook.f).
+The JavaScript and C storage algorithms retain the following BSD terms.
+
+Copyright (c) 1992-2025 The University of Tennessee and The University
+ of Tennessee Research Foundation. All rights
+ reserved.
+Copyright (c) 2000-2025 The University of California Berkeley. All
+ rights reserved.
+Copyright (c) 2006-2025 The University of Colorado Denver. All rights
+ reserved.
+
+$COPYRIGHT$
+
+Additional copyrights may follow
+
+$HEADER$
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+- Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer listed
+ in this license in the documentation and/or other materials
+ provided with the distribution.
+
+- Neither the name of the copyright holders nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+The copyright holders provide no reassurances that the source code
+provided does not infringe any patent, copyright, or any other
+intellectual property rights of third parties. The copyright holders
+disclaim any liability to any recipient for claims brought against
+recipient by any third party for infringement of that parties
+intellectual property rights.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/README.md b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/README.md
new file mode 100644
index 000000000000..a93e42d752ff
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/README.md
@@ -0,0 +1,402 @@
+
+
+# dsyconvfRook
+
+> Convert or revert symmetric indefinite rook-factor storage.
+
+
+
+The routine converts the selected triangle of an existing symmetric indefinite rook factorization between the storage used by `DSYTRF_ROOK` and the separated block-diagonal storage used by `DSYTRF_RK`. Conversion extracts the off-diagonal elements of 2-by-2 diagonal blocks into `E`, zeros their matrix entries, and applies the recorded row interchanges. Reversion reverses the interchanges and restores those matrix entries from `E`.
+
+The routine changes storage; it does not compute a factorization, complete the unstored triangle, or test whether the factors are mathematically valid.
+
+
+
+
+
+
+
+## Usage
+
+```javascript
+var dsyconvfRook = require( '@stdlib/lapack/base/dsyconvf-rook' );
+```
+
+#### dsyconvfRook( order, uplo, way, N, A, LDA, E, IPIV )
+
+Converts or reverts rook-factor storage in place and returns `0` on success.
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+
+// An upper-triangular 2x2 factor; 999 guards the other triangle:
+var A = new Float64Array( [ 0.0, 2.0, 999.0, 0.0 ] );
+var E = new Float64Array( 2 );
+
+// The distinct negative pivots retain the LAPACK sign and 1-based targets:
+var IPIV = new Int32Array( [ -1, -2 ] );
+
+var info = dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E, IPIV );
+// returns 0
+// A => [ 0.0, 0.0, 999.0, 0.0 ]
+// E => [ 0.0, 2.0 ]
+// IPIV => [ -1, -2 ]
+
+info = dsyconvfRook( 'row-major', 'upper', 'revert', 2, A, 2, E, IPIV );
+// returns 0
+// A => [ 0.0, 2.0, 999.0, 0.0 ]
+// E => [ 0.0, 2.0 ]
+```
+
+The function has the following parameters:
+
+- **order**: storage layout, either `'row-major'` or `'column-major'`.
+- **uplo**: stored triangle, either `'upper'` or `'lower'`.
+- **way**: either `'convert'` or `'revert'`.
+- **N**: nonnegative safe integer matrix order, at most `2147483647`.
+- **A**: input/output `Float64Array` containing the full leading `N`-by-`N` matrix view. Only the stored triangle is modified.
+- **LDA**: leading dimension, a safe integer at least `max(1,N)`. Matrix entry `(i,j)` is `A[i*LDA+j]` in row-major order and `A[i+j*LDA]` in column-major order.
+- **E**: `Float64Array` with `N` indexed elements. Conversion writes the off-diagonal block values; reversion reads them and leaves `E` unchanged.
+- **IPIV**: read-only `Int32Array` with `N` indexed, unchanged signed **1-based** LAPACK rook pivots.
+
+Indexing starts at each typed-array view's first element. Typed-array views can introduce byte offsets; the function honors those offsets.
+
+
+
+#### dsyconvfRook.ndarray( uplo, way, N, A, strideA1, strideA2, offsetA, E, strideE, offsetE, IPIV, strideIPIV, offsetIPIV )
+
+Converts or reverts factor storage using explicit element strides and offsets and returns `0` on success.
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+
+var A = new Float64Array( [ 7.0, 0.0, 2.0, 999.0, 0.0, 7.0 ] );
+var E = new Float64Array( [ 8.0, 0.0, 0.0, 8.0 ] );
+var IPIV = new Int32Array( [ 9, -1, -2, 9 ] );
+
+var info = dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 1, E, 1, 1, IPIV, 1, 1 );
+// returns 0
+// A => [ 7.0, 0.0, 0.0, 999.0, 0.0, 7.0 ]
+// E => [ 8.0, 0.0, 2.0, 8.0 ]
+// IPIV => [ 9, -1, -2, 9 ]
+```
+
+The additional parameters have the following meanings:
+
+- **strideA1**: matrix row stride.
+- **strideA2**: matrix column stride.
+- **offsetA**: starting index for `A`.
+- **strideE**: stride for `E`.
+- **offsetE**: starting index for `E`.
+- **strideIPIV**: stride for `IPIV`.
+- **offsetIPIV**: starting index for `IPIV`.
+
+All strides and offsets are in elements, relative to their respective typed-array views. The function indexes matrix entry `(i,j)` as `A[offsetA+i*strideA1+j*strideA2]`, vector element `i` as `E[offsetE+i*strideE]`, and pivot element `i` as `IPIV[offsetIPIV+i*strideIPIV]`. Positive and negative independent strides are supported.
+
+
+
+
+
+
+
+## Notes
+
+- **Pivot encoding is signed and 1-based.** A positive pivot `p` identifies row `p-1`. Adjacent negative pivots identify a 2-by-2 block; each identifies row `abs(p)-1`. The pair values can differ and must remain unchanged. In particular, `-1` retains both the first-row target and its negative block marker. This package does not use the unsigned zero-based pivot convention of `dlaswp` or `dgttrf`.
+- Every pivot must be nonzero and in `[-N,N]`. Upper storage is parsed from row `N` downward: positive targets cannot exceed the current row, and both targets in a negative pair cannot exceed its second row. Lower storage is parsed upward: positive targets cannot precede the current row, and both targets in a negative pair cannot precede its first row. Incomplete or mixed-sign negative pairs are rejected before routine-owned writes.
+- For upper storage, conversion copies each 2-by-2 block's `A(i-1,i)` to `E(i)`; `E(0)` and non-block entries become positive zero. For lower storage, it copies `A(i+1,i)` to `E(i)`; `E(N-1)` and non-block entries become positive zero. Extraction precedes the row interchanges; reversion reverses the interchanges before restoration.
+- The diagonal, opposite triangle, padding, and `IPIV` are preserved in both directions. Reversion preserves all `E` entries.
+- For `N>0`, the actual backing stores of `A`, `E`, and `IPIV` must be ordinary `ArrayBuffer` objects. Views backed by `SharedArrayBuffer` are rejected with a `TypeError` before routine-owned writes, including views of shared buffers returned by `structuredClone`. A shadowed `.buffer` property does not change this requirement.
+- All active metadata and index arithmetic must use exact safe integers. The full leading `N`-by-`N` matrix view must fit `A` and be injective. For `N>1`, `E` cannot have zero stride in either direction. Read-only `IPIV` may have zero stride if its repeated values form a valid complete pivot sequence.
+- The full matrix view and the `N`-element `E` and `IPIV` views must have pairwise disjoint **indexed-byte envelopes**. The function rejects overlapping envelopes even when interleaved active slots do not coincide. Disjoint subviews of one ordinary `ArrayBuffer` are permitted.
+- Distinct ordinary `ArrayBuffer` objects created by JavaScript own separate storage. The caller must not supply exotic `ArrayBuffer` objects whose physical storage is externally aliased by a foreign native addon; the JavaScript implementation cannot establish disjointness for those objects. The native bridge additionally rejects overlapping actual indexed-pointer byte envelopes, independently of JavaScript object identity.
+- After validating the scalar selectors, `N`, and standard-interface `LDA`, `N=0` returns `0` without accessing the buffers or unused ndarray metadata. Invalid scalar arguments still fail for `N=0`; `LDA` must still be at least `1`. For `N=1`, conversion writes `E(0)=+0` and reversion preserves `E`.
+- Invalid selectors and active buffer types throw a `TypeError`. Invalid dimensions, metadata, bounds, matrix collisions, byte-envelope aliasing, or pivots throw a `RangeError` before routine-owned writes. This guarantee does not exclude side effects from caller-defined getters or coercions. Concurrent external mutation is unsupported.
+- An unavailable native addon or metadata outside its configured integer range uses the same validated JavaScript implementation. Rejected public preconditions remain errors.
+- Values are copied or swapped; no universal JavaScript NaN-payload preservation or nonfinite-factorization guarantee is made.
+
+
+
+
+
+
+
+## Examples
+
+
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var dsyconvfRook = require( '@stdlib/lapack/base/dsyconvf-rook' );
+
+// Upper-triangular rook storage of a symmetric indefinite 2x2 block:
+var A = new Float64Array( [ 0.0, 2.0, 999.0, 0.0 ] );
+var E = new Float64Array( [ -9.0, -9.0 ] );
+
+// Keep the distinct negative LAPACK pivots unchanged and 1-based:
+var IPIV = new Int32Array( [ -1, -2 ] );
+
+var info = dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E, IPIV );
+if ( info !== 0 || A[ 1 ] !== 0.0 || E[ 0 ] !== 0.0 || E[ 1 ] !== 2.0 ) {
+ throw new Error( 'Unexpected conversion result.' );
+}
+console.log( 'Converted A: %s', A.join( ', ' ) );
+console.log( 'Extracted E: %s', E.join( ', ' ) );
+
+// Reversion restores the off-diagonal value and preserves E and IPIV:
+info = dsyconvfRook( 'row-major', 'upper', 'revert', 2, A, 2, E, IPIV );
+if (
+ info !== 0 ||
+ A[ 1 ] !== 2.0 ||
+ A[ 2 ] !== 999.0 ||
+ E[ 1 ] !== 2.0 ||
+ IPIV[ 0 ] !== -1 ||
+ IPIV[ 1 ] !== -2
+) {
+ throw new Error( 'Unexpected reversion result.' );
+}
+console.log( 'Reverted A: %s', A.join( ', ' ) );
+console.log( 'Unchanged pivots: %s', IPIV.join( ', ' ) );
+```
+
+
+
+
+
+
+
+* * *
+
+
+
+## C APIs
+
+
+
+The C interfaces use the same storage and unchanged signed 1-based pivot encoding. `LAPACK_INT` follows the configured LAPACK integer width. Calls use `API_SUFFIX` to honor optional API suffixing.
+
+
+
+
+
+
+
+### Usage
+
+```c
+#include "stdlib/lapack/base/dsyconvf_rook.h"
+```
+
+#### c_dsyconvf_rook( layout, uplo, way, N, A, LDA, E, IPIV )
+
+Converts or reverts factor storage. `layout` is `LAPACK_ROW_MAJOR` or `LAPACK_COL_MAJOR`; `uplo` is `LAPACK_UPPER_TRIANGLE` or `LAPACK_LOWER_TRIANGLE`; `way` is `'C'`/`'c'` for conversion or `'R'`/`'r'` for reversion.
+
+```c
+LAPACK_INT API_SUFFIX(c_dsyconvf_rook)( LAPACK_LAYOUT layout, LAPACK_UPLO uplo, char way, LAPACK_INT N, double *A, LAPACK_INT LDA, double *E, const LAPACK_INT *IPIV );
+```
+
+The function accepts the following arguments:
+
+- **layout**: matrix storage layout.
+- **uplo**: stored matrix triangle.
+- **way**: conversion or reversion selector.
+- **N**: nonnegative matrix order.
+- **A**: `[in,out] double*` factor storage.
+- **LDA**: leading dimension, at least `max(1,N)`.
+- **E**: `[out] double*` off-diagonal block values for conversion; `[in] double*` values for reversion.
+- **IPIV**: `[in] const LAPACK_INT*` read-only, unchanged signed 1-based pivots.
+
+The function returns `0` on success or the negative 1-based position of a rejected argument: layout `-1`, triangle `-2`, way `-3`, order `-4`, null active `A` `-5`, leading dimension `-6`, null active `E` `-7`, and null or malformed active `IPIV` `-8`. Unrepresentable active matrix arithmetic maps to `LDA` (`-6`), while unrepresentable `E` or `IPIV` indices map to `-7` or `-8`, respectively.
+
+
+
+#### c_dsyconvf_rook_ndarray( uplo, way, N, A, strideA1, strideA2, offsetA, E, strideE, offsetE, IPIV, strideIPIV, offsetIPIV )
+
+Uses explicit element strides and offsets.
+
+```c
+LAPACK_INT API_SUFFIX(c_dsyconvf_rook_ndarray)( LAPACK_UPLO uplo, char way, LAPACK_INT N, double *A, LAPACK_INT strideA1, LAPACK_INT strideA2, LAPACK_INT offsetA, double *E, LAPACK_INT strideE, LAPACK_INT offsetE, const LAPACK_INT *IPIV, LAPACK_INT strideIPIV, LAPACK_INT offsetIPIV );
+```
+
+Strides and offsets have the same element-index meanings as the JavaScript ndarray interface. The function returns `0` on success or a negative argument position:
+
+| Argument | Rejected condition / status |
+| --- | --- |
+| `uplo`, `way`, `N` | Invalid scalar / `-1`, `-2`, `-3`. |
+| `A` | Null active pointer / `-4`. |
+| `strideA1` | Invalid row stride / `-5`. |
+| `strideA2` | Invalid column stride or matrix collision / `-6`. |
+| `offsetA` | Invalid matrix offset or index arithmetic / `-7`. |
+| `E` | Null active pointer / `-8`. |
+| `strideE` | Invalid mutable vector stride / `-9`. |
+| `offsetE` | Invalid vector offset or index arithmetic / `-10`. |
+| `IPIV` | Null pointer or malformed active pivot sequence / `-11`. |
+| `strideIPIV` | Invalid pivot stride arithmetic / `-12`. |
+| `offsetIPIV` | Invalid pivot offset or index arithmetic / `-13`. |
+
+
+
+
+
+
+
+### Notes
+
+- C validates scalar selectors and dimensions before the `N=0` quick return. The standard interface also validates `LDA>=1`. Empty calls may use null buffers; unused ndarray strides and offsets are ignored.
+- C validates active metadata and the complete pivot sequence before mutation. The returning LAPACK error helper reports rejected arguments; the interfaces return the negative statuses documented above.
+- Pointer-only C interfaces cannot infer allocation capacities. The caller must supply sufficient physical storage, an injective full matrix view, and pairwise disjoint indexed-byte envelopes for `A`, `E`, and `IPIV`. No concurrent external mutation is supported.
+- Active arithmetic, pointer indices, and DSWAP's indexed and post-increment positions must fit the actual configured integer widths. `LAPACK_INT` and the dependency's `CBLAS_INT` are separate requirements; API suffixing alone does not change either width.
+- Both interfaces preserve `IPIV`, the diagonal, opposite triangle, and padding. Reversion also preserves `E`.
+
+
+
+
+
+
+
+### Examples
+
+```c
+#include "stdlib/lapack/base/dsyconvf_rook.h"
+#include "stdlib/lapack/base/shared.h"
+#include
+#include
+#include
+
+int main( void ) {
+ // Upper rook-factor storage; 999 is an untouched opposite-triangle guard:
+ double A[] = { 0.0, 2.0, 999.0, 0.0 };
+ double E[] = { -9.0, -9.0 };
+ const LAPACK_INT IPIV[] = { -1, -2 };
+ LAPACK_INT info;
+
+ // Convert the genuine 2x2 block without changing signed 1-based pivots:
+ info = API_SUFFIX(c_dsyconvf_rook)( LAPACK_ROW_MAJOR, LAPACK_UPPER_TRIANGLE, 'C', 2, A, 2, E, IPIV );
+ if ( info != 0 || A[ 1 ] != 0.0 || E[ 0 ] != 0.0 || signbit( E[ 0 ] ) || E[ 1 ] != 2.0 ) {
+ fprintf( stderr, "Unexpected conversion result.\n" );
+ return EXIT_FAILURE;
+ }
+ printf( "Converted A: %g, %g, %g, %g\n", A[ 0 ], A[ 1 ], A[ 2 ], A[ 3 ] );
+ printf( "Extracted E: %g, %g\n", E[ 0 ], E[ 1 ] );
+
+ // Revert with row and column strides expressed in elements:
+ info = API_SUFFIX(c_dsyconvf_rook_ndarray)( LAPACK_UPPER_TRIANGLE, 'R', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 );
+ if ( info != 0 || A[ 1 ] != 2.0 || A[ 2 ] != 999.0 || E[ 1 ] != 2.0 ) {
+ fprintf( stderr, "Unexpected reversion result.\n" );
+ return EXIT_FAILURE;
+ }
+ printf( "Reverted A: %g, %g, %g, %g\n", A[ 0 ], A[ 1 ], A[ 2 ], A[ 3 ] );
+ return EXIT_SUCCESS;
+}
+```
+
+
+
+
+
+
+
+
+
+* * *
+
+
+
+## References
+
+The conversion algorithm is adapted from [Reference-LAPACK `DSYCONVF_ROOK`][lapack-source] at commit `2e5d9c1273435fbd953adb294ed603e4789afaba`. The original Reference-LAPACK copyright, conditions, and disclaimer are retained in the package [NOTICE][lapack-notice] and reproduced below for source and binary distributions.
+
+```text
+Copyright (c) 1992-2025 The University of Tennessee and The University
+ of Tennessee Research Foundation. All rights
+ reserved.
+Copyright (c) 2000-2025 The University of California Berkeley. All
+ rights reserved.
+Copyright (c) 2006-2025 The University of Colorado Denver. All rights
+ reserved.
+
+$COPYRIGHT$
+
+Additional copyrights may follow
+
+$HEADER$
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+- Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer listed
+ in this license in the documentation and/or other materials
+ provided with the distribution.
+
+- Neither the name of the copyright holders nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+The copyright holders provide no reassurances that the source code
+provided does not infringe any patent, copyright, or any other
+intellectual property rights of third parties. The copyright holders
+disclaim any liability to any recipient for claims brought against
+recipient by any third party for infringement of that parties
+intellectual property rights.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[lapack-source]: https://github.com/Reference-LAPACK/lapack/blob/2e5d9c1273435fbd953adb294ed603e4789afaba/SRC/dsyconvf_rook.f
+
+[lapack-notice]: ./NOTICE
+
+
+
+
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/benchmark.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/benchmark.js
new file mode 100644
index 000000000000..64e04a21a291
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/benchmark.js
@@ -0,0 +1,135 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var bench = require( '@stdlib/bench' );
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var format = require( '@stdlib/string/format' );
+var pkg = require( './../package.json' ).name;
+var dsyconvfRook = require( './../lib' );
+
+
+// FUNCTIONS //
+
+/**
+* Creates a bounded conversion/reversion benchmark.
+*
+* @private
+* @param {PositiveInteger} N - matrix order
+* @param {string} uplo - stored triangle
+* @returns {Function} benchmark function
+*/
+function createBenchmark( N, uplo ) {
+ var IPIV;
+ var A;
+ var E;
+ var i;
+ var j;
+
+ A = new Float64Array( N*N );
+ E = new Float64Array( N );
+ IPIV = new Int32Array( N );
+ for ( i = 0; i < N; i++ ) {
+ IPIV[ i ] = i + 1;
+ for ( j = 0; j < N; j++ ) {
+ A[ (i*N)+j ] = i + j + 1.0;
+ }
+ }
+ // The first two rows form a 2x2 block with distinct negative pivots:
+ IPIV[ 0 ] = -1;
+ IPIV[ 1 ] = -2;
+ return benchmark;
+
+ /**
+ * Benchmark function.
+ *
+ * @private
+ * @param {Benchmark} b - benchmark instance
+ */
+ function benchmark( b ) {
+ var info;
+ var i;
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ info = dsyconvfRook( 'row-major', uplo, 'convert', N, A, N, E, IPIV );
+ if ( info !== 0 ) {
+ b.fail( 'should return a success status code' );
+ break;
+ }
+ info = dsyconvfRook( 'row-major', uplo, 'revert', N, A, N, E, IPIV );
+ if ( info !== 0 ) {
+ b.fail( 'should return a success status code' );
+ break;
+ }
+ }
+ b.toc();
+ if (
+ A[ 1 ] !== 2.0 ||
+ A[ N ] !== 2.0 ||
+ IPIV[ 0 ] !== -1 ||
+ IPIV[ 1 ] !== -2
+ ) {
+ b.fail( 'should preserve factor storage after a complete cycle' );
+ }
+ if (
+ ( uplo === 'upper' && E[ 1 ] !== 2.0 ) ||
+ ( uplo === 'lower' && E[ 0 ] !== 2.0 )
+ ) {
+ b.fail( 'should extract the known off-diagonal block value' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+ }
+}
+
+
+// MAIN //
+
+/**
+* Main execution sequence.
+*
+* @private
+*/
+function main() {
+ var options;
+ var sizes;
+ var uplos;
+ var name;
+ var i;
+ var j;
+
+ options = {
+ 'iterations': 1000,
+ 'repeats': 2
+ };
+ sizes = [ 8, 32 ];
+ uplos = [ 'upper', 'lower' ];
+ for ( i = 0; i < sizes.length; i++ ) {
+ for ( j = 0; j < uplos.length; j++ ) {
+ name = format( '%s:triangle=%s:N=%d', pkg, uplos[ j ], sizes[ i ] );
+ bench( name, options, createBenchmark( sizes[ i ], uplos[ j ] ) );
+ }
+ }
+}
+
+main();
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/benchmark.ndarray.js
new file mode 100644
index 000000000000..4d3165295984
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/benchmark.ndarray.js
@@ -0,0 +1,135 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var bench = require( '@stdlib/bench' );
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var format = require( '@stdlib/string/format' );
+var pkg = require( './../package.json' ).name;
+var dsyconvfRook = require( './../lib' ).ndarray;
+
+
+// FUNCTIONS //
+
+/**
+* Creates a bounded conversion/reversion benchmark.
+*
+* @private
+* @param {PositiveInteger} N - matrix order
+* @param {string} uplo - stored triangle
+* @returns {Function} benchmark function
+*/
+function createBenchmark( N, uplo ) {
+ var IPIV;
+ var A;
+ var E;
+ var i;
+ var j;
+
+ A = new Float64Array( N*N );
+ E = new Float64Array( N );
+ IPIV = new Int32Array( N );
+ for ( i = 0; i < N; i++ ) {
+ IPIV[ i ] = i + 1;
+ for ( j = 0; j < N; j++ ) {
+ A[ (i*N)+j ] = i + j + 1.0;
+ }
+ }
+ // The first two rows form a 2x2 block with distinct negative pivots:
+ IPIV[ 0 ] = -1;
+ IPIV[ 1 ] = -2;
+ return benchmark;
+
+ /**
+ * Benchmark function.
+ *
+ * @private
+ * @param {Benchmark} b - benchmark instance
+ */
+ function benchmark( b ) {
+ var info;
+ var i;
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ info = dsyconvfRook( uplo, 'convert', N, A, N, 1, 0, E, 1, 0, IPIV, 1, 0 );
+ if ( info !== 0 ) {
+ b.fail( 'should return a success status code' );
+ break;
+ }
+ info = dsyconvfRook( uplo, 'revert', N, A, N, 1, 0, E, 1, 0, IPIV, 1, 0 );
+ if ( info !== 0 ) {
+ b.fail( 'should return a success status code' );
+ break;
+ }
+ }
+ b.toc();
+ if (
+ A[ 1 ] !== 2.0 ||
+ A[ N ] !== 2.0 ||
+ IPIV[ 0 ] !== -1 ||
+ IPIV[ 1 ] !== -2
+ ) {
+ b.fail( 'should preserve factor storage after a complete cycle' );
+ }
+ if (
+ ( uplo === 'upper' && E[ 1 ] !== 2.0 ) ||
+ ( uplo === 'lower' && E[ 0 ] !== 2.0 )
+ ) {
+ b.fail( 'should extract the known off-diagonal block value' );
+ }
+ b.pass( 'benchmark finished' );
+ b.end();
+ }
+}
+
+
+// MAIN //
+
+/**
+* Main execution sequence.
+*
+* @private
+*/
+function main() {
+ var options;
+ var sizes;
+ var uplos;
+ var name;
+ var i;
+ var j;
+
+ options = {
+ 'iterations': 1000,
+ 'repeats': 2
+ };
+ sizes = [ 8, 32 ];
+ uplos = [ 'upper', 'lower' ];
+ for ( i = 0; i < sizes.length; i++ ) {
+ for ( j = 0; j < uplos.length; j++ ) {
+ name = format( '%s:ndarray:triangle=%s:N=%d', pkg, uplos[ j ], sizes[ i ] );
+ bench( name, options, createBenchmark( sizes[ i ], uplos[ j ] ) );
+ }
+ }
+}
+
+main();
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/c/Makefile b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/c/Makefile
new file mode 100644
index 000000000000..979768abbcec
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/c/Makefile
@@ -0,0 +1,146 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#/
+
+# VARIABLES #
+
+ifndef VERBOSE
+ QUIET := @
+else
+ QUIET :=
+endif
+
+# Determine the OS ([1][1], [2][2]).
+#
+# [1]: https://en.wikipedia.org/wiki/Uname#Examples
+# [2]: http://stackoverflow.com/a/27776822/2225624
+OS ?= $(shell uname)
+ifneq (, $(findstring MINGW,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring MSYS,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring CYGWIN,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring Windows_NT,$(OS)))
+ OS := WINNT
+endif
+endif
+endif
+endif
+
+# Define the program used for compiling C source files:
+ifdef C_COMPILER
+ CC := $(C_COMPILER)
+else
+ CC := gcc
+endif
+
+# Define the command-line options when compiling C files:
+CFLAGS ?= \
+ -std=c99 \
+ -O3 \
+ -Wall \
+ -pedantic
+
+# Determine whether to generate position independent code ([1][1], [2][2]).
+#
+# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options
+# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option
+ifeq ($(OS), WINNT)
+ fPIC ?=
+else
+ fPIC ?= -fPIC
+endif
+
+# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`):
+INCLUDE ?=
+
+# List of source files:
+SOURCE_FILES ?=
+
+# List of libraries (e.g., `-lopenblas -lpthread`):
+LIBRARIES ?=
+
+# List of library paths (e.g., `-L /foo/bar -L /beep/boop`):
+LIBPATH ?=
+
+# List of C targets:
+c_targets := benchmark.out
+
+
+# RULES #
+
+#/
+# Compiles source files.
+#
+# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`)
+# @param {string} [CFLAGS] - C compiler options
+# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
+# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`)
+# @param {string} [SOURCE_FILES] - list of source files
+# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`)
+# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`)
+#
+# @example
+# make
+#
+# @example
+# make all
+#/
+all: $(c_targets)
+
+.PHONY: all
+
+#/
+# Compiles C source files.
+#
+# @private
+# @param {string} CC - C compiler (e.g., `gcc`)
+# @param {string} CFLAGS - C compiler options
+# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
+# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`)
+# @param {string} SOURCE_FILES - list of source files
+# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`)
+# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`)
+#/
+$(c_targets): %.out: %.c
+ $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES)
+
+#/
+# Runs compiled benchmarks.
+#
+# @example
+# make run
+#/
+run: $(c_targets)
+ $(QUIET) ./$<
+
+.PHONY: run
+
+#/
+# Removes generated files.
+#
+# @example
+# make clean
+#/
+clean:
+ $(QUIET) -rm -f *.o *.out
+
+.PHONY: clean
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/c/benchmark.c
new file mode 100644
index 000000000000..1595b7f729ba
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/benchmark/c/benchmark.c
@@ -0,0 +1,164 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include "stdlib/lapack/base/dsyconvf_rook.h"
+#include "stdlib/lapack/base/shared.h"
+#include
+#include
+#include
+
+#define ITERATIONS 1000
+#define REPEATS 2
+
+/**
+* Returns a clock time in seconds.
+*
+* @return clock time
+*/
+static double tic( void ) {
+ struct timeval now;
+ gettimeofday( &now, NULL );
+ return (double)now.tv_sec + (double)now.tv_usec/1.0e6;
+}
+
+/**
+* Runs conversion/reversion cycles and validates the final factor storage.
+*
+* @param N matrix order
+* @param uplo stored triangle
+* @param ndarray whether to use the ndarray interface
+* @return elapsed seconds or -1 on failure
+*/
+static double benchmark( const LAPACK_INT N, const LAPACK_UPLO uplo, const int ndarray ) {
+ double *A;
+ double *E;
+ LAPACK_INT *IPIV;
+ LAPACK_INT info;
+ LAPACK_INT i;
+ LAPACK_INT j;
+ double elapsed;
+ double t;
+ int k;
+
+ A = (double *)malloc( (size_t)(N*N) * sizeof( double ) );
+ E = (double *)malloc( (size_t)N * sizeof( double ) );
+ IPIV = (LAPACK_INT *)malloc( (size_t)N * sizeof( LAPACK_INT ) );
+ if ( A == NULL || E == NULL || IPIV == NULL ) {
+ fprintf( stderr, "Error allocating benchmark buffers.\n" );
+ free( A );
+ free( E );
+ free( IPIV );
+ return -1.0;
+ }
+ for ( i = 0; i < N; i++ ) {
+ IPIV[ i ] = i + 1;
+ E[ i ] = -9.0;
+ for ( j = 0; j < N; j++ ) {
+ A[ (i*N)+j ] = (double)(i+j) + 1.0;
+ }
+ }
+ IPIV[ 0 ] = -1;
+ IPIV[ 1 ] = -2;
+ info = 0;
+
+ t = tic();
+ for ( k = 0; k < ITERATIONS; k++ ) {
+ if ( ndarray ) {
+ info = API_SUFFIX(c_dsyconvf_rook_ndarray)( uplo, 'C', N, A, N, 1, 0, E, 1, 0, IPIV, 1, 0 );
+ } else {
+ info = API_SUFFIX(c_dsyconvf_rook)( LAPACK_ROW_MAJOR, uplo, 'C', N, A, N, E, IPIV );
+ }
+ if ( info != 0 ) {
+ break;
+ }
+ if ( ndarray ) {
+ info = API_SUFFIX(c_dsyconvf_rook_ndarray)( uplo, 'R', N, A, N, 1, 0, E, 1, 0, IPIV, 1, 0 );
+ } else {
+ info = API_SUFFIX(c_dsyconvf_rook)( LAPACK_ROW_MAJOR, uplo, 'R', N, A, N, E, IPIV );
+ }
+ if ( info != 0 ) {
+ break;
+ }
+ }
+ elapsed = tic() - t;
+ if ( info != 0 || IPIV[ 0 ] != -1 || IPIV[ 1 ] != -2 ) {
+ elapsed = -1.0;
+ }
+ for ( i = 0; i < N; i++ ) {
+ for ( j = 0; j < N; j++ ) {
+ if ( A[ (i*N)+j ] != (double)(i+j) + 1.0 ) {
+ elapsed = -1.0;
+ }
+ }
+ }
+ if ( ( uplo == LAPACK_UPPER_TRIANGLE && E[ 1 ] != 2.0 ) || ( uplo == LAPACK_LOWER_TRIANGLE && E[ 0 ] != 2.0 ) ) {
+ elapsed = -1.0;
+ }
+ free( A );
+ free( E );
+ free( IPIV );
+ return elapsed;
+}
+
+/**
+* Main execution sequence.
+*/
+int main( void ) {
+ const LAPACK_INT sizes[] = { 8, 32 };
+ const LAPACK_UPLO uplos[] = { LAPACK_UPPER_TRIANGLE, LAPACK_LOWER_TRIANGLE };
+ double elapsed;
+ int count;
+ int passing;
+ int i;
+ int j;
+ int k;
+ int r;
+
+ count = 0;
+ passing = 0;
+ printf( "TAP version 13\n" );
+ for ( i = 0; i < 2; i++ ) {
+ for ( j = 0; j < 2; j++ ) {
+ for ( k = 0; k < 2; k++ ) {
+ for ( r = 0; r < REPEATS; r++ ) {
+ count += 1;
+ printf( "# c::dsyconvf-rook:N=%d:uplo=%s:ndarray=%d\n", (int)sizes[ i ], j ? "lower" : "upper", k );
+ elapsed = benchmark( sizes[ i ], uplos[ j ], k );
+ if ( elapsed < 0.0 ) {
+ printf( "not ok %d benchmark failed\n", count );
+ } else {
+ printf( " ---\n" );
+ printf( " iterations: %d\n", ITERATIONS );
+ printf( " elapsed: %0.9f\n", elapsed );
+ printf( " ...\n" );
+ printf( "ok %d benchmark finished\n", count );
+ passing += 1;
+ }
+ }
+ }
+ }
+ }
+ printf( "1..%d\n", count );
+ printf( "# total %d\n", count );
+ printf( "# pass %d\n", passing );
+ if ( passing == count ) {
+ printf( "# ok\n" );
+ return EXIT_SUCCESS;
+ }
+ return EXIT_FAILURE;
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/binding.gyp b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/binding.gyp
new file mode 100644
index 000000000000..864d9109e892
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/binding.gyp
@@ -0,0 +1,265 @@
+# @license Apache-2.0
+#
+# Copyright (c) 2018 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A `.gyp` file for building a Node.js native add-on.
+#
+# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md
+# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md
+{
+ # List of files to include in this file:
+ 'includes': [
+ './include.gypi',
+ ],
+
+ # Define variables to be used throughout the configuration for all targets:
+ 'variables': {
+ # Target name should match the add-on export name:
+ 'addon_target_name%': 'addon',
+
+ # Fortran compiler (to override -Dfortran_compiler=):
+ 'fortran_compiler%': 'gfortran',
+
+ # Fortran compiler flags:
+ 'fflags': [
+ # Specify the Fortran standard to which a program is expected to conform:
+ '-std=f95',
+
+ # Indicate that the layout is free-form source code:
+ '-ffree-form',
+
+ # Aggressive optimization:
+ '-O3',
+
+ # Enable commonly used warning options:
+ '-Wall',
+
+ # Warn if source code contains problematic language features:
+ '-Wextra',
+
+ # Warn if a procedure is called without an explicit interface:
+ '-Wimplicit-interface',
+
+ # Do not transform names of entities specified in Fortran source files by appending underscores (i.e., don't mangle names, thus allowing easier usage in C wrappers):
+ '-fno-underscoring',
+
+ # Warn if source code contains Fortran 95 extensions and C-language constructs:
+ '-pedantic',
+
+ # Compile but do not link (output is an object file):
+ '-c',
+ ],
+
+ # Set variables based on the host OS:
+ 'conditions': [
+ [
+ 'OS=="win"',
+ {
+ # Define the object file suffix:
+ 'obj': 'obj',
+ },
+ {
+ # Define the object file suffix:
+ 'obj': 'o',
+ }
+ ], # end condition (OS=="win")
+ ], # end conditions
+ }, # end variables
+
+ # Define compile targets:
+ 'targets': [
+
+ # Target to generate an add-on:
+ {
+ # The target name should match the add-on export name:
+ 'target_name': '<(addon_target_name)',
+
+ # Define dependencies:
+ 'dependencies': [],
+
+ # Define directories which contain relevant include headers:
+ 'include_dirs': [
+ # Local include directory:
+ '<@(include_dirs)',
+ ],
+
+ # List of source files:
+ 'sources': [
+ '<@(src_files)',
+ ],
+
+ # Settings which should be applied when a target's object files are used as linker input:
+ 'link_settings': {
+ # Define libraries:
+ 'libraries': [
+ '<@(libraries)',
+ ],
+
+ # Define library directories:
+ 'library_dirs': [
+ '<@(library_dirs)',
+ ],
+ },
+
+ # C/C++ compiler flags:
+ 'cflags': [
+ # Enable commonly used warning options:
+ '-Wall',
+
+ # Aggressive optimization:
+ '-O3',
+ ],
+
+ # C specific compiler flags:
+ 'cflags_c': [
+ # Specify the C standard to which a program is expected to conform:
+ '-std=c99',
+ ],
+
+ # C++ specific compiler flags:
+ 'cflags_cpp': [
+ # Specify the C++ standard to which a program is expected to conform:
+ '-std=c++11',
+ ],
+
+ # Linker flags:
+ 'ldflags': [],
+
+ # Apply conditions based on the host OS:
+ 'conditions': [
+ [
+ 'OS=="mac"',
+ {
+ # Linker flags:
+ 'ldflags': [
+ '-undefined dynamic_lookup',
+ '-Wl,-no-pie',
+ '-Wl,-search_paths_first',
+ ],
+ },
+ ], # end condition (OS=="mac")
+ [
+ 'OS!="win"',
+ {
+ # C/C++ flags:
+ 'cflags': [
+ # Generate platform-independent code:
+ '-fPIC',
+ ],
+ },
+ ], # end condition (OS!="win")
+ ], # end conditions
+
+ # Define custom build actions for particular inputs:
+ 'rules': [
+ {
+ # Define a rule for processing Fortran files:
+ 'extension': 'f',
+
+ # Define the pathnames to be used as inputs when performing processing:
+ 'inputs': [
+ # Full path of the current input:
+ '<(RULE_INPUT_PATH)'
+ ],
+
+ # Define the outputs produced during processing:
+ 'outputs': [
+ # Store an output object file in a directory for placing intermediate results (only accessible within a single target):
+ '<(INTERMEDIATE_DIR)/<(RULE_INPUT_ROOT).<(obj)'
+ ],
+
+ # Define the rule for compiling Fortran based on the host OS:
+ 'conditions': [
+ [
+ 'OS=="win"',
+
+ # Rule to compile Fortran on Windows:
+ {
+ 'rule_name': 'compile_fortran_windows',
+ 'message': 'Compiling Fortran file <(RULE_INPUT_PATH) on Windows...',
+
+ 'process_outputs_as_sources': 0,
+
+ # Define the command-line invocation:
+ 'action': [
+ '<(fortran_compiler)',
+ '<@(fflags)',
+ '<@(_inputs)',
+ '-o',
+ '<@(_outputs)',
+ ],
+ },
+
+ # Rule to compile Fortran on non-Windows:
+ {
+ 'rule_name': 'compile_fortran_linux',
+ 'message': 'Compiling Fortran file <(RULE_INPUT_PATH) on Linux...',
+
+ 'process_outputs_as_sources': 1,
+
+ # Define the command-line invocation:
+ 'action': [
+ '<(fortran_compiler)',
+ '<@(fflags)',
+ '-fPIC', # generate platform-independent code
+ '<@(_inputs)',
+ '-o',
+ '<@(_outputs)',
+ ],
+ }
+ ], # end condition (OS=="win")
+ ], # end conditions
+ }, # end rule (extension=="f")
+ ], # end rules
+ }, # end target <(addon_target_name)
+
+ # Target to copy a generated add-on to a standard location:
+ {
+ 'target_name': 'copy_addon',
+
+ # Declare that the output of this target is not linked:
+ 'type': 'none',
+
+ # Define dependencies:
+ 'dependencies': [
+ # Require that the add-on be generated before building this target:
+ '<(addon_target_name)',
+ ],
+
+ # Define a list of actions:
+ 'actions': [
+ {
+ 'action_name': 'copy_addon',
+ 'message': 'Copying addon...',
+
+ # Explicitly list the inputs in the command-line invocation below:
+ 'inputs': [],
+
+ # Declare the expected outputs:
+ 'outputs': [
+ '<(addon_output_dir)/<(addon_target_name).node',
+ ],
+
+ # Define the command-line invocation:
+ 'action': [
+ 'cp',
+ '<(PRODUCT_DIR)/<(addon_target_name).node',
+ '<(addon_output_dir)/<(addon_target_name).node',
+ ],
+ },
+ ], # end actions
+ }, # end target copy_addon
+ ], # end targets
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/repl.txt b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/repl.txt
new file mode 100644
index 000000000000..acf0ccf84f5a
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/repl.txt
@@ -0,0 +1,150 @@
+
+{{alias}}( order, uplo, way, N, A, LDA, E, IPIV )
+ Converts or reverts symmetric indefinite rook-factor storage in place.
+
+ IPIV is read-only, signed, and 1-based, exactly as supplied by LAPACK.
+ Adjacent negative values describe a 2x2 block and can differ. The value -1
+ retains the first-row target and the negative block marker.
+
+ Conversion extracts the off-diagonal entries of the 2x2 diagonal blocks
+ into E, zeros their stored matrix entries, and applies row permutations.
+ Reversion undoes the permutations and restores those entries from E.
+ Reversion leaves E unchanged. The diagonal, opposite triangle, padding,
+ and IPIV remain unchanged in both directions.
+
+ The full N-by-N matrix view and N-element E/IPIV indexed-byte envelopes
+ must be pairwise disjoint, even if interleaved active slots differ.
+ Disjoint typed-array views in one ordinary ArrayBuffer are permitted.
+
+ For N>0, all actual typed-array backing stores must be ordinary
+ ArrayBuffer objects. SharedArrayBuffer-backed views are rejected with
+ a TypeError before routine-owned writes, including shared buffers
+ returned by structuredClone. A shadowed .buffer property does not
+ change this rule.
+ Exotic ArrayBuffers with storage externally aliased by foreign native
+ addons are outside the caller contract.
+
+ After scalar validation, N=0 returns 0 without accessing buffers. LDA
+ must still be at least 1. Invalid scalar selectors or dimensions fail
+ even for an empty matrix.
+
+ Parameters
+ ----------
+ order: string
+ Must be 'row-major' or 'column-major'.
+
+ uplo: string
+ Stored triangle. Must be 'upper' or 'lower'.
+
+ way: string
+ Conversion direction. Must be 'convert' or 'revert'.
+
+ N: integer
+ Matrix order. Nonnegative safe integer not exceeding 2147483647.
+
+ A: Float64Array
+ Input/output factor storage. The full leading N-by-N view must fit.
+
+ LDA: integer
+ Leading dimension. Must be at least max(1,N).
+
+ E: Float64Array
+ N off-diagonal block values. Output for conversion; input for
+ reversion.
+
+ IPIV: Int32Array
+ N unchanged signed 1-based LAPACK rook pivot values.
+
+ Returns
+ -------
+ info: number
+ Zero on success.
+
+ Examples
+ --------
+ > var A = new {{alias:@stdlib/array/float64}}( [ 0, 2, 999, 0 ] );
+ > var E = new {{alias:@stdlib/array/float64}}( 2 );
+ > var IPIV = new {{alias:@stdlib/array/int32}}( [ -1, -2 ] );
+ > {{alias}}( 'row-major', 'upper', 'convert', 2, A, 2, E, IPIV )
+ 0
+ > E
+ [ 0.0, 2.0 ]
+ > {{alias}}( 'row-major', 'upper', 'revert', 2, A, 2, E, IPIV )
+ 0
+ > A
+ [ 0.0, 2.0, 999.0, 0.0 ]
+
+
+{{alias}}.ndarray( uplo, way, N, A, sa1, sa2, oa, E, se, oe, IPIV, sp, op )
+ Converts or reverts rook-factor storage using alternative indexing
+ semantics.
+
+ All strides and offsets are element indices relative to each typed-array
+ view. Positive and negative independent strides are supported. The full
+ matrix view must be injective. For N>1, E cannot have zero stride.
+ Read-only IPIV may have zero stride if its repeated pivot sequence is
+ structurally valid. All active index arithmetic must use exact safe
+ integers, and all views must fit their buffers.
+
+ This interface has the same pivot, buffer, aliasing, mutation, and
+ zero-order rules as the standard interface. Unused strides and offsets
+ are not accessed when N=0.
+
+ Parameters
+ ----------
+ uplo: string
+ Stored triangle. Must be 'upper' or 'lower'.
+
+ way: string
+ Conversion direction. Must be 'convert' or 'revert'.
+
+ N: integer
+ Matrix order.
+
+ A: Float64Array
+ Input/output factor storage.
+
+ sa1: integer
+ Matrix row stride.
+
+ sa2: integer
+ Matrix column stride.
+
+ oa: integer
+ Starting index for A.
+
+ E: Float64Array
+ Off-diagonal block values.
+
+ se: integer
+ E stride.
+
+ oe: integer
+ Starting index for E.
+
+ IPIV: Int32Array
+ Read-only signed 1-based LAPACK rook pivots.
+
+ sp: integer
+ IPIV stride.
+
+ op: integer
+ Starting index for IPIV.
+
+ Returns
+ -------
+ info: number
+ Zero on success.
+
+ Examples
+ --------
+ > var A = new {{alias:@stdlib/array/float64}}( [ 0, 2, 999, 0 ] );
+ > var E = new {{alias:@stdlib/array/float64}}( [ 8.0, 0.0, 0.0, 8.0 ] );
+ > var P = new {{alias:@stdlib/array/int32}}( [ 9, -1, -2, 9 ] );
+ > {{alias}}.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 1, P, 1, 1 )
+ 0
+ > E
+ [ 8.0, 0.0, 2.0, 8.0 ]
+
+ See Also
+ --------
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/types/index.d.ts b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/types/index.d.ts
new file mode 100644
index 000000000000..38847a447e8f
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/types/index.d.ts
@@ -0,0 +1,159 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+// TypeScript Version: 4.1
+
+///
+
+import { Layout, MatrixTriangle } from '@stdlib/types/blas';
+
+/**
+* Conversion direction.
+*/
+type Way = 'convert' | 'revert';
+
+/**
+* Interface describing `dsyconvfRook`.
+*/
+interface Routine {
+ /**
+ * Converts or reverts symmetric indefinite rook-factor storage in place.
+ *
+ * ## Notes
+ *
+ * - `IPIV` is read-only, signed, and 1-based, exactly as in LAPACK.
+ * - Distinct adjacent negative pivots identify a 2x2 block; `-1` retains the first-row target and block marker.
+ * - Conversion writes `E`; reversion leaves `E` unchanged.
+ * - The full matrix and vector indexed-byte envelopes must be disjoint.
+ * - For N greater than zero, each actual typed-array backing store must be an ordinary ArrayBuffer; SharedArrayBuffer-backed views are rejected before routine-owned writes.
+ * - Exotic ArrayBuffers whose physical storage is externally aliased by foreign native addons are outside the caller contract.
+ * - The declared typed-array types cannot express this runtime backing-store precondition.
+ *
+ * @param order - row-major or column-major storage
+ * @param uplo - stored matrix triangle
+ * @param way - conversion direction
+ * @param N - matrix order (nonnegative safe integer not exceeding 2147483647)
+ * @param A - input/output matrix
+ * @param LDA - leading dimension, at least max(1,N)
+ * @param E - off-diagonal block values (output for conversion, input for reversion)
+ * @param IPIV - read-only signed 1-based LAPACK rook pivots
+ * @throws selectors and active buffer types must be valid
+ * @throws dimensions, bounds, aliasing, and pivots must satisfy the documented preconditions
+ * @returns zero on success
+ *
+ * @example
+ * var Float64Array = require( '@stdlib/array/float64' );
+ * var Int32Array = require( '@stdlib/array/int32' );
+ *
+ * var A = new Float64Array( [ 0.0, 2.0, 999.0, 0.0 ] );
+ * var E = new Float64Array( 2 );
+ * var IPIV = new Int32Array( [ -1, -2 ] );
+ *
+ * var info = dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E, IPIV );
+ * // returns 0
+ * // A => [ 0.0, 0.0, 999.0, 0.0 ]
+ * // E => [ 0.0, 2.0 ]
+ */
+ ( order: Layout, uplo: MatrixTriangle, way: Way, N: number, A: Float64Array, LDA: number, E: Float64Array, IPIV: Int32Array ): number;
+
+ /**
+ * Converts or reverts rook-factor storage using alternative indexing semantics.
+ *
+ * ## Notes
+ *
+ * - All strides and offsets are element indices relative to their typed-array views.
+ * - The full leading N-by-N matrix view must be injective and in bounds.
+ * - For N greater than one, the E stride must be nonzero in both directions.
+ * - Read-only IPIV may have zero stride if its complete repeated pivot sequence is structurally valid.
+ * - Positive and negative independent strides are supported.
+ * - Active arrays require ordinary ArrayBuffer backing stores; SharedArrayBuffer-backed views, including views of shared buffers returned by structuredClone, are rejected before routine-owned writes.
+ * - Externally aliased ArrayBuffers from foreign native addons are outside the caller contract; this runtime precondition cannot be expressed by the declared typed-array types.
+ *
+ * @param uplo - stored matrix triangle
+ * @param way - conversion direction
+ * @param N - matrix order
+ * @param A - input/output matrix
+ * @param strideA1 - matrix row stride
+ * @param strideA2 - matrix column stride
+ * @param offsetA - starting index for A
+ * @param E - off-diagonal block values
+ * @param strideE - E stride
+ * @param offsetE - starting index for E
+ * @param IPIV - read-only signed 1-based LAPACK rook pivots
+ * @param strideIPIV - IPIV stride
+ * @param offsetIPIV - starting index for IPIV
+ * @throws selectors and active buffer types must be valid
+ * @throws dimensions, metadata, bounds, aliasing, and pivots must satisfy the documented preconditions
+ * @returns zero on success
+ *
+ * @example
+ * var Float64Array = require( '@stdlib/array/float64' );
+ * var Int32Array = require( '@stdlib/array/int32' );
+ *
+ * var A = new Float64Array( [ 7.0, 0.0, 2.0, 999.0, 0.0, 7.0 ] );
+ * var E = new Float64Array( [ 8.0, 0.0, 0.0, 8.0 ] );
+ * var IPIV = new Int32Array( [ 9, -1, -2, 9 ] );
+ *
+ * var info = dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 1, E, 1, 1, IPIV, 1, 1 );
+ * // returns 0
+ * // E => [ 8.0, 0.0, 2.0, 8.0 ]
+ */
+ ndarray( uplo: MatrixTriangle, way: Way, N: number, A: Float64Array, strideA1: number, strideA2: number, offsetA: number, E: Float64Array, strideE: number, offsetE: number, IPIV: Int32Array, strideIPIV: number, offsetIPIV: number ): number;
+}
+
+/**
+* Converts or reverts symmetric indefinite rook-factor storage in place.
+*
+* @param order - storage layout
+* @param uplo - stored matrix triangle
+* @param way - conversion direction
+* @param N - matrix order
+* @param A - input/output matrix
+* @param LDA - leading dimension, at least max(1,N)
+* @param E - off-diagonal block values
+* @param IPIV - read-only signed 1-based LAPACK rook pivots
+* @returns zero on success
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var A = new Float64Array( [ 0.0, 2.0, 999.0, 0.0 ] );
+* var E = new Float64Array( 2 );
+* var IPIV = new Int32Array( [ -1, -2 ] );
+*
+* dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E, IPIV );
+* // E => [ 0.0, 2.0 ]
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var Int32Array = require( '@stdlib/array/int32' );
+*
+* var A = new Float64Array( [ 0.0, 0.0, 999.0, 0.0 ] );
+* var E = new Float64Array( [ 0.0, 2.0 ] );
+* var IPIV = new Int32Array( [ -1, -2 ] );
+*
+* dsyconvfRook.ndarray( 'upper', 'revert', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 );
+* // A => [ 0.0, 2.0, 999.0, 0.0 ]
+*/
+declare var dsyconvfRook: Routine;
+
+
+// EXPORTS //
+
+export = dsyconvfRook;
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/types/test.ts b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/types/test.ts
new file mode 100644
index 000000000000..76ce93cc24cf
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/docs/types/test.ts
@@ -0,0 +1,90 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+import dsyconvfRook = require( './index' );
+
+
+// TESTS //
+
+const A = new Float64Array( [ 0.0, 2.0, 999.0, 0.0 ] );
+const E = new Float64Array( 2 );
+const IPIV = new Int32Array( [ -1, -2 ] );
+
+// Canonical selectors and both public signatures return a numeric status:
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E, IPIV ); // $ExpectType number
+dsyconvfRook( 'column-major', 'lower', 'revert', 2, A, 2, E, IPIV ); // $ExpectType number
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectType number
+dsyconvfRook.ndarray( 'lower', 'revert', 2, A, -2, -1, 3, E, -1, 1, IPIV, -1, 1 ); // $ExpectType number
+
+// Unsupported selectors remain a compile-time error:
+dsyconvfRook( 'F', 'upper', 'convert', 2, A, 2, E, IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', 'all', 'convert', 2, A, 2, E, IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'C', 2, A, 2, E, IPIV ); // $ExpectError
+dsyconvfRook.ndarray( 'all', 'convert', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'R', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+
+// Each required argument must have its declared type:
+dsyconvfRook( false, 'upper', 'convert', 2, A, 2, E, IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', false, 'convert', 2, A, 2, E, IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', false, 2, A, 2, E, IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', false, A, 2, E, IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, [], 2, E, IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, false, E, IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, [], IPIV ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E, [] ); // $ExpectError
+
+// Missing or extra arguments are rejected:
+dsyconvfRook(); // $ExpectError
+dsyconvfRook( 'row-major' ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper' ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert' ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2 ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, A ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2 ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E ); // $ExpectError
+dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E, IPIV, 0 ); // $ExpectError
+
+dsyconvfRook.ndarray( false, 'convert', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', false, 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', false, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, [], 2, 1, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, false, 1, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, false, 0, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, false, E, 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, [], 1, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, false, 0, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, false, IPIV, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 0, [], 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 0, IPIV, false, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, false ); // $ExpectError
+
+// Missing or extra arguments are rejected:
+dsyconvfRook.ndarray(); // $ExpectError
+dsyconvfRook.ndarray( 'upper' ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert' ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 0 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 0, IPIV ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1 ); // $ExpectError
+dsyconvfRook.ndarray( 'upper', 'convert', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0, 0 ); // $ExpectError
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/c/Makefile b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/c/Makefile
new file mode 100644
index 000000000000..c8f8e9a1517b
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/c/Makefile
@@ -0,0 +1,146 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#/
+
+# VARIABLES #
+
+ifndef VERBOSE
+ QUIET := @
+else
+ QUIET :=
+endif
+
+# Determine the OS ([1][1], [2][2]).
+#
+# [1]: https://en.wikipedia.org/wiki/Uname#Examples
+# [2]: http://stackoverflow.com/a/27776822/2225624
+OS ?= $(shell uname)
+ifneq (, $(findstring MINGW,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring MSYS,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring CYGWIN,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring Windows_NT,$(OS)))
+ OS := WINNT
+endif
+endif
+endif
+endif
+
+# Define the program used for compiling C source files:
+ifdef C_COMPILER
+ CC := $(C_COMPILER)
+else
+ CC := gcc
+endif
+
+# Define the command-line options when compiling C files:
+CFLAGS ?= \
+ -std=c99 \
+ -O3 \
+ -Wall \
+ -pedantic
+
+# Determine whether to generate position independent code ([1][1], [2][2]).
+#
+# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options
+# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option
+ifeq ($(OS), WINNT)
+ fPIC ?=
+else
+ fPIC ?= -fPIC
+endif
+
+# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`):
+INCLUDE ?=
+
+# List of source files:
+SOURCE_FILES ?=
+
+# List of libraries (e.g., `-lopenblas -lpthread`):
+LIBRARIES ?=
+
+# List of library paths (e.g., `-L /foo/bar -L /beep/boop`):
+LIBPATH ?=
+
+# List of C targets:
+c_targets := example.out
+
+
+# RULES #
+
+#/
+# Compiles source files.
+#
+# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`)
+# @param {string} [CFLAGS] - C compiler options
+# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
+# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`)
+# @param {string} [SOURCE_FILES] - list of source files
+# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`)
+# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`)
+#
+# @example
+# make
+#
+# @example
+# make all
+#/
+all: $(c_targets)
+
+.PHONY: all
+
+#/
+# Compiles C source files.
+#
+# @private
+# @param {string} CC - C compiler (e.g., `gcc`)
+# @param {string} CFLAGS - C compiler options
+# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
+# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`)
+# @param {string} SOURCE_FILES - list of source files
+# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`)
+# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`)
+#/
+$(c_targets): %.out: %.c
+ $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES)
+
+#/
+# Runs compiled examples.
+#
+# @example
+# make run
+#/
+run: $(c_targets)
+ $(QUIET) ./$<
+
+.PHONY: run
+
+#/
+# Removes generated files.
+#
+# @example
+# make clean
+#/
+clean:
+ $(QUIET) -rm -f *.o *.out
+
+.PHONY: clean
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/c/example.c b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/c/example.c
new file mode 100644
index 000000000000..2825a63be183
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/c/example.c
@@ -0,0 +1,49 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include "stdlib/lapack/base/dsyconvf_rook.h"
+#include "stdlib/lapack/base/shared.h"
+#include
+#include
+#include
+
+int main( void ) {
+ // Upper rook-factor storage; 999 is an untouched opposite-triangle guard:
+ double A[] = { 0.0, 2.0, 999.0, 0.0 };
+ double E[] = { -9.0, -9.0 };
+ const LAPACK_INT IPIV[] = { -1, -2 };
+ LAPACK_INT info;
+
+ // Convert the genuine 2x2 block without changing signed 1-based pivots:
+ info = API_SUFFIX(c_dsyconvf_rook)( LAPACK_ROW_MAJOR, LAPACK_UPPER_TRIANGLE, 'C', 2, A, 2, E, IPIV );
+ if ( info != 0 || A[ 1 ] != 0.0 || E[ 0 ] != 0.0 || signbit( E[ 0 ] ) || E[ 1 ] != 2.0 ) {
+ fprintf( stderr, "Unexpected conversion result.\n" );
+ return EXIT_FAILURE;
+ }
+ printf( "Converted A: %g, %g, %g, %g\n", A[ 0 ], A[ 1 ], A[ 2 ], A[ 3 ] );
+ printf( "Extracted E: %g, %g\n", E[ 0 ], E[ 1 ] );
+
+ // Revert with row and column strides expressed in elements:
+ info = API_SUFFIX(c_dsyconvf_rook_ndarray)( LAPACK_UPPER_TRIANGLE, 'R', 2, A, 2, 1, 0, E, 1, 0, IPIV, 1, 0 );
+ if ( info != 0 || A[ 1 ] != 2.0 || A[ 2 ] != 999.0 || E[ 1 ] != 2.0 ) {
+ fprintf( stderr, "Unexpected reversion result.\n" );
+ return EXIT_FAILURE;
+ }
+ printf( "Reverted A: %g, %g, %g, %g\n", A[ 0 ], A[ 1 ], A[ 2 ], A[ 3 ] );
+ return EXIT_SUCCESS;
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/index.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/index.js
new file mode 100644
index 000000000000..a2a9977c14e5
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/examples/index.js
@@ -0,0 +1,52 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var dsyconvfRook = require( './../lib' );
+
+// Upper-triangular rook storage of a symmetric indefinite 2x2 block:
+var A = new Float64Array( [ 0.0, 2.0, 999.0, 0.0 ] );
+var E = new Float64Array( [ -9.0, -9.0 ] );
+
+// Keep the distinct negative LAPACK pivots unchanged and 1-based:
+var IPIV = new Int32Array( [ -1, -2 ] );
+
+var info = dsyconvfRook( 'row-major', 'upper', 'convert', 2, A, 2, E, IPIV );
+if ( info !== 0 || A[ 1 ] !== 0.0 || E[ 0 ] !== 0.0 || E[ 1 ] !== 2.0 ) {
+ throw new Error( 'Unexpected conversion result.' );
+}
+console.log( 'Converted A: %s', A.join( ', ' ) );
+console.log( 'Extracted E: %s', E.join( ', ' ) );
+
+// Reversion restores the off-diagonal value and preserves E and IPIV:
+info = dsyconvfRook( 'row-major', 'upper', 'revert', 2, A, 2, E, IPIV );
+if (
+ info !== 0 ||
+ A[ 1 ] !== 2.0 ||
+ A[ 2 ] !== 999.0 ||
+ E[ 1 ] !== 2.0 ||
+ IPIV[ 0 ] !== -1 ||
+ IPIV[ 1 ] !== -2
+) {
+ throw new Error( 'Unexpected reversion result.' );
+}
+console.log( 'Reverted A: %s', A.join( ', ' ) );
+console.log( 'Unchanged pivots: %s', IPIV.join( ', ' ) );
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/include.gypi b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/include.gypi
new file mode 100644
index 000000000000..dcb556d250e8
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/include.gypi
@@ -0,0 +1,70 @@
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A GYP include file for building a Node.js native add-on.
+#
+# Note that nesting variables is required due to how GYP processes a configuration. Any variables defined within a nested 'variables' section is defined in the outer scope. Thus, conditions in the outer variable scope are free to use these variables without running into "variable undefined" errors.
+#
+# Main documentation:
+#
+# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md
+# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md
+#
+# Variable nesting hacks:
+#
+# [3]: https://chromium.googlesource.com/external/skia/gyp/+/master/common_variables.gypi
+# [4]: https://src.chromium.org/viewvc/chrome/trunk/src/build/common.gypi?revision=127004
+{
+ # Define variables to be used throughout the configuration for all targets:
+ 'variables': {
+ 'variables': {
+ # Host BLAS library (to override -Dblas=):
+ 'blas%': '',
+
+ # Path to BLAS library (to override -Dblas_dir=):
+ 'blas_dir%': '',
+ }, # end variables
+
+ # Source directory:
+ 'src_dir': './src',
+
+ # Include directories:
+ 'include_dirs': [
+ '<@(blas_dir)',
+ '1; read-only IPIV may broadcast
+* when its repeated signed, one-based pivot is structurally valid.
+*
+* All accessed indices must be nonnegative and representable in LAPACK_INT
+* and in PTRDIFF_MAX divided by the corresponding element size. Used DSWAP
+* counts, strides, and post-iteration endpoints must fit configured CBLAS_INT;
+* conservative rejection ensures both portable C and Fortran dependency safety.
+* Sufficient allocated, disjoint physical storage remains a caller precondition.
+*
+* Returns zero on success or a negative one-based argument position. Invalid
+* matrix collision maps to -6; malformed pivots map to -11. Scalar validation
+* precedes the N=0 return, which does not access buffers or unused metadata.
+*/
+LAPACK_INT API_SUFFIX(c_dsyconvf_rook_ndarray)( const LAPACK_UPLO uplo, const char way, const LAPACK_INT N, double *A, const LAPACK_INT strideA1, const LAPACK_INT strideA2, const LAPACK_INT offsetA, double *E, const LAPACK_INT strideE, const LAPACK_INT offsetE, const LAPACK_INT *IPIV, const LAPACK_INT strideIPIV, const LAPACK_INT offsetIPIV );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !STDLIB_LAPACK_BASE_DSYCONVF_ROOK_H
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/base.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/base.js
new file mode 100644
index 000000000000..78acb4b6a3ec
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/base.js
@@ -0,0 +1,181 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var dswap = require( '@stdlib/blas/base/dswap' ).ndarray;
+
+
+// FUNCTIONS //
+
+/**
+* Swaps stored row fragments in their existing sequential order.
+* @private
+* @param {Float64Array} A - matrix
+* @param {integer} s1 - row stride
+* @param {integer} s2 - column stride
+* @param {integer} oa - matrix offset
+* @param {integer} row - first row
+* @param {integer} target - second row
+* @param {NonNegativeInteger} start - first column
+* @param {NonNegativeInteger} count - fragment length
+* @returns {void}
+*/
+function swap( A, s1, s2, oa, row, target, start, count ) { // eslint-disable-line max-params
+ if ( count > 0 && row !== target ) {
+ dswap( count, A, s2, oa+(row*s1)+(start*s2), A, s2, oa+(target*s1)+(start*s2) );
+ }
+}
+
+
+// MAIN //
+
+/**
+* Converts or reverts validated symmetric indefinite rook factor storage.
+*
+* Adapted from Reference-LAPACK DSYCONVF_ROOK at commit 2e5d9c1273435fbd953adb294ed603e4789afaba. See NOTICE for retained BSD copyright, conditions and disclaimer.
+*
+* @private
+* @param {integer} u - triangle enum
+* @param {integer} w - C/R direction enum
+* @param {PositiveInteger} N - matrix order
+* @param {Float64Array} A - factor matrix
+* @param {integer} s1 - row stride
+* @param {integer} s2 - column stride
+* @param {integer} oa - matrix offset
+* @param {Float64Array} E - off-diagonal storage
+* @param {integer} se - storage stride
+* @param {integer} oe - storage offset
+* @param {Int32Array} P - signed one-based pivots
+* @param {integer} sp - pivot stride
+* @param {integer} op - pivot offset
+* @returns {integer} zero success status
+*/
+function base( u, w, N, A, s1, s2, oa, E, se, oe, P, sp, op ) { // eslint-disable-line max-params
+ var p;
+ var q;
+ var i;
+ if ( w === 67 ) {
+ if ( u === 121 ) {
+ i = N-1;
+ E[ oe ] = 0.0;
+ while ( i > 0 ) {
+ if ( P[ op+(i*sp) ] < 0 ) {
+ E[ oe+(i*se) ] = A[ oa+((i-1)*s1)+(i*s2) ];
+ E[ oe+((i-1)*se) ] = 0.0;
+ A[ oa+((i-1)*s1)+(i*s2) ] = 0.0;
+ i -= 1;
+ } else {
+ E[ oe+(i*se) ] = 0.0;
+ }
+ i -= 1;
+ }
+ i = N-1;
+ while ( i >= 0 ) {
+ p = P[ op+(i*sp) ];
+ if ( p > 0 ) {
+ swap( A, s1, s2, oa, i, p-1, i+1, N-i-1 );
+ } else {
+ q = P[ op+((i-1)*sp) ];
+ swap( A, s1, s2, oa, i, -p-1, i+1, N-i-1 );
+ swap( A, s1, s2, oa, i-1, -q-1, i+1, N-i-1 );
+ i -= 1;
+ }
+ i -= 1;
+ }
+ } else {
+ i = 0;
+ E[ oe+((N-1)*se) ] = 0.0;
+ while ( i < N ) {
+ if ( i < N-1 && P[ op+(i*sp) ] < 0 ) {
+ E[ oe+(i*se) ] = A[ oa+((i+1)*s1)+(i*s2) ];
+ E[ oe+((i+1)*se) ] = 0.0;
+ A[ oa+((i+1)*s1)+(i*s2) ] = 0.0;
+ i += 1;
+ } else {
+ E[ oe+(i*se) ] = 0.0;
+ }
+ i += 1;
+ }
+ i = 0;
+ while ( i < N ) {
+ p = P[ op+(i*sp) ];
+ if ( p > 0 ) {
+ swap( A, s1, s2, oa, i, p-1, 0, i );
+ } else {
+ q = P[ op+((i+1)*sp) ];
+ swap( A, s1, s2, oa, i, -p-1, 0, i );
+ swap( A, s1, s2, oa, i+1, -q-1, 0, i );
+ i += 1;
+ }
+ i += 1;
+ }
+ }
+ } else if ( u === 121 ) {
+ i = 0;
+ while ( i < N ) {
+ p = P[ op+(i*sp) ];
+ if ( p > 0 ) {
+ swap( A, s1, s2, oa, i, p-1, i+1, N-i-1 );
+ } else {
+ i += 1;
+ p = P[ op+(i*sp) ];
+ q = P[ op+((i-1)*sp) ];
+ swap( A, s1, s2, oa, i-1, -q-1, i+1, N-i-1 );
+ swap( A, s1, s2, oa, i, -p-1, i+1, N-i-1 );
+ }
+ i += 1;
+ }
+ i = N-1;
+ while ( i > 0 ) {
+ if ( P[ op+(i*sp) ] < 0 ) {
+ A[ oa+((i-1)*s1)+(i*s2) ] = E[ oe+(i*se) ];
+ i -= 1;
+ }
+ i -= 1;
+ }
+ } else {
+ i = N-1;
+ while ( i >= 0 ) {
+ p = P[ op+(i*sp) ];
+ if ( p > 0 ) {
+ swap( A, s1, s2, oa, i, p-1, 0, i );
+ } else {
+ i -= 1;
+ p = P[ op+(i*sp) ];
+ q = P[ op+((i+1)*sp) ];
+ swap( A, s1, s2, oa, i+1, -q-1, 0, i );
+ swap( A, s1, s2, oa, i, -p-1, 0, i );
+ }
+ i -= 1;
+ }
+ i = 0;
+ while ( i < N-1 ) {
+ if ( P[ op+(i*sp) ] < 0 ) {
+ A[ oa+((i+1)*s1)+(i*s2) ] = E[ oe+(i*se) ];
+ i += 1;
+ }
+ i += 1;
+ }
+ }
+ return 0;
+}
+
+module.exports = base;
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/can_use_native.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/can_use_native.js
new file mode 100644
index 000000000000..09b136dbbef6
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/can_use_native.js
@@ -0,0 +1,76 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// FUNCTIONS //
+
+/**
+* Checks the native signed32 active envelope.
+* @private
+* @param {PositiveInteger} N - order
+* @param {integer} s1 - first stride
+* @param {integer} s2 - second stride
+* @param {integer} offset - offset
+* @returns {boolean} whether metadata fits
+*/
+function envelope( N, s1, s2, offset ) {
+ var lo;
+ var hi;
+ var a;
+ var b;
+ a = (N-1)*s1;
+ b = (N-1)*s2;
+ lo = offset + ((a < 0) ? a : 0) + ((b < 0) ? b : 0);
+ hi = offset + ((a > 0) ? a : 0) + ((b > 0) ? b : 0);
+ return lo >= 0 && hi <= 2147483647;
+}
+
+
+// MAIN //
+
+/**
+* Restricts dispatch to the native bridge's conservative signed32 domain.
+* @private
+* @param {ArrayLike} args - already validated normalized arguments
+* @returns {boolean} whether native metadata is representable
+*/
+function canUseNative( args ) {
+ var indices;
+ var x;
+ var i;
+ var N;
+ N = args[2];
+ if ( N > 2147483647 ) {
+ return false;
+ }
+ indices = [ 4, 5, 6, 8, 9, 11, 12 ];
+ for ( i = 0; i < indices.length; i++ ) {
+ x = args[ indices[i] ];
+ if ( x < -2147483647 || x > 2147483647 || (N > 1 && ( x*(N-1) < -2147483647 || x*(N-1) > 2147483647 )) ) {
+ return false;
+ }
+ }
+ // Full A bounds are validated, but the CBLAS swap also advances after its last access.
+ if ( N > 1 && (args[5]*N < -2147483647 || args[5]*N > 2147483647) ) {
+ return false;
+ }
+ return envelope( N, args[4], args[5], args[6] ) && envelope( N, args[8], 0, args[9] ) && envelope( N, args[11], 0, args[12] );
+}
+
+module.exports = canUseNative;
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/factory.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/factory.js
new file mode 100644
index 000000000000..e30d4e6690de
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/factory.js
@@ -0,0 +1,132 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var isSafeInteger = require( '@stdlib/assert/is-safe-integer' ).isPrimitive;
+var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );
+var validate = require( './validate.js' );
+
+
+// FUNCTIONS //
+
+/**
+* Validates scalar selectors and the order before examining buffers.
+* @private
+* @param {string} uplo - triangle
+* @param {string} way - conversion direction
+* @param {NonNegativeInteger} N - order
+* @throws {TypeError} invalid selectors
+* @throws {RangeError} invalid order
+* @returns {Array} normalized selector enums
+*/
+function scalars( uplo, way, N ) {
+ if ( uplo !== 'upper' && uplo !== 'lower' ) {
+ throw new TypeError( 'invalid argument. Triangle must be upper or lower.' );
+ }
+ if ( way !== 'convert' && way !== 'revert' ) {
+ throw new TypeError( 'invalid argument. Direction must be convert or revert.' );
+ }
+ if ( !isSafeInteger( N ) || N < 0 || N > 2147483647 ) {
+ throw new RangeError( 'invalid argument. Order must be a nonnegative signed32 integer.' );
+ }
+ return [ (uplo === 'upper') ? 121 : 122, (way === 'convert') ? 67 : 82 ];
+}
+
+
+// MAIN //
+
+/**
+* Creates the proposed public main and alternative-indexing interfaces.
+* @private
+* @param {Function} base - validated normalized kernel
+* @returns {Function} public interfaces
+*/
+function factory( base ) {
+ setReadOnly( dsyconvfRook, 'ndarray', ndarray );
+ return dsyconvfRook;
+
+ /**
+ * Converts or reverts symmetric indefinite rook factor storage.
+ * @private
+ * @param {string} order - storage layout
+ * @param {string} uplo - stored triangle
+ * @param {string} way - convert or revert
+ * @param {NonNegativeInteger} N - order
+ * @param {Float64Array} A - factor matrix
+ * @param {PositiveInteger} LDA - leading dimension
+ * @param {Float64Array} E - off-diagonal storage
+ * @param {Int32Array} IPIV - signed one-based rook pivots
+ * @throws {TypeError} invalid selectors or buffers
+ * @throws {RangeError} invalid metadata or pivots
+ * @returns {integer} zero success status
+ */
+ function dsyconvfRook( order, uplo, way, N, A, LDA, E, IPIV ) { // eslint-disable-line max-params
+ var sa1;
+ var sa2;
+ var s;
+ if ( order !== 'row-major' && order !== 'column-major' ) {
+ throw new TypeError( 'invalid argument. Order must be row-major or column-major.' );
+ }
+ s = scalars( uplo, way, N );
+ if ( !isSafeInteger( LDA ) || LDA < 1 || LDA < N ) {
+ throw new RangeError( 'invalid argument. Leading dimension must be a safe integer at least max(1,N).' );
+ }
+ if ( N === 0 ) {
+ return 0;
+ }
+ sa1 = (order === 'column-major') ? 1 : LDA;
+ sa2 = (order === 'column-major') ? LDA : 1;
+ validate( s[0], s[1], N, A, sa1, sa2, 0, E, 1, 0, IPIV, 1, 0 );
+ return base( s[0], s[1], N, A, sa1, sa2, 0, E, 1, 0, IPIV, 1, 0 );
+ }
+
+ /**
+ * Converts or reverts factor storage using independent indexing strides.
+ * @private
+ * @param {string} uplo - stored triangle
+ * @param {string} way - convert or revert
+ * @param {NonNegativeInteger} N - order
+ * @param {Float64Array} A - factor matrix
+ * @param {integer} sa1 - row stride
+ * @param {integer} sa2 - column stride
+ * @param {integer} oa - matrix offset
+ * @param {Float64Array} E - off-diagonal storage
+ * @param {integer} se - storage stride
+ * @param {integer} oe - storage offset
+ * @param {Int32Array} P - signed one-based rook pivots
+ * @param {integer} sp - pivot stride
+ * @param {integer} op - pivot offset
+ * @throws {TypeError} invalid selectors or buffers
+ * @throws {RangeError} invalid metadata or pivots
+ * @returns {integer} zero success status
+ */
+ function ndarray( uplo, way, N, A, sa1, sa2, oa, E, se, oe, P, sp, op ) { // eslint-disable-line max-params
+ var s;
+ s = scalars( uplo, way, N );
+ if ( N === 0 ) {
+ return 0;
+ }
+ validate( s[0], s[1], N, A, sa1, sa2, oa, E, se, oe, P, sp, op );
+ return base( s[0], s[1], N, A, sa1, sa2, oa, E, se, oe, P, sp, op );
+ }
+}
+
+module.exports = factory;
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/index.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/index.js
new file mode 100644
index 000000000000..7abefded4218
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/index.js
@@ -0,0 +1,34 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+/**
+* Convert or revert symmetric indefinite rook factor storage.
+*
+* @module @stdlib/lapack/base/dsyconvf-rook
+*/
+
+'use strict';
+
+var resolve = require( 'path' ).resolve;
+var tryRequire = require( '@stdlib/utils/try-require' );
+
+var main = tryRequire( resolve( __dirname, './native.js' ) );
+if ( main instanceof Error ) {
+ main = require( './main.js' );
+}
+module.exports = main;
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/main.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/main.js
new file mode 100644
index 000000000000..72ce4a14cc58
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/main.js
@@ -0,0 +1,26 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+var factory = require( './factory.js' );
+var base = require( './base.js' );
+
+var main = factory( base );
+
+module.exports = main;
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/native.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/native.js
new file mode 100644
index 000000000000..7905498784e0
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/native.js
@@ -0,0 +1,42 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+var factory = require( './factory.js' );
+var base = require( './base.js' );
+var canUseNative = require( './can_use_native.js' );
+var addon = require( './../src/addon.node' );
+var main;
+
+/**
+* Dispatches safe typed views to the addon.
+*
+* @private
+* @returns {number} zero success status
+*/
+function dispatch() {
+ if ( canUseNative( arguments ) ) {
+ return addon.apply( null, arguments );
+ }
+ return base.apply( null, arguments );
+}
+
+main = factory( dispatch );
+
+module.exports = main;
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/validate.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/validate.js
new file mode 100644
index 000000000000..23e88f0101e9
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/lib/validate.js
@@ -0,0 +1,218 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+// MODULES //
+
+var Float64Array = require( '@stdlib/array/float64' );
+var ArrayBuffer = require( '@stdlib/array/buffer' );
+var Symbol = require( '@stdlib/symbol/ctor' );
+var isFloat64Array = require( '@stdlib/assert/is-float64array' );
+var isInt32Array = require( '@stdlib/assert/is-int32array' );
+var isSafeInteger = require( '@stdlib/assert/is-safe-integer' ).isPrimitive;
+var getPrototypeOf = require( '@stdlib/utils/get-prototype-of' );
+var descriptor = require( '@stdlib/utils/property-descriptor' );
+
+
+// VARIABLES //
+
+var proto = getPrototypeOf( Float64Array.prototype );
+var getLength = descriptor( proto, 'length' ).get;
+var getBuffer = descriptor( proto, 'buffer' ).get;
+var getByteOffset = descriptor( proto, 'byteOffset' ).get;
+var getTag = Symbol.toStringTag && descriptor( proto, Symbol.toStringTag ).get;
+var getBufferLength = descriptor( ArrayBuffer.prototype, 'byteLength' ).get;
+var MAX = 9007199254740991;
+
+
+// FUNCTIONS //
+
+/**
+* Adds safe integers without permitting an inexact indexed result.
+* @private
+* @param {integer} a - first integer
+* @param {integer} b - second integer
+* @throws {RangeError} inexact sum
+* @returns {integer} sum
+*/
+function add( a, b ) {
+ if ( (b > 0 && a > MAX-b) || (b < 0 && a < -MAX-b) ) {
+ throw new RangeError( 'invalid argument. Indexed arithmetic must be exact.' );
+ }
+ return a+b;
+}
+
+/**
+* Finds the greatest common divisor of positive safe integers.
+* @private
+* @param {PositiveInteger} a - first integer
+* @param {PositiveInteger} b - second integer
+* @returns {PositiveInteger} greatest common divisor
+*/
+function gcd( a, b ) {
+ var r;
+ while ( b !== 0 ) {
+ r = a % b;
+ a = b;
+ b = r;
+ }
+ return a;
+}
+
+/**
+* Checks an injective matrix view and captures its indexed-byte envelope.
+* @private
+* @param {TypedArray} data - typed view
+* @param {NonNegativeInteger} N - dimension
+* @param {integer} s1 - first stride
+* @param {integer} s2 - second stride
+* @param {integer} offset - offset
+* @param {boolean} matrix - whether the view is a matrix
+* @param {boolean} mutable - whether indexed writes are allowed
+* @param {string} dtype - required intrinsic typed-array name
+* @throws {TypeError} invalid buffer
+* @throws {RangeError} invalid metadata or storage
+* @returns {Array} buffer and half-open byte envelope
+*/
+function view( data, N, s1, s2, offset, matrix, mutable, dtype ) { // eslint-disable-line max-params
+ var buffer;
+ var bytes;
+ var begin;
+ var end;
+ var lo;
+ var hi;
+ var a;
+ var b;
+ var g;
+ if ( !( (dtype === 'Float64Array') ? isFloat64Array( data ) : isInt32Array( data ) ) || (getTag && getTag.call( data ) !== dtype) ) {
+ throw new TypeError( 'invalid argument. Buffers must have the documented typed-array types.' );
+ }
+ buffer = getBuffer.call( data );
+
+ // Intrinsic branding rejects shared storage, including cloned identities.
+ getBufferLength.call( buffer );
+ if ( !isSafeInteger( s1 ) || !isSafeInteger( s2 ) || !isSafeInteger( offset ) ) {
+ throw new RangeError( 'invalid argument. Strides and offsets must be safe integers.' );
+ }
+ if ( N > 1 && ( (matrix && (s1 === 0 || s2 === 0)) || (mutable && !matrix && s1 === 0) ) ) {
+ throw new RangeError( 'invalid argument. Mutable indexed views must be injective.' );
+ }
+ if ( matrix && N > 1 ) {
+ g = gcd( (s1 < 0) ? -s1 : s1, (s2 < 0) ? -s2 : s2 );
+ if ( ( ((s1 < 0) ? -s1 : s1)/g < N ) && ( ((s2 < 0) ? -s2 : s2)/g < N ) ) {
+ throw new RangeError( 'invalid argument. Matrix indices must be injective.' );
+ }
+ }
+ a = (N-1)*s1;
+ b = ( matrix ) ? (N-1)*s2 : 0;
+ if ( !isSafeInteger( a ) || !isSafeInteger( b ) ) {
+ throw new RangeError( 'invalid argument. Indexed products must be exact.' );
+ }
+ lo = add( add( offset, (a < 0) ? a : 0 ), (b < 0) ? b : 0 );
+ hi = add( add( offset, (a > 0) ? a : 0 ), (b > 0) ? b : 0 );
+ if ( lo < 0 || hi >= getLength.call( data ) ) {
+ throw new RangeError( 'invalid argument. Insufficient indexed storage.' );
+ }
+ bytes = ( dtype === 'Float64Array' ) ? 8 : 4;
+ begin = lo*bytes;
+ end = (hi+1)*bytes;
+ if ( !isSafeInteger( begin ) || !isSafeInteger( end ) ) {
+ throw new RangeError( 'invalid argument. Indexed byte envelope must be exact.' );
+ }
+ return [ buffer, add( getByteOffset.call( data ), begin ), add( getByteOffset.call( data ), end ) ];
+}
+
+/**
+* Rejects overlapping indexed-byte envelopes.
+* @private
+* @param {Array} a - first envelope
+* @param {Array} b - second envelope
+* @throws {RangeError} overlap
+* @returns {void}
+*/
+function disjoint( a, b ) {
+ if ( a[0] === b[0] && a[1] < b[2] && b[1] < a[2] ) {
+ throw new RangeError( 'invalid argument. Indexed A, E and IPIV envelopes must be disjoint.' );
+ }
+}
+
+
+// MAIN //
+
+/**
+* Validates normalized active views and complete signed LAPACK pivots.
+* @private
+* @param {integer} u - triangle enum
+* @param {integer} w - conversion enum
+* @param {PositiveInteger} N - matrix order
+* @param {Float64Array} A - matrix
+* @param {integer} sa1 - row stride
+* @param {integer} sa2 - column stride
+* @param {integer} oa - matrix offset
+* @param {Float64Array} E - off-diagonal storage
+* @param {integer} se - storage stride
+* @param {integer} oe - storage offset
+* @param {Int32Array} P - signed one-based pivots
+* @param {integer} sp - pivot stride
+* @param {integer} op - pivot offset
+* @throws {TypeError} invalid buffers
+* @throws {RangeError} invalid metadata or pivots
+* @returns {void}
+*/
+function validate( u, w, N, A, sa1, sa2, oa, E, se, oe, P, sp, op ) { // eslint-disable-line max-params
+ var target;
+ var step;
+ var pair;
+ var ae;
+ var ee;
+ var pe;
+ var p;
+ var i;
+ var j;
+ ae = view( A, N, sa1, sa2, oa, true, true, 'Float64Array' );
+ ee = view( E, N, se, 0, oe, false, true, 'Float64Array' );
+ pe = view( P, N, sp, 0, op, false, false, 'Int32Array' );
+ disjoint( ae, ee );
+ disjoint( ae, pe );
+ disjoint( ee, pe );
+ step = ( u === 121 ) ? -1 : 1;
+ i = ( u === 121 ) ? N-1 : 0;
+ while ( i >= 0 && i < N ) {
+ p = P[ op+(i*sp) ];
+ target = (p < 0) ? -p : p;
+ if ( p === 0 || target > N || ( (u === 121) ? target > i+1 : target < i+1 ) ) {
+ throw new RangeError( 'invalid argument. Invalid signed one-based pivot target.' );
+ }
+ if ( p < 0 ) {
+ j = i+step;
+ if ( j < 0 || j >= N ) {
+ throw new RangeError( 'invalid argument. Incomplete two-by-two pivot block.' );
+ }
+ pair = P[ op+(j*sp) ];
+ target = -pair;
+ if ( pair >= 0 || target > N || ( (u === 121) ? target > i+1 : target < i+1 ) ) {
+ throw new RangeError( 'invalid argument. Invalid two-by-two pivot block.' );
+ }
+ i = j;
+ }
+ i += step;
+ }
+}
+
+module.exports = validate;
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/manifest.json b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/manifest.json
new file mode 100644
index 000000000000..a68b83d3c85c
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/manifest.json
@@ -0,0 +1,89 @@
+{
+ "options": {
+ "task": "build",
+ "wasm": false
+ },
+ "fields": [
+ {
+ "field": "src",
+ "resolve": true,
+ "relative": true
+ },
+ {
+ "field": "include",
+ "resolve": true,
+ "relative": true
+ },
+ {
+ "field": "libraries",
+ "resolve": false,
+ "relative": false
+ },
+ {
+ "field": "libpath",
+ "resolve": true,
+ "relative": false
+ }
+ ],
+ "confs": [
+ {
+ "task": "build",
+ "wasm": false,
+ "src": [
+ "./src/dsyconvf_rook.c",
+ "./src/dsyconvf_rook_ndarray.c"
+ ],
+ "include": [
+ "./include"
+ ],
+ "libraries": [],
+ "libpath": [],
+ "dependencies": [
+ "@stdlib/lapack/base/shared",
+ "@stdlib/lapack/base/xerbla",
+ "@stdlib/blas/base/dswap",
+ "@stdlib/napi/export",
+ "@stdlib/napi/argv",
+ "@stdlib/napi/argv-float64array",
+ "@stdlib/napi/argv-int32array",
+ "@stdlib/napi/create-int32"
+ ]
+ },
+ {
+ "task": "benchmark",
+ "wasm": false,
+ "src": [
+ "./src/dsyconvf_rook.c",
+ "./src/dsyconvf_rook_ndarray.c"
+ ],
+ "include": [
+ "./include"
+ ],
+ "libraries": [],
+ "libpath": [],
+ "dependencies": [
+ "@stdlib/lapack/base/shared",
+ "@stdlib/lapack/base/xerbla",
+ "@stdlib/blas/base/dswap"
+ ]
+ },
+ {
+ "task": "examples",
+ "wasm": false,
+ "src": [
+ "./src/dsyconvf_rook.c",
+ "./src/dsyconvf_rook_ndarray.c"
+ ],
+ "include": [
+ "./include"
+ ],
+ "libraries": [],
+ "libpath": [],
+ "dependencies": [
+ "@stdlib/lapack/base/shared",
+ "@stdlib/lapack/base/xerbla",
+ "@stdlib/blas/base/dswap"
+ ]
+ }
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/package.json b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/package.json
new file mode 100644
index 000000000000..535d9bd375ae
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/package.json
@@ -0,0 +1,81 @@
+{
+ "name": "@stdlib/lapack/base/dsyconvf-rook",
+ "version": "0.0.0",
+ "description": "Convert or revert symmetric indefinite rook factor storage.",
+ "license": "Apache-2.0",
+ "author": {
+ "name": "The Stdlib Authors",
+ "url": "https://github.com/stdlib-js/stdlib/graphs/contributors"
+ },
+ "contributors": [
+ {
+ "name": "The Stdlib Authors",
+ "url": "https://github.com/stdlib-js/stdlib/graphs/contributors"
+ }
+ ],
+ "main": "./lib",
+ "browser": "./lib/main.js",
+ "gypfile": true,
+ "directories": {
+ "benchmark": "./benchmark",
+ "doc": "./docs",
+ "example": "./examples",
+ "include": "./include",
+ "lib": "./lib",
+ "src": "./src",
+ "test": "./test"
+ },
+ "types": "./docs/types",
+ "scripts": {},
+ "homepage": "https://github.com/stdlib-js/stdlib",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/stdlib-js/stdlib.git"
+ },
+ "bugs": {
+ "url": "https://github.com/stdlib-js/stdlib/issues"
+ },
+ "dependencies": {},
+ "devDependencies": {},
+ "engines": {
+ "node": ">=8.0.0",
+ "npm": ">2.7.0"
+ },
+ "os": [
+ "aix",
+ "darwin",
+ "freebsd",
+ "linux",
+ "macos",
+ "openbsd",
+ "sunos",
+ "win32",
+ "windows"
+ ],
+ "keywords": [
+ "stdlib",
+ "stdmath",
+ "mathematics",
+ "math",
+ "lapack",
+ "dsyconvf-rook",
+ "symmetric",
+ "indefinite",
+ "rook",
+ "pivot",
+ "factor",
+ "convert",
+ "revert",
+ "linear",
+ "algebra",
+ "subroutines",
+ "array",
+ "ndarray",
+ "matrix",
+ "float64",
+ "double",
+ "float64array",
+ "int32array"
+ ],
+ "__stdlib__": {}
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/Makefile b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/Makefile
new file mode 100644
index 000000000000..2caf905cedbe
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/Makefile
@@ -0,0 +1,70 @@
+#/
+# @license Apache-2.0
+#
+# Copyright (c) 2026 The Stdlib Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#/
+
+# VARIABLES #
+
+ifndef VERBOSE
+ QUIET := @
+else
+ QUIET :=
+endif
+
+# Determine the OS ([1][1], [2][2]).
+#
+# [1]: https://en.wikipedia.org/wiki/Uname#Examples
+# [2]: http://stackoverflow.com/a/27776822/2225624
+OS ?= $(shell uname)
+ifneq (, $(findstring MINGW,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring MSYS,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring CYGWIN,$(OS)))
+ OS := WINNT
+else
+ifneq (, $(findstring Windows_NT,$(OS)))
+ OS := WINNT
+endif
+endif
+endif
+endif
+
+
+# RULES #
+
+#/
+# Removes generated files for building an add-on.
+#
+# @example
+# make clean-addon
+#/
+clean-addon:
+ $(QUIET) -rm -f *.o *.node
+
+.PHONY: clean-addon
+
+#/
+# Removes generated files.
+#
+# @example
+# make clean
+#/
+clean: clean-addon
+
+.PHONY: clean
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/addon.c b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/addon.c
new file mode 100644
index 000000000000..3e676c7ad575
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/addon.c
@@ -0,0 +1,228 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+#include "stdlib/lapack/base/dsyconvf_rook.h"
+#include "stdlib/napi/export.h"
+#include "stdlib/napi/argv.h"
+#include "stdlib/napi/argv_float64array.h"
+#include "stdlib/napi/argv_int32array.h"
+#include "stdlib/napi/create_int32.h"
+#include
+#include
+#include
+#include
+
+/**
+* Parses a finite integral Number without Node-API's silent integer truncation.
+* @param env environment
+* @param value numeric argument
+* @param out integer output
+* @return whether parsing succeeds
+*/
+static int integer( napi_env env, napi_value value, int64_t *out ) {
+ napi_valuetype type;
+ double v;
+ if ( napi_typeof( env, value, &type ) != napi_ok || type != napi_number ) {
+ napi_throw_type_error( env, NULL, "invalid argument. Scalars must be Numbers." );
+ return 0;
+ }
+ if ( napi_get_value_double( env, value, &v ) != napi_ok ) {
+ return 0;
+ }
+ if ( !(v >= -2147483647.0 && v <= 2147483647.0) ) {
+ napi_throw_range_error( env, NULL, "invalid argument. Native metadata must fit its conservative signed32 domain." );
+ return 0;
+ }
+ *out = (int64_t)v;
+ if ( v != (double)*out ) {
+ napi_throw_range_error( env, NULL, "invalid argument. Metadata must be integral." );
+ return 0;
+ }
+ return 1;
+}
+
+/**
+* Captures safe indexed bounds using exact signed64 arithmetic in a signed32 domain.
+* @param N positive indexed order
+* @param s1 first stride
+* @param s2 second stride (zero for vectors)
+* @param offset first indexed offset
+* @param length intrinsic typed-array length
+* @param lo minimum indexed element
+* @param hi maximum indexed element
+* @return whether bounds fit
+*/
+static int bounds( int64_t N, int64_t s1, int64_t s2, int64_t offset, int64_t length, int64_t *lo, int64_t *hi ) {
+ int64_t a = (N-1)*s1;
+ int64_t b = (N-1)*s2;
+ if ( a < -INT64_C(2147483647) || a > INT64_C(2147483647) || b < -INT64_C(2147483647) || b > INT64_C(2147483647) ) {
+ return 0;
+ }
+ *lo = offset + ((a < 0) ? a : 0) + ((b < 0) ? b : 0);
+ *hi = offset + ((a > 0) ? a : 0) + ((b > 0) ? b : 0);
+ return *lo >= 0 && *hi <= INT64_C(2147483647) && *hi < length;
+}
+
+/**
+* Rejects full square matrix collisions before allocating pivot workspace.
+* @param N matrix order
+* @param s1 row stride
+* @param s2 column stride
+* @return whether the full indexed square is injective
+*/
+static int injective( int64_t N, int64_t s1, int64_t s2 ) {
+ uint64_t a;
+ uint64_t b;
+ uint64_t g;
+ uint64_t r;
+ if ( N == 1 ) {
+ return 1;
+ }
+ if ( s1 == 0 || s2 == 0 ) {
+ return 0;
+ }
+ a = (uint64_t)((s1 < 0) ? -s1 : s1);
+ b = (uint64_t)((s2 < 0) ? -s2 : s2);
+ g = a;
+ r = b;
+ while ( r != 0 ) {
+ uint64_t next = g % r;
+ g = r;
+ r = next;
+ }
+ return a/g >= (uint64_t)N || b/g >= (uint64_t)N;
+}
+
+/**
+* Compares physical indexed-byte envelopes independently of buffer identity.
+* @param env environment
+* @param a first typed array
+* @param alo first minimum index
+* @param ahi first maximum index
+* @param asize first element size
+* @param b second typed array
+* @param blo second minimum index
+* @param bhi second maximum index
+* @param bsize second element size
+* @return whether envelopes overlap or metadata extraction fails
+*/
+static int overlaps( napi_env env, napi_value a, int64_t alo, int64_t ahi, size_t asize, napi_value b, int64_t blo, int64_t bhi, size_t bsize ) {
+ void *adata;
+ void *bdata;
+ uintptr_t abase;
+ uintptr_t bbase;
+ uintptr_t al;
+ uintptr_t ah;
+ uintptr_t bl;
+ uintptr_t bh;
+ if ( napi_get_typedarray_info( env, a, NULL, NULL, &adata, NULL, NULL ) != napi_ok || napi_get_typedarray_info( env, b, NULL, NULL, &bdata, NULL, NULL ) != napi_ok ) {
+ return 1;
+ }
+ if ( adata == NULL || bdata == NULL ) {
+ return 1;
+ }
+ abase = (uintptr_t)adata;
+ bbase = (uintptr_t)bdata;
+ // Typed-array data pointers already include each view's byte offset.
+ if ( (uintmax_t)ahi+1 > UINTPTR_MAX/asize || (uintmax_t)bhi+1 > UINTPTR_MAX/bsize ) {
+ return 1;
+ }
+ ah = ((uintptr_t)ahi+1)*asize;
+ bh = ((uintptr_t)bhi+1)*bsize;
+ if ( abase > UINTPTR_MAX-ah || bbase > UINTPTR_MAX-bh ) {
+ return 1;
+ }
+ al = abase + (uintptr_t)alo*asize;
+ ah += abase;
+ bl = bbase + (uintptr_t)blo*bsize;
+ bh += bbase;
+ return al < bh && bl < ah;
+}
+
+/**
+* Converts or reverts validated native rook factor storage.
+* @param env environment
+* @param info invocation data
+* @return zero success status
+*/
+static napi_value addon( napi_env env, napi_callback_info info ) {
+ LAPACK_INT *pivots;
+ LAPACK_INT result;
+ int64_t u;
+ int64_t w;
+ int64_t N;
+ int64_t sa1;
+ int64_t sa2;
+ int64_t oa;
+ int64_t se;
+ int64_t oe;
+ int64_t sp;
+ int64_t op;
+ int64_t alo;
+ int64_t ahi;
+ int64_t elo;
+ int64_t ehi;
+ int64_t plo;
+ int64_t phi;
+ int64_t i;
+ STDLIB_NAPI_ARGV( env, info, argv, argc, 13 );
+ if ( !integer( env, argv[0], &u ) || !integer( env, argv[1], &w ) || !integer( env, argv[2], &N ) ) {
+ return NULL;
+ }
+ if ( (u != LAPACK_UPPER_TRIANGLE && u != LAPACK_LOWER_TRIANGLE) || (w != 'C' && w != 'R') || N < 0 ) {
+ napi_throw_range_error( env, NULL, "invalid argument. Invalid triangle, direction or order." );
+ return NULL;
+ }
+ if ( N == 0 ) {
+ STDLIB_NAPI_CREATE_INT32( env, 0, zero );
+ return zero;
+ }
+ STDLIB_NAPI_ARGV_FLOAT64ARRAY( env, A, alen, argv, 3 );
+ STDLIB_NAPI_ARGV_FLOAT64ARRAY( env, E, elen, argv, 7 );
+ STDLIB_NAPI_ARGV_INT32ARRAY( env, P, plen, argv, 10 );
+ if ( !integer( env, argv[4], &sa1 ) || !integer( env, argv[5], &sa2 ) || !integer( env, argv[6], &oa ) || !integer( env, argv[8], &se ) || !integer( env, argv[9], &oe ) || !integer( env, argv[11], &sp ) || !integer( env, argv[12], &op ) ) {
+ return NULL;
+ }
+ if ( !injective( N, sa1, sa2 ) || (N > 1 && se == 0) || !bounds( N, sa1, sa2, oa, alen, &alo, &ahi ) || !bounds( N, se, 0, oe, elen, &elo, &ehi ) || !bounds( N, sp, 0, op, plen, &plo, &phi ) || overlaps( env, argv[3], alo, ahi, 8, argv[7], elo, ehi, 8 ) || overlaps( env, argv[3], alo, ahi, 8, argv[10], plo, phi, 4 ) || overlaps( env, argv[7], elo, ehi, 8, argv[10], plo, phi, 4 ) ) {
+ napi_throw_range_error( env, NULL, "invalid argument. Insufficient or overlapping indexed storage." );
+ return NULL;
+ }
+ if ( (uintmax_t)N > SIZE_MAX/sizeof( LAPACK_INT ) ) {
+ napi_throw_range_error( env, NULL, "invalid argument. Pivot workspace is too large." );
+ return NULL;
+ }
+ pivots = (LAPACK_INT *)malloc( (size_t)N*sizeof( LAPACK_INT ) );
+ if ( pivots == NULL ) {
+ napi_throw_error( env, NULL, "allocation failed. Unable to allocate pivot workspace." );
+ return NULL;
+ }
+ for ( i = 0; i < N; i++ ) {
+ pivots[i] = (LAPACK_INT)P[ op+(i*sp) ];
+ }
+ result = API_SUFFIX(c_dsyconvf_rook_ndarray)( (LAPACK_UPLO)u, (char)w, (LAPACK_INT)N, A, (LAPACK_INT)sa1, (LAPACK_INT)sa2, (LAPACK_INT)oa, E, (LAPACK_INT)se, (LAPACK_INT)oe, pivots, 1, 0 );
+ free( pivots );
+ if ( result != 0 ) {
+ napi_throw_range_error( env, NULL, "invalid argument. Invalid metadata or signed rook pivots." );
+ return NULL;
+ }
+ STDLIB_NAPI_CREATE_INT32( env, 0, out );
+ return out;
+}
+
+STDLIB_NAPI_MODULE_EXPORT_FCN( addon )
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/dsyconvf_rook.c b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/dsyconvf_rook.c
new file mode 100644
index 000000000000..b07424694b9b
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/dsyconvf_rook.c
@@ -0,0 +1,79 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include "stdlib/lapack/base/dsyconvf_rook.h"
+#include "validation.h"
+
+/**
+* Converts or reverts the storage of a symmetric rook-pivoted factorization.
+*
+* @param layout matrix storage layout
+* @param uplo stored matrix triangle
+* @param way 'C'/'c' to convert or 'R'/'r' to revert
+* @param N matrix order
+* @param A input/output factor storage
+* @param LDA leading dimension, at least max(1,N)
+* @param E extracted or supplied off-diagonal entries of D
+* @param IPIV read-only, signed one-based LAPACK rook pivots
+* @return zero or a negative one-based argument position
+*/
+LAPACK_INT API_SUFFIX(c_dsyconvf_rook)( const LAPACK_LAYOUT layout, const LAPACK_UPLO uplo, const char way, const LAPACK_INT N, double *A, const LAPACK_INT LDA, double *E, const LAPACK_INT *IPIV ) {
+ LAPACK_INT strideA1;
+ LAPACK_INT strideA2;
+ LAPACK_INT info;
+
+ if ( layout != LAPACK_ROW_MAJOR && layout != LAPACK_COL_MAJOR ) {
+ return dsyconvf_rook_error( "c_dsyconvf_rook", -1 );
+ }
+ if ( uplo != LAPACK_UPPER_TRIANGLE && uplo != LAPACK_LOWER_TRIANGLE ) {
+ return dsyconvf_rook_error( "c_dsyconvf_rook", -2 );
+ }
+ if ( way != 'C' && way != 'c' && way != 'R' && way != 'r' ) {
+ return dsyconvf_rook_error( "c_dsyconvf_rook", -3 );
+ }
+ if ( N < 0 ) {
+ return dsyconvf_rook_error( "c_dsyconvf_rook", -4 );
+ }
+ if ( LDA < 1 || LDA < N ) {
+ return dsyconvf_rook_error( "c_dsyconvf_rook", -6 );
+ }
+ if ( N == 0 ) {
+ return 0;
+ }
+ if ( layout == LAPACK_COL_MAJOR ) {
+ strideA1 = 1;
+ strideA2 = LDA;
+ } else {
+ strideA1 = LDA;
+ strideA2 = 1;
+ }
+ info = dsyconvf_rook_validate( uplo, way, N, A, strideA1, strideA2, 0, E, 1, 0, IPIV, 1, 0 );
+ if ( info != 0 ) {
+ if ( info == -4 ) {
+ info = -5;
+ } else if ( info == -5 || info == -6 || info == -7 ) {
+ info = -6;
+ } else if ( info >= -10 ) {
+ info = -7;
+ } else {
+ info = -8;
+ }
+ return dsyconvf_rook_error( "c_dsyconvf_rook", info );
+ }
+ return API_SUFFIX(c_dsyconvf_rook_ndarray)( uplo, way, N, A, strideA1, strideA2, 0, E, 1, 0, IPIV, 1, 0 );
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/dsyconvf_rook_ndarray.c b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/dsyconvf_rook_ndarray.c
new file mode 100644
index 000000000000..8ff7b8a16853
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/dsyconvf_rook_ndarray.c
@@ -0,0 +1,247 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+/*
+* The conversion/reversion algorithm below is adapted from Reference-LAPACK
+* DSYCONVF_ROOK at commit 2e5d9c1273435fbd953adb294ed603e4789afaba,
+* SRC/dsyconvf_rook.f (blob fb5c4889ca6e78541393b72afb0e98f61a25744a).
+* The upstream algorithm is licensed under the following BSD terms.
+* See also the package NOTICE for binary-distribution attribution.
+*
+* Copyright (c) 1992-2025 The University of Tennessee and The University
+* of Tennessee Research Foundation. All rights
+* reserved.
+* Copyright (c) 2000-2025 The University of California Berkeley. All
+* rights reserved.
+* Copyright (c) 2006-2025 The University of Colorado Denver. All rights
+* reserved.
+*
+* $COPYRIGHT$
+*
+* Additional copyrights may follow
+*
+* $HEADER$
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+*
+* - Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+*
+* - Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer listed
+* in this license in the documentation and/or other materials
+* provided with the distribution.
+*
+* - Neither the name of the copyright holders nor the names of its
+* contributors may be used to endorse or promote products derived from
+* this software without specific prior written permission.
+*
+* The copyright holders provide no reassurances that the source code
+* provided does not infringe any patent, copyright, or any other
+* intellectual property rights of third parties. The copyright holders
+* disclaim any liability to any recipient for claims brought against
+* recipient by any third party for infringement of that parties
+* intellectual property rights.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "stdlib/lapack/base/dsyconvf_rook.h"
+#include "stdlib/blas/base/dswap.h"
+#include "validation.h"
+
+/**
+* Swaps row fragments using the existing configured-width DSWAP dependency.
+*
+* Validation has already checked every physical index and the dependency's
+* post-iteration integer arithmetic. Rebasing avoids narrowing matrix offsets.
+*/
+static void dsyconvf_rook_swap( double *A, const intmax_t strideA1, const intmax_t strideA2, const intmax_t offsetA, const intmax_t row1, const intmax_t row2, const intmax_t column, const intmax_t count ) {
+ intmax_t offset1;
+ intmax_t offset2;
+
+ if ( row1 == row2 || count == 0 ) {
+ return;
+ }
+ offset1 = offsetA+row1*strideA1+column*strideA2;
+ offset2 = offsetA+row2*strideA1+column*strideA2;
+ API_SUFFIX(c_dswap_ndarray)( (CBLAS_INT)count, A+offset1, (CBLAS_INT)strideA2, 0, A+offset2, (CBLAS_INT)strideA2, 0 );
+}
+
+/**
+* Converts or reverts symmetric rook factor storage using alternative indexing.
+*
+* @param uplo stored matrix triangle
+* @param way 'C'/'c' to convert or 'R'/'r' to revert
+* @param N matrix order
+* @param A input/output factor storage
+* @param strideA1 first matrix dimension stride
+* @param strideA2 second matrix dimension stride
+* @param offsetA matrix starting index
+* @param E extracted or supplied off-diagonal entries of D
+* @param strideE E stride
+* @param offsetE E starting index
+* @param IPIV read-only, signed one-based LAPACK rook pivots
+* @param strideIPIV IPIV stride
+* @param offsetIPIV IPIV starting index
+* @return zero or a negative one-based argument position
+*/
+LAPACK_INT API_SUFFIX(c_dsyconvf_rook_ndarray)( const LAPACK_UPLO uplo, const char way, const LAPACK_INT N, double *A, const LAPACK_INT strideA1, const LAPACK_INT strideA2, const LAPACK_INT offsetA, double *E, const LAPACK_INT strideE, const LAPACK_INT offsetE, const LAPACK_INT *IPIV, const LAPACK_INT strideIPIV, const LAPACK_INT offsetIPIV ) {
+ const intmax_t n = (intmax_t)N;
+ const int convert = way == 'C' || way == 'c';
+ LAPACK_INT info;
+ intmax_t target1;
+ intmax_t target2;
+ intmax_t count;
+ intmax_t index;
+ intmax_t i;
+
+ info = dsyconvf_rook_validate( uplo, way, N, A, strideA1, strideA2, offsetA, E, strideE, offsetE, IPIV, strideIPIV, offsetIPIV );
+ if ( info != 0 ) {
+ return dsyconvf_rook_error( "c_dsyconvf_rook_ndarray", info );
+ }
+ if ( N == 0 ) {
+ return 0;
+ }
+ if ( uplo == LAPACK_UPPER_TRIANGLE ) {
+ if ( convert ) {
+ // Extract all 2-by-2 block values before applying any permutation.
+ E[ offsetE ] = 0.0;
+ i = n-1;
+ while ( i > 0 ) {
+ if ( IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ] < 0 ) {
+ index = (intmax_t)offsetA+(i-1)*strideA1+i*strideA2;
+ E[ (intmax_t)offsetE+i*strideE ] = A[ index ];
+ E[ (intmax_t)offsetE+(i-1)*strideE ] = 0.0;
+ A[ index ] = 0.0;
+ i -= 1;
+ } else {
+ E[ (intmax_t)offsetE+i*strideE ] = 0.0;
+ }
+ i -= 1;
+ }
+ // Upper factorization order: second pair row, then first pair row.
+ i = n-1;
+ while ( i >= 0 ) {
+ target1 = IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ];
+ count = n-i-1;
+ if ( target1 > 0 ) {
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, i, target1-1, i+1, count );
+ } else {
+ target1 = -target1-1;
+ target2 = -((intmax_t)IPIV[ (intmax_t)offsetIPIV+(i-1)*strideIPIV ])-1;
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, i, target1, i+1, count );
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, i-1, target2, i+1, count );
+ i -= 1;
+ }
+ i -= 1;
+ }
+ } else {
+ // Reverse the permutation order before restoring block values.
+ i = 0;
+ while ( i < n ) {
+ target1 = IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ];
+ if ( target1 > 0 ) {
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, target1-1, i, i+1, n-i-1 );
+ } else {
+ i += 1;
+ target1 = -((intmax_t)IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ])-1;
+ target2 = -((intmax_t)IPIV[ (intmax_t)offsetIPIV+(i-1)*strideIPIV ])-1;
+ count = n-i-1;
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, target2, i-1, i+1, count );
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, target1, i, i+1, count );
+ }
+ i += 1;
+ }
+ i = n-1;
+ while ( i > 0 ) {
+ if ( IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ] < 0 ) {
+ A[ (intmax_t)offsetA+(i-1)*strideA1+i*strideA2 ] = E[ (intmax_t)offsetE+i*strideE ];
+ i -= 1;
+ }
+ i -= 1;
+ }
+ }
+ } else if ( convert ) {
+ E[ (intmax_t)offsetE+(n-1)*strideE ] = 0.0;
+ i = 0;
+ while ( i < n ) {
+ if ( i < n-1 && IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ] < 0 ) {
+ index = (intmax_t)offsetA+(i+1)*strideA1+i*strideA2;
+ E[ (intmax_t)offsetE+i*strideE ] = A[ index ];
+ E[ (intmax_t)offsetE+(i+1)*strideE ] = 0.0;
+ A[ index ] = 0.0;
+ i += 1;
+ } else {
+ E[ (intmax_t)offsetE+i*strideE ] = 0.0;
+ }
+ i += 1;
+ }
+ // Lower factorization order: first pair row, then second pair row.
+ i = 0;
+ while ( i < n ) {
+ target1 = IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ];
+ if ( target1 > 0 ) {
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, i, target1-1, 0, i );
+ } else {
+ target1 = -target1-1;
+ target2 = -((intmax_t)IPIV[ (intmax_t)offsetIPIV+(i+1)*strideIPIV ])-1;
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, i, target1, 0, i );
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, i+1, target2, 0, i );
+ i += 1;
+ }
+ i += 1;
+ }
+ } else {
+ i = n-1;
+ while ( i >= 0 ) {
+ target1 = IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ];
+ if ( target1 > 0 ) {
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, target1-1, i, 0, i );
+ } else {
+ i -= 1;
+ target1 = -((intmax_t)IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ])-1;
+ target2 = -((intmax_t)IPIV[ (intmax_t)offsetIPIV+(i+1)*strideIPIV ])-1;
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, target2, i+1, 0, i );
+ dsyconvf_rook_swap( A, strideA1, strideA2, offsetA, target1, i, 0, i );
+ }
+ i -= 1;
+ }
+ i = 0;
+ while ( i < n-1 ) {
+ if ( IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ] < 0 ) {
+ A[ (intmax_t)offsetA+(i+1)*strideA1+i*strideA2 ] = E[ (intmax_t)offsetE+i*strideE ];
+ i += 1;
+ }
+ i += 1;
+ }
+ }
+ return 0;
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/validation.h b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/validation.h
new file mode 100644
index 000000000000..d1f1f5ef2129
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/src/validation.h
@@ -0,0 +1,301 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#ifndef STDLIB_LAPACK_BASE_DSYCONVF_ROOK_VALIDATION_H
+#define STDLIB_LAPACK_BASE_DSYCONVF_ROOK_VALIDATION_H
+
+#include "stdlib/lapack/base/shared.h"
+#include "stdlib/lapack/base/xerbla.h"
+#include
+#include
+#include
+
+// The configured integer types must be signed and no wider than intmax_t.
+typedef char dsyconvf_rook_lapack_integer_check[ ( sizeof( LAPACK_INT ) <= sizeof( intmax_t ) && (LAPACK_INT)-1 < 0 ) ? 1 : -1 ];
+typedef char dsyconvf_rook_blas_integer_check[ ( sizeof( CBLAS_INT ) <= sizeof( intmax_t ) && (CBLAS_INT)-1 < 0 ) ? 1 : -1 ];
+
+/**
+* Returns the largest configured LAPACK integer.
+*/
+static intmax_t dsyconvf_rook_lapack_max( void ) {
+ return (intmax_t)( UINTMAX_MAX >> ( (sizeof( uintmax_t )-sizeof( LAPACK_INT ))*CHAR_BIT + 1 ) );
+}
+
+/**
+* Returns the largest configured BLAS integer, independently of LAPACK_INT.
+*/
+static uintmax_t dsyconvf_rook_blas_max( void ) {
+ return UINTMAX_MAX >> ( (sizeof( uintmax_t )-sizeof( CBLAS_INT ))*CHAR_BIT + 1 );
+}
+
+/**
+* Computes a signed magnitude without negating the minimum signed integer.
+*/
+static uintmax_t dsyconvf_rook_magnitude( const intmax_t value ) {
+ if ( value < 0 ) {
+ return (uintmax_t)( -(value+1) ) + 1;
+ }
+ return (uintmax_t)value;
+}
+
+/**
+* Computes an exactly checked LAPACK integer product with a nonnegative count.
+*/
+static int dsyconvf_rook_product( const uintmax_t count, const intmax_t stride, intmax_t *result ) {
+ const intmax_t limit = dsyconvf_rook_lapack_max();
+ uintmax_t magnitude;
+ uintmax_t bound;
+
+ if ( count == 0 || stride == 0 ) {
+ *result = 0;
+ return 1;
+ }
+ magnitude = dsyconvf_rook_magnitude( stride );
+ bound = (uintmax_t)limit;
+ if ( stride < 0 ) {
+ bound += 1;
+ }
+ if ( count > bound/magnitude ) {
+ return 0;
+ }
+ magnitude *= count;
+ if ( stride < 0 ) {
+ if ( magnitude == (uintmax_t)limit+1 ) {
+ *result = -limit-1;
+ } else {
+ *result = -(intmax_t)magnitude;
+ }
+ } else {
+ *result = (intmax_t)magnitude;
+ }
+ return 1;
+}
+
+/**
+* Computes an exactly checked LAPACK integer sum.
+*/
+static int dsyconvf_rook_sum( const intmax_t x, const intmax_t y, intmax_t *result ) {
+ const intmax_t limit = dsyconvf_rook_lapack_max();
+ const intmax_t minimum = -limit-1;
+
+ if ( ( y > 0 && x > limit-y ) || ( y < 0 && x < minimum-y ) ) {
+ return 0;
+ }
+ *result = x+y;
+ return 1;
+}
+
+/**
+* Checks a nonnegative physical index against integer and pointer limits.
+*/
+static int dsyconvf_rook_index_valid( const intmax_t index, const size_t element_size ) {
+ return index >= 0 && (uintmax_t)index <= (uintmax_t)PTRDIFF_MAX/element_size;
+}
+
+/**
+* Computes the greatest common divisor of two positive magnitudes.
+*/
+static uintmax_t dsyconvf_rook_gcd( uintmax_t x, uintmax_t y ) {
+ uintmax_t remainder;
+
+ while ( y != 0 ) {
+ remainder = x%y;
+ x = y;
+ y = remainder;
+ }
+ return x;
+}
+
+/**
+* Checks a strided vector's physical endpoints after its product was checked.
+*/
+static int dsyconvf_rook_vector_valid( const intmax_t offset, const intmax_t delta, const size_t element_size ) {
+ intmax_t endpoint;
+
+ return dsyconvf_rook_sum( offset, delta, &endpoint ) && dsyconvf_rook_index_valid( offset, element_size ) && dsyconvf_rook_index_valid( endpoint, element_size );
+}
+
+/**
+* Checks the exact integer arithmetic used by both existing DSWAP paths.
+*
+* Row pointers are rebased before calling DSWAP, so both supplied offsets are
+* zero. The conservative magnitude bound also covers Fortran's one-based
+* starting index, its final stride increment, and loop-control increments.
+*/
+static int dsyconvf_rook_swap_valid( const intmax_t count, const intmax_t stride ) {
+ const uintmax_t limit = dsyconvf_rook_blas_max();
+ const uintmax_t length = (uintmax_t)count;
+ const uintmax_t magnitude = dsyconvf_rook_magnitude( stride );
+
+ if ( count == 0 ) {
+ return 1;
+ }
+ if ( length > limit || limit-length < 3 || magnitude > limit ) {
+ return 0;
+ }
+ return magnitude == 0 || length <= (limit-1)/magnitude;
+}
+
+/**
+* Validates all active metadata and the complete signed rook-pivot sequence.
+*
+* Returns ndarray argument positions without printing or changing any array.
+* Allocation capacities and disjoint physical storage are caller preconditions.
+*/
+static LAPACK_INT dsyconvf_rook_validate( const LAPACK_UPLO uplo, const char way, const LAPACK_INT N, const double *A, const LAPACK_INT strideA1, const LAPACK_INT strideA2, const LAPACK_INT offsetA, const double *E, const LAPACK_INT strideE, const LAPACK_INT offsetE, const LAPACK_INT *IPIV, const LAPACK_INT strideIPIV, const LAPACK_INT offsetIPIV ) {
+ const intmax_t n = (intmax_t)N;
+ uintmax_t magnitude1;
+ uintmax_t magnitude2;
+ uintmax_t divisor;
+ uintmax_t target1;
+ uintmax_t target2;
+ intmax_t delta1;
+ intmax_t delta2;
+ intmax_t corner1;
+ intmax_t corner2;
+ intmax_t corner3;
+ intmax_t pivot1;
+ intmax_t pivot2;
+ intmax_t count;
+ intmax_t i;
+
+ if ( uplo != LAPACK_UPPER_TRIANGLE && uplo != LAPACK_LOWER_TRIANGLE ) {
+ return -1;
+ }
+ if ( way != 'C' && way != 'c' && way != 'R' && way != 'r' ) {
+ return -2;
+ }
+ if ( N < 0 ) {
+ return -3;
+ }
+ if ( N == 0 ) {
+ return 0;
+ }
+ if ( A == NULL ) {
+ return -4;
+ }
+ if ( ( N > 1 && strideA1 == 0 ) || !dsyconvf_rook_product( (uintmax_t)(n-1), strideA1, &delta1 ) ) {
+ return -5;
+ }
+ if ( ( N > 1 && strideA2 == 0 ) || !dsyconvf_rook_product( (uintmax_t)(n-1), strideA2, &delta2 ) ) {
+ return -6;
+ }
+ if ( N > 1 ) {
+ magnitude1 = dsyconvf_rook_magnitude( strideA1 );
+ magnitude2 = dsyconvf_rook_magnitude( strideA2 );
+ divisor = dsyconvf_rook_gcd( magnitude1, magnitude2 );
+ if ( magnitude2/divisor < (uintmax_t)n && magnitude1/divisor < (uintmax_t)n ) {
+ return -6;
+ }
+ }
+ if ( !dsyconvf_rook_sum( offsetA, delta1, &corner1 ) || !dsyconvf_rook_sum( offsetA, delta2, &corner2 ) || !dsyconvf_rook_sum( corner1, delta2, &corner3 ) ) {
+ return -7;
+ }
+ if ( !dsyconvf_rook_index_valid( offsetA, sizeof( double ) ) || !dsyconvf_rook_index_valid( corner1, sizeof( double ) ) || !dsyconvf_rook_index_valid( corner2, sizeof( double ) ) || !dsyconvf_rook_index_valid( corner3, sizeof( double ) ) ) {
+ return -7;
+ }
+ if ( E == NULL ) {
+ return -8;
+ }
+ if ( ( N > 1 && strideE == 0 ) || !dsyconvf_rook_product( (uintmax_t)(n-1), strideE, &delta1 ) ) {
+ return -9;
+ }
+ if ( !dsyconvf_rook_vector_valid( offsetE, delta1, sizeof( double ) ) ) {
+ return -10;
+ }
+ if ( IPIV == NULL ) {
+ return -11;
+ }
+ if ( !dsyconvf_rook_product( (uintmax_t)(n-1), strideIPIV, &delta1 ) ) {
+ return -12;
+ }
+ if ( !dsyconvf_rook_vector_valid( offsetIPIV, delta1, sizeof( LAPACK_INT ) ) ) {
+ return -13;
+ }
+
+ // Scan in factorization order; the negative targets in each pair are independent.
+ if ( uplo == LAPACK_UPPER_TRIANGLE ) {
+ i = n-1;
+ while ( i >= 0 ) {
+ pivot1 = IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ];
+ target1 = dsyconvf_rook_magnitude( pivot1 );
+ if ( target1 == 0 || target1 > (uintmax_t)(i+1) ) {
+ return -11;
+ }
+ count = n-i-1;
+ if ( pivot1 < 0 ) {
+ if ( i == 0 ) {
+ return -11;
+ }
+ pivot2 = IPIV[ (intmax_t)offsetIPIV+(i-1)*strideIPIV ];
+ target2 = dsyconvf_rook_magnitude( pivot2 );
+ if ( pivot2 >= 0 || target2 > (uintmax_t)(i+1) ) {
+ return -11;
+ }
+ if ( ( target1 != (uintmax_t)(i+1) || target2 != (uintmax_t)i ) && !dsyconvf_rook_swap_valid( count, strideA2 ) ) {
+ return -6;
+ }
+ i -= 2;
+ } else {
+ if ( target1 != (uintmax_t)(i+1) && !dsyconvf_rook_swap_valid( count, strideA2 ) ) {
+ return -6;
+ }
+ i -= 1;
+ }
+ }
+ } else {
+ i = 0;
+ while ( i < n ) {
+ pivot1 = IPIV[ (intmax_t)offsetIPIV+i*strideIPIV ];
+ target1 = dsyconvf_rook_magnitude( pivot1 );
+ if ( target1 < (uintmax_t)(i+1) || target1 > (uintmax_t)n ) {
+ return -11;
+ }
+ if ( pivot1 < 0 ) {
+ if ( i == n-1 ) {
+ return -11;
+ }
+ pivot2 = IPIV[ (intmax_t)offsetIPIV+(i+1)*strideIPIV ];
+ target2 = dsyconvf_rook_magnitude( pivot2 );
+ if ( pivot2 >= 0 || target2 < (uintmax_t)(i+1) || target2 > (uintmax_t)n ) {
+ return -11;
+ }
+ if ( ( target1 != (uintmax_t)(i+1) || target2 != (uintmax_t)(i+2) ) && !dsyconvf_rook_swap_valid( i, strideA2 ) ) {
+ return -6;
+ }
+ i += 2;
+ } else {
+ if ( target1 != (uintmax_t)(i+1) && !dsyconvf_rook_swap_valid( i, strideA2 ) ) {
+ return -6;
+ }
+ i += 1;
+ }
+ }
+ }
+ return 0;
+}
+
+/**
+* Reports a rejected argument through the adopted returning LAPACK helper.
+*/
+static LAPACK_INT dsyconvf_rook_error( const char *name, const LAPACK_INT info ) {
+ API_SUFFIX(lapack_xerbla)( name, info );
+ return info;
+}
+
+#endif // !STDLIB_LAPACK_BASE_DSYCONVF_ROOK_VALIDATION_H
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/common.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/common.js
new file mode 100644
index 000000000000..418ca53fb932
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/common.js
@@ -0,0 +1,256 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+'use strict';
+
+var fromString = require( '@stdlib/buffer/from-string' );
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var Uint8Array = require( '@stdlib/array/uint8' );
+var data = require( './fixtures/lapack.json' ).fixtures;
+/**
+* Decodes reference IEEE754 bits without rounding decimal fixtures.
+* @private
+* @param {string} hex - IEEE754 hexadecimal bits
+* @returns {number} number
+*/
+function decode(hex) {
+ var b;
+ b = fromString(hex.match(/../g).reverse().join(''), 'hex');
+ return b.readDoubleLE(0);
+}
+/**
+* Checks numeric storage, distinguishing signed zeros and accepting NaN storage values.
+* @private
+* @param {TypedArray} a - actual storage
+* @param {TypedArray} b - expected storage
+* @returns {boolean} whether values match
+*/
+function equal(a, b) {
+ var i;
+ for (i = 0; i < a.length; i++) {
+ if (a[i] !== b[i] && !(a[i] !== a[i] && b[i] !== b[i])) {
+ return false;
+ }
+ if (a[i] === 0 && 1 / a[i] !== 1 / b[i]) {
+ return false;
+ }
+ }
+ return true;
+}
+/**
+* Packs independent indexed views with typed-array byte offsets and guards.
+* @private
+* @param {Object} f - directional reference fixture
+* @param {integer} sa1 - row stride
+* @param {integer} sa2 - column stride
+* @param {integer} se - E stride
+* @param {integer} sp - pivot stride
+* @returns {Object} arguments and whole-buffer expectations
+*/
+function pack(f, sa1, sa2, se, sp) {
+ var expectedA;
+ var expectedE;
+ var originalP;
+ var bytesA;
+ var bytesE;
+ var afull;
+ var efull;
+ var maskA;
+ var maskE;
+ var pfull;
+ var alen;
+ var elen;
+ var plen;
+ var piv;
+ var ix;
+ var oa;
+ var oe;
+ var op;
+ var a;
+ var e;
+ var i;
+ var j;
+ var n;
+ n = f.n;
+ oa = 4 + (( sa1 < 0 ) ? -(n - 1) * sa1 : 0) + (( sa2 < 0 ) ? -(n - 1) * sa2 : 0);
+ oe = 3 + (( se < 0 ) ? -(n - 1) * se : 0);
+ op = 2 + (( sp < 0 ) ? -(n - 1) * sp : 0);
+ alen = oa + (( sa1 > 0 ) ? ((n - 1)) * sa1 : 0) + (( sa2 > 0 ) ? ((n - 1)) * sa2 : 0) + 6;
+ elen = oe + (( se > 0 ) ? ((n - 1)) * se : 0) + 5;
+ plen = op + (( sp > 0 ) ? ((n - 1)) * sp : 0) + 4;
+ afull = new Float64Array(alen + 6);
+ efull = new Float64Array(elen + 6);
+ pfull = new Int32Array(plen + 6);
+ a = new Float64Array(afull.buffer, 24, alen);
+ e = new Float64Array(efull.buffer, 24, elen);
+ piv = new Int32Array(pfull.buffer, 12, plen);
+ for (i = 0; i < afull.length; i++) {
+ afull[i] = 1024.25 + i;
+ }
+ for (i = 0; i < efull.length; i++) {
+ efull[i] = -1024.25 - i;
+ }
+ for (i = 0; i < pfull.length; i++) {
+ pfull[i] = 701 + i;
+ }
+ maskA = [];
+ maskE = [];
+ for (j = 0; j < n; j++) {
+ for (i = 0; i < n; i++) {
+ ix = oa + (i * sa1) + (j * sa2);
+ a[ix] = decode(f.input_a_hex_col_major[i + (j * n)]);
+ if (( f.uplo === 'U' ) ? i <= j : i >= j) {
+ maskA[3 + ix] = true;
+ }
+ }
+ e[oe + (j * se)] = decode(f.input_e_hex[j]);
+ piv[op + (j * sp)] = f.ipiv_signed_1based[j];
+ if (f.way === 'C') {
+ maskE[3 + oe + (j * se)] = true;
+ }
+ }
+ expectedA = new Float64Array(afull);
+ expectedE = new Float64Array(efull);
+ originalP = new Int32Array(pfull);
+ bytesA = new Uint8Array(new Uint8Array(afull.buffer));
+ bytesE = new Uint8Array(new Uint8Array(efull.buffer));
+ for (j = 0; j < n; j++) {
+ for (i = 0; i < n; i++) {
+ expectedA[3 + oa + (i * sa1) + (j * sa2)] = decode(f.output_a_hex_col_major[i + (j * n)]);
+ }
+ expectedE[3 + oe + (j * se)] = decode(f.output_e_hex[j]);
+ }
+ return {
+ 'args': [
+ ( f.uplo === 'U' ) ? 'upper' : 'lower',
+ ( f.way === 'C' ) ? 'convert' : 'revert',
+ n,
+ a,
+ sa1,
+ sa2,
+ oa,
+ e,
+ se,
+ oe,
+ piv,
+ sp,
+ op
+ ],
+ 'a': afull,
+ 'e': efull,
+ 'p': pfull,
+ 'expectedA': expectedA,
+ 'expectedE': expectedE,
+ 'originalP': originalP,
+ 'maskA': maskA,
+ 'maskE': maskE,
+ 'bytesA': bytesA,
+ 'bytesE': bytesE
+ };
+}
+/**
+* Checks every byte outside the stored mutable envelope elements.
+* @private
+* @param {Float64Array} a - actual whole storage
+* @param {Uint8Array} before - original bytes
+* @param {Array} mask - writable element mask
+* @returns {boolean} whether all guards retain their exact bits
+*/
+function guards(a, before, mask) {
+ var bytes;
+ var i;
+ bytes = new Uint8Array(a.buffer);
+ for (i = 0; i < bytes.length; i++) {
+ if (!mask[((i - (i % 8))) / 8] && bytes[i] !== before[i]) {
+ return false;
+ }
+ }
+ return true;
+}
+/**
+* Exercises both reference directions over independent signed layouts.
+* @private
+* @param {Object} t - assertion context
+* @param {Function} fn - public interface
+* @returns {void}
+*/
+function corpus(t, fn) {
+ var strides;
+ var state;
+ var f;
+ var i;
+ var j;
+ var n;
+ for (i = 0; i < data.length; i++) {
+ f = data[i];
+ n = f.n;
+ if (n === 0) {
+ t.strictEqual(fn.ndarray(( f.uplo === 'U' ) ? 'upper' : 'lower', ( f.way === 'C' ) ? 'convert' : 'revert', 0, null, NaN, NaN, NaN, null, NaN, NaN, null, NaN, NaN), 0, f.id + ' empty no access');
+ continue;
+ }
+ strides = [
+ [
+ 1,
+ n + 2
+ ],
+ [
+ n + 3,
+ 1
+ ],
+ [
+ 2,
+ (2 * n) + 3
+ ],
+ [
+ -1,
+ n + 3
+ ],
+ [
+ 1,
+ -n - 3
+ ],
+ [
+ -2,
+ (-2 * n) - 3
+ ],
+ [
+ 3,
+ (-3 * n) - 2
+ ],
+ [
+ -3,
+ (3 * n) + 2
+ ]
+ ];
+ for (j = 0; j < strides.length; j++) {
+ state = pack(f, strides[j][0], strides[j][1], ( j % 2 ) ? -2 : 3, ( j % 2 ) ? -3 : 2);
+ t.strictEqual(fn.ndarray.apply(null, state.args), 0, f.id + ' status ' + j);
+ t.ok(equal(state.a, state.expectedA), f.id + ' A ' + j);
+ t.ok(equal(state.e, state.expectedE), f.id + ' E ' + j);
+ t.deepEqual(state.p, state.originalP, f.id + ' signed pivots ' + j);
+ t.ok(guards(state.a, state.bytesA, state.maskA), f.id + ' A guards ' + j);
+ t.ok(guards(state.e, state.bytesE, state.maskE), f.id + ' E guards ' + j);
+ }
+ }
+}
+module.exports = {
+ 'pack': pack,
+ 'equal': equal,
+ 'corpus': corpus,
+ 'fixtures': data
+};
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/fixtures/lapack.json b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/fixtures/lapack.json
new file mode 100644
index 000000000000..7d2d387ea45f
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/fixtures/lapack.json
@@ -0,0 +1,5492 @@
+{
+ "reference_repository": "Reference-LAPACK/lapack",
+ "reference_sha": "2e5d9c1273435fbd953adb294ed603e4789afaba",
+ "reference_blob": "fb5c4889ca6e78541393b72afb0e98f61a25744a",
+ "reference_fixture_provenance": "64 authentic SciPy/OpenBLAS DSYTRF_ROOK/RK factorizations;8 supplied storage fixtures, all unchanged pinned routine results verified at O0/O3 LP64/ILP64. No ordinary factorization substitution.",
+ "fixtures": [
+ {
+ "id": "empty-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 0,
+ "input_a_hex_col_major": [],
+ "input_e_hex": [],
+ "ipiv_signed_1based": [],
+ "output_a_hex_col_major": [],
+ "output_e_hex": [],
+ "info": 0
+ },
+ {
+ "id": "empty-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 0,
+ "input_a_hex_col_major": [],
+ "input_e_hex": [],
+ "ipiv_signed_1based": [],
+ "output_a_hex_col_major": [],
+ "output_e_hex": [],
+ "info": 0
+ },
+ {
+ "id": "empty-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 0,
+ "input_a_hex_col_major": [],
+ "input_e_hex": [],
+ "ipiv_signed_1based": [],
+ "output_a_hex_col_major": [],
+ "output_e_hex": [],
+ "info": 0
+ },
+ {
+ "id": "empty-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 0,
+ "input_a_hex_col_major": [],
+ "input_e_hex": [],
+ "ipiv_signed_1based": [],
+ "output_a_hex_col_major": [],
+ "output_e_hex": [],
+ "info": 0
+ },
+ {
+ "id": "single-negative-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 1,
+ "input_a_hex_col_major": [
+ "c008000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1
+ ],
+ "output_a_hex_col_major": [
+ "c008000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "single-negative-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 1,
+ "input_a_hex_col_major": [
+ "c008000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1
+ ],
+ "output_a_hex_col_major": [
+ "c008000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "single-negative-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 1,
+ "input_a_hex_col_major": [
+ "c008000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1
+ ],
+ "output_a_hex_col_major": [
+ "c008000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "single-negative-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 1,
+ "input_a_hex_col_major": [
+ "c008000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1
+ ],
+ "output_a_hex_col_major": [
+ "c008000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "single-singular-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 1,
+ "input_a_hex_col_major": [
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "single-singular-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 1,
+ "input_a_hex_col_major": [
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "single-singular-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 1,
+ "input_a_hex_col_major": [
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "single-singular-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 1,
+ "input_a_hex_col_major": [
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "exchange2-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 2,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -2
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "3ff0000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "exchange2-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 2,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "3ff0000000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -2
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "3ff0000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "exchange2-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 2,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "3ff0000000000000",
+ "7ff8000000000102",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -2
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000102",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "exchange2-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 2,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000102",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -2
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "3ff0000000000000",
+ "7ff8000000000102",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "diagonal4-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "c010000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "4008000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "4000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "c010000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "4008000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "4000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "diagonal4-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "c010000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "4008000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "4000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "c010000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "4008000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "4000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "diagonal4-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "c010000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000104",
+ "4008000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "4000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "c010000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000104",
+ "4008000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "4000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "diagonal4-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "c010000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000104",
+ "4008000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "4000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "c010000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000104",
+ "4008000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "4000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "all-zero4-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "all-zero4-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "all-zero4-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000104",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000104",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "all-zero4-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000104",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000104",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "rank-one4-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "rank-one4-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010b",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "rank-one4-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "7ff8000000000104",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "7ff8000000000104",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "rank-one4-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "7ff8000000000104",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "3ff0000000000000",
+ "7ff8000000000104",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "exchange-blocks6-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "4008000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "8000000000000000",
+ "8000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "7ff800000000011d",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "4008000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -2,
+ -3,
+ -4,
+ -5,
+ -6
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "7ff800000000011d",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "exchange-blocks6-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "7ff800000000011d",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -2,
+ -3,
+ -4,
+ -5,
+ -6
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "4008000000000000",
+ "0000000000000000",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "8000000000000000",
+ "8000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "0000000000000000",
+ "7ff800000000011d",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "4008000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "exchange-blocks6-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "4008000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000106",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "0000000000000000",
+ "4008000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "0000000000000000",
+ "4008000000000000",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -2,
+ -3,
+ -4,
+ -5,
+ -6
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000106",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "0000000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "exchange-blocks6-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "0000000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000106",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "0000000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "0000000000000000",
+ "0000000000000000",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -2,
+ -3,
+ -4,
+ -5,
+ -6
+ ],
+ "output_a_hex_col_major": [
+ "0000000000000000",
+ "4008000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000106",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "0000000000000000",
+ "4008000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "0000000000000000",
+ "8000000000000000",
+ "8000000000000000",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "0000000000000000",
+ "4008000000000000",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000",
+ "4008000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-3-seed1-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 3,
+ "input_a_hex_col_major": [
+ "3fd10b41e7bf40d2",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "bfe0ce07aa1dbcbe",
+ "3fc738070e4b3180",
+ "7ff8000000000105",
+ "bfd220737b1f2603",
+ "3ff68bfb2d2f8052",
+ "3fd7552775a92fee"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3
+ ],
+ "output_a_hex_col_major": [
+ "3fd10b41e7bf40d2",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "bfe0ce07aa1dbcbe",
+ "3fc738070e4b3180",
+ "7ff8000000000105",
+ "bfd220737b1f2603",
+ "3ff68bfb2d2f8052",
+ "3fd7552775a92fee"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-3-seed1-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 3,
+ "input_a_hex_col_major": [
+ "3fd10b41e7bf40d2",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "bfe0ce07aa1dbcbe",
+ "3fc738070e4b3180",
+ "7ff8000000000105",
+ "bfd220737b1f2603",
+ "3ff68bfb2d2f8052",
+ "3fd7552775a92fee"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3
+ ],
+ "output_a_hex_col_major": [
+ "3fd10b41e7bf40d2",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "bfe0ce07aa1dbcbe",
+ "3fc738070e4b3180",
+ "7ff8000000000105",
+ "bfd220737b1f2603",
+ "3ff68bfb2d2f8052",
+ "3fd7552775a92fee"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-3-seed1-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 3,
+ "input_a_hex_col_major": [
+ "3fd61e0d28bbb3a1",
+ "bfe64b64181237a1",
+ "bfd31f6bf8e2f01e",
+ "7ff8000000000103",
+ "3fe79a8263a32f3a",
+ "3fe32ac1090c5022",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fb1affa2da7ed91"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3
+ ],
+ "output_a_hex_col_major": [
+ "3fd61e0d28bbb3a1",
+ "bfe64b64181237a1",
+ "bfd31f6bf8e2f01e",
+ "7ff8000000000103",
+ "3fe79a8263a32f3a",
+ "3fe32ac1090c5022",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fb1affa2da7ed91"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-3-seed1-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 3,
+ "input_a_hex_col_major": [
+ "3fd61e0d28bbb3a1",
+ "bfe64b64181237a1",
+ "bfd31f6bf8e2f01e",
+ "7ff8000000000103",
+ "3fe79a8263a32f3a",
+ "3fe32ac1090c5022",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fb1affa2da7ed91"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3
+ ],
+ "output_a_hex_col_major": [
+ "3fd61e0d28bbb3a1",
+ "bfe64b64181237a1",
+ "bfd31f6bf8e2f01e",
+ "7ff8000000000103",
+ "3fe79a8263a32f3a",
+ "3fe32ac1090c5022",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fb1affa2da7ed91"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-3-seed42-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 3,
+ "input_a_hex_col_major": [
+ "bfd6d95b5e868536",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "3ff7129f00d84fd0",
+ "3fd467a9be0b6ae4",
+ "7ff8000000000105",
+ "3f9a17119d372f13",
+ "3fda8b6cdeeeede5",
+ "bfff3770ac89d08f"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 2
+ ],
+ "output_a_hex_col_major": [
+ "bfd6d95b5e868536",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "3ff7129f00d84fd0",
+ "3fd467a9be0b6ae4",
+ "7ff8000000000105",
+ "3f9a17119d372f13",
+ "3fda8b6cdeeeede5",
+ "bfff3770ac89d08f"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-3-seed42-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 3,
+ "input_a_hex_col_major": [
+ "bfd6d95b5e868536",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "3ff7129f00d84fd0",
+ "3fd467a9be0b6ae4",
+ "7ff8000000000105",
+ "3f9a17119d372f13",
+ "3fda8b6cdeeeede5",
+ "bfff3770ac89d08f"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 2
+ ],
+ "output_a_hex_col_major": [
+ "bfd6d95b5e868536",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "3ff7129f00d84fd0",
+ "3fd467a9be0b6ae4",
+ "7ff8000000000105",
+ "3f9a17119d372f13",
+ "3fda8b6cdeeeede5",
+ "bfff3770ac89d08f"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-3-seed42-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 3,
+ "input_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "bfc4e1929847b4e1",
+ "3ff70efcde687f9c",
+ "7ff8000000000103",
+ "bfff58a7ee5c4d56",
+ "3fd8183005c6ddb5",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "bfd7cee14f327683"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3
+ ],
+ "output_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "bfc4e1929847b4e1",
+ "3ff70efcde687f9c",
+ "7ff8000000000103",
+ "bfff58a7ee5c4d56",
+ "3fd8183005c6ddb5",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "bfd7cee14f327683"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-3-seed42-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 3,
+ "input_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "bfc4e1929847b4e1",
+ "3ff70efcde687f9c",
+ "7ff8000000000103",
+ "bfff58a7ee5c4d56",
+ "3fd8183005c6ddb5",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "bfd7cee14f327683"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3
+ ],
+ "output_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "bfc4e1929847b4e1",
+ "3ff70efcde687f9c",
+ "7ff8000000000103",
+ "bfff58a7ee5c4d56",
+ "3fd8183005c6ddb5",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "bfd7cee14f327683"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-4-seed3-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "4011af3f1f883626",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "3ff5e771baa44bc6",
+ "bff20e79938af57a",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fd72f63366423b8",
+ "3fef52b727c15f46",
+ "3fcce69363d82196",
+ "7ff800000000010b",
+ "3fdbc37b961fbcde",
+ "bfe3922ffe3def88",
+ "bfe68645bb70ac21",
+ "bfd902e21a1dee83"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -3,
+ -4
+ ],
+ "output_a_hex_col_major": [
+ "4011af3f1f883626",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "3ff5e771baa44bc6",
+ "bff20e79938af57a",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fd72f63366423b8",
+ "3fef52b727c15f46",
+ "3fcce69363d82196",
+ "7ff800000000010b",
+ "3fdbc37b961fbcde",
+ "bfe3922ffe3def88",
+ "0000000000000000",
+ "bfd902e21a1dee83"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bfe68645bb70ac21"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-4-seed3-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "4011af3f1f883626",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "3ff5e771baa44bc6",
+ "bff20e79938af57a",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fd72f63366423b8",
+ "3fef52b727c15f46",
+ "3fcce69363d82196",
+ "7ff800000000010b",
+ "3fdbc37b961fbcde",
+ "bfe3922ffe3def88",
+ "0000000000000000",
+ "bfd902e21a1dee83"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bfe68645bb70ac21"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -3,
+ -4
+ ],
+ "output_a_hex_col_major": [
+ "4011af3f1f883626",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "3ff5e771baa44bc6",
+ "bff20e79938af57a",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fd72f63366423b8",
+ "3fef52b727c15f46",
+ "3fcce69363d82196",
+ "7ff800000000010b",
+ "3fdbc37b961fbcde",
+ "bfe3922ffe3def88",
+ "bfe68645bb70ac21",
+ "bfd902e21a1dee83"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bfe68645bb70ac21"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-4-seed3-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "400053cd67810b16",
+ "bfe79580c971dd4a",
+ "bfbc0aa5c69678f1",
+ "bfcaa005b6cca19b",
+ "7ff8000000000104",
+ "bff52fc341dbde4c",
+ "bfd7868e3a1f2602",
+ "3fe26f856c731ffd",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "3fd855872b5cc799",
+ "bff07e359e52902e",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "bfa447972a210ddb"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -3,
+ -4
+ ],
+ "output_a_hex_col_major": [
+ "400053cd67810b16",
+ "bfe79580c971dd4a",
+ "bfbc0aa5c69678f1",
+ "bfcaa005b6cca19b",
+ "7ff8000000000104",
+ "bff52fc341dbde4c",
+ "bfd7868e3a1f2602",
+ "3fe26f856c731ffd",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "3fd855872b5cc799",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "bfa447972a210ddb"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "bff07e359e52902e",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-4-seed3-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "400053cd67810b16",
+ "bfe79580c971dd4a",
+ "bfbc0aa5c69678f1",
+ "bfcaa005b6cca19b",
+ "7ff8000000000104",
+ "bff52fc341dbde4c",
+ "bfd7868e3a1f2602",
+ "3fe26f856c731ffd",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "3fd855872b5cc799",
+ "0000000000000000",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "bfa447972a210ddb"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "bff07e359e52902e",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -3,
+ -4
+ ],
+ "output_a_hex_col_major": [
+ "400053cd67810b16",
+ "bfe79580c971dd4a",
+ "bfbc0aa5c69678f1",
+ "bfcaa005b6cca19b",
+ "7ff8000000000104",
+ "bff52fc341dbde4c",
+ "bfd7868e3a1f2602",
+ "3fe26f856c731ffd",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "3fd855872b5cc799",
+ "bff07e359e52902e",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "bfa447972a210ddb"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "bff07e359e52902e",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-4-seed42-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "3ff888c29d859cae",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "3ff184ee2844c57f",
+ "bff1d47f8f0f8c29",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fe197c40385a95c",
+ "bfaa76b8b8b0662b",
+ "3ff54a09fd11784a",
+ "7ff800000000010b",
+ "bfe2be269aa014bf",
+ "bfde33981fb173c0",
+ "bfe72ffe3463e8f0",
+ "bfeb7f52e8390cb7"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "3ff888c29d859cae",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "3ff184ee2844c57f",
+ "bff1d47f8f0f8c29",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fe197c40385a95c",
+ "bfaa76b8b8b0662b",
+ "3ff54a09fd11784a",
+ "7ff800000000010b",
+ "bfe2be269aa014bf",
+ "bfde33981fb173c0",
+ "bfe72ffe3463e8f0",
+ "bfeb7f52e8390cb7"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-4-seed42-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "3ff888c29d859cae",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "3ff184ee2844c57f",
+ "bff1d47f8f0f8c29",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fe197c40385a95c",
+ "bfaa76b8b8b0662b",
+ "3ff54a09fd11784a",
+ "7ff800000000010b",
+ "bfe2be269aa014bf",
+ "bfde33981fb173c0",
+ "bfe72ffe3463e8f0",
+ "bfeb7f52e8390cb7"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "3ff888c29d859cae",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "3ff184ee2844c57f",
+ "bff1d47f8f0f8c29",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fe197c40385a95c",
+ "bfaa76b8b8b0662b",
+ "3ff54a09fd11784a",
+ "7ff800000000010b",
+ "bfe2be269aa014bf",
+ "bfde33981fb173c0",
+ "bfe72ffe3463e8f0",
+ "bfeb7f52e8390cb7"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-4-seed42-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "bff4d5ba2db7ebc8",
+ "3ff2601e7ea67d84",
+ "3fd1d23fc4731d3e",
+ "bfd3edfc3a0e3d2a",
+ "7ff8000000000104",
+ "40002d969da0bce3",
+ "3fd8c9d8640e420c",
+ "3f9309734595cd1c",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "3fe5a9f0fc532575",
+ "3fe767e1ade9bb6f",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "bff188d3936265a1"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 2,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "bff4d5ba2db7ebc8",
+ "3ff2601e7ea67d84",
+ "3fd1d23fc4731d3e",
+ "bfd3edfc3a0e3d2a",
+ "7ff8000000000104",
+ "40002d969da0bce3",
+ "3fd8c9d8640e420c",
+ "3f9309734595cd1c",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "3fe5a9f0fc532575",
+ "3fe767e1ade9bb6f",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "bff188d3936265a1"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-4-seed42-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 4,
+ "input_a_hex_col_major": [
+ "bff4d5ba2db7ebc8",
+ "3ff2601e7ea67d84",
+ "3fd1d23fc4731d3e",
+ "bfd3edfc3a0e3d2a",
+ "7ff8000000000104",
+ "40002d969da0bce3",
+ "3fd8c9d8640e420c",
+ "3f9309734595cd1c",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "3fe5a9f0fc532575",
+ "3fe767e1ade9bb6f",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "bff188d3936265a1"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 2,
+ 2,
+ 3,
+ 4
+ ],
+ "output_a_hex_col_major": [
+ "bff4d5ba2db7ebc8",
+ "3ff2601e7ea67d84",
+ "3fd1d23fc4731d3e",
+ "bfd3edfc3a0e3d2a",
+ "7ff8000000000104",
+ "40002d969da0bce3",
+ "3fd8c9d8640e420c",
+ "3f9309734595cd1c",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "3fe5a9f0fc532575",
+ "3fe767e1ade9bb6f",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "bff188d3936265a1"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-6-seed11-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3fb7d7ad95ae2aec",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "bff0c875f011e992",
+ "bfc573eb367c6a3b",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "3fd145ac6773593d",
+ "3fc77b4556e8778b",
+ "bff1b6d949921ce7",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "3fc67aa9aa96bbbf",
+ "3fddaf114c72e2fb",
+ "3fc3ccd34a514933",
+ "bff68b93eb908144",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "bfbc632bbace55ac",
+ "3fe989b2fe60586c",
+ "3fee900e10322c5e",
+ "bfa4d687b26b9849",
+ "3feb78b37b56dfbc",
+ "7ff800000000011d",
+ "3fe7c80d6334f868",
+ "bfd02260c29f332a",
+ "bfbe9c518e448a7e",
+ "3fd11d5c74275e97",
+ "bfd029f1ceb84920",
+ "bff7e121cf48309a"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 1,
+ 5
+ ],
+ "output_a_hex_col_major": [
+ "3fb7d7ad95ae2aec",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "bff0c875f011e992",
+ "bfc573eb367c6a3b",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "3fd145ac6773593d",
+ "3fc77b4556e8778b",
+ "bff1b6d949921ce7",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "3fc67aa9aa96bbbf",
+ "3fddaf114c72e2fb",
+ "3fc3ccd34a514933",
+ "bff68b93eb908144",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "bfbc632bbace55ac",
+ "3fe989b2fe60586c",
+ "3fee900e10322c5e",
+ "bfa4d687b26b9849",
+ "3feb78b37b56dfbc",
+ "7ff800000000011d",
+ "bfd029f1ceb84920",
+ "bfd02260c29f332a",
+ "bfbe9c518e448a7e",
+ "3fd11d5c74275e97",
+ "3fe7c80d6334f868",
+ "bff7e121cf48309a"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-6-seed11-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3fb7d7ad95ae2aec",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "bff0c875f011e992",
+ "bfc573eb367c6a3b",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "3fd145ac6773593d",
+ "3fc77b4556e8778b",
+ "bff1b6d949921ce7",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "3fc67aa9aa96bbbf",
+ "3fddaf114c72e2fb",
+ "3fc3ccd34a514933",
+ "bff68b93eb908144",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "bfbc632bbace55ac",
+ "3fe989b2fe60586c",
+ "3fee900e10322c5e",
+ "bfa4d687b26b9849",
+ "3feb78b37b56dfbc",
+ "7ff800000000011d",
+ "bfd029f1ceb84920",
+ "bfd02260c29f332a",
+ "bfbe9c518e448a7e",
+ "3fd11d5c74275e97",
+ "3fe7c80d6334f868",
+ "bff7e121cf48309a"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 1,
+ 5
+ ],
+ "output_a_hex_col_major": [
+ "3fb7d7ad95ae2aec",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "bff0c875f011e992",
+ "bfc573eb367c6a3b",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "3fd145ac6773593d",
+ "3fc77b4556e8778b",
+ "bff1b6d949921ce7",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "3fc67aa9aa96bbbf",
+ "3fddaf114c72e2fb",
+ "3fc3ccd34a514933",
+ "bff68b93eb908144",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "bfbc632bbace55ac",
+ "3fe989b2fe60586c",
+ "3fee900e10322c5e",
+ "bfa4d687b26b9849",
+ "3feb78b37b56dfbc",
+ "7ff800000000011d",
+ "3fe7c80d6334f868",
+ "bfd02260c29f332a",
+ "bfbe9c518e448a7e",
+ "3fd11d5c74275e97",
+ "bfd029f1ceb84920",
+ "bff7e121cf48309a"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-6-seed11-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "bff7e121cf48309a",
+ "bfd02260c29f332a",
+ "bfbe9c518e448a7e",
+ "3fd11d5c74275e97",
+ "3fe7c80d6334f868",
+ "bfd029f1ceb84920",
+ "7ff8000000000106",
+ "3feb78b37b56dfbc",
+ "3fee900e10322c5e",
+ "bfa4d687b26b9849",
+ "3fe989b2fe60586c",
+ "bfbc632bbace55ad",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "bff240f42992c3ca",
+ "3fc87485175c4da1",
+ "3fd110a73dae0a15",
+ "3fd2e8b9da60758f",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "bff5e10104be6360",
+ "3fdbde218a532377",
+ "3fc122b36093d93c",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "bfc573eb367c6a3d",
+ "bff0c875f011e990",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "3fb7d7ad95ae2ae7"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 5,
+ 5,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "bff7e121cf48309a",
+ "3fe7c80d6334f868",
+ "bfbe9c518e448a7e",
+ "3fd11d5c74275e97",
+ "bfd02260c29f332a",
+ "bfd029f1ceb84920",
+ "7ff8000000000106",
+ "3feb78b37b56dfbc",
+ "3fee900e10322c5e",
+ "bfa4d687b26b9849",
+ "3fe989b2fe60586c",
+ "bfbc632bbace55ad",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "bff240f42992c3ca",
+ "3fc87485175c4da1",
+ "3fd110a73dae0a15",
+ "3fd2e8b9da60758f",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "bff5e10104be6360",
+ "3fdbde218a532377",
+ "3fc122b36093d93c",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "bfc573eb367c6a3d",
+ "bff0c875f011e990",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "3fb7d7ad95ae2ae7"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-6-seed11-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "bff7e121cf48309a",
+ "3fe7c80d6334f868",
+ "bfbe9c518e448a7e",
+ "3fd11d5c74275e97",
+ "bfd02260c29f332a",
+ "bfd029f1ceb84920",
+ "7ff8000000000106",
+ "3feb78b37b56dfbc",
+ "3fee900e10322c5e",
+ "bfa4d687b26b9849",
+ "3fe989b2fe60586c",
+ "bfbc632bbace55ad",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "bff240f42992c3ca",
+ "3fc87485175c4da1",
+ "3fd110a73dae0a15",
+ "3fd2e8b9da60758f",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "bff5e10104be6360",
+ "3fdbde218a532377",
+ "3fc122b36093d93c",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "bfc573eb367c6a3d",
+ "bff0c875f011e990",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "3fb7d7ad95ae2ae7"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 5,
+ 5,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "bff7e121cf48309a",
+ "bfd02260c29f332a",
+ "bfbe9c518e448a7e",
+ "3fd11d5c74275e97",
+ "3fe7c80d6334f868",
+ "bfd029f1ceb84920",
+ "7ff8000000000106",
+ "3feb78b37b56dfbc",
+ "3fee900e10322c5e",
+ "bfa4d687b26b9849",
+ "3fe989b2fe60586c",
+ "bfbc632bbace55ad",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "bff240f42992c3ca",
+ "3fc87485175c4da1",
+ "3fd110a73dae0a15",
+ "3fd2e8b9da60758f",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "bff5e10104be6360",
+ "3fdbde218a532377",
+ "3fc122b36093d93c",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "bfc573eb367c6a3d",
+ "bff0c875f011e990",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "3fb7d7ad95ae2ae7"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-6-seed42-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3ffd84bde012c9a7",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "3ff4b46880b7ebb8",
+ "bfe5b2bc73e45aa5",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "3fdfd21f26a6715e",
+ "3fe02c3e8ab17525",
+ "3febd1e225914d79",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "bfeafe767483cb1c",
+ "bfb52ea6ad8dee10",
+ "bfe4813808cadf4a",
+ "3fc30781d01e1e02",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "bfec15c365608bff",
+ "3fd7b57bf99f559a",
+ "bfe1f60ddf97a469",
+ "bff625fbe4ffa5ff",
+ "3fc5c5309f3a9ce3",
+ "7ff800000000011d",
+ "3fd7cb4fe80b2dee",
+ "3fc50d89cfca9acb",
+ "bfe4d95ba8f60dfe",
+ "bfdb7227166de8dc",
+ "3fddabbf7ff0ab37",
+ "3ff21045403538ce"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ -1,
+ -5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "3ffd84bde012c9a7",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "3ff4b46880b7ebb8",
+ "bfe5b2bc73e45aa5",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "3fdfd21f26a6715e",
+ "3fe02c3e8ab17525",
+ "3febd1e225914d79",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "bfeafe767483cb1c",
+ "bfb52ea6ad8dee10",
+ "bfe4813808cadf4a",
+ "3fc30781d01e1e02",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "bfec15c365608bff",
+ "3fd7b57bf99f559a",
+ "bfe1f60ddf97a469",
+ "0000000000000000",
+ "3fc5c5309f3a9ce3",
+ "7ff800000000011d",
+ "bfdb7227166de8dc",
+ "3fc50d89cfca9acb",
+ "bfe4d95ba8f60dfe",
+ "3fd7cb4fe80b2dee",
+ "3fddabbf7ff0ab37",
+ "3ff21045403538ce"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff625fbe4ffa5ff",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-6-seed42-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3ffd84bde012c9a7",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "3ff4b46880b7ebb8",
+ "bfe5b2bc73e45aa5",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "3fdfd21f26a6715e",
+ "3fe02c3e8ab17525",
+ "3febd1e225914d79",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "bfeafe767483cb1c",
+ "bfb52ea6ad8dee10",
+ "bfe4813808cadf4a",
+ "3fc30781d01e1e02",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "bfec15c365608bff",
+ "3fd7b57bf99f559a",
+ "bfe1f60ddf97a469",
+ "0000000000000000",
+ "3fc5c5309f3a9ce3",
+ "7ff800000000011d",
+ "bfdb7227166de8dc",
+ "3fc50d89cfca9acb",
+ "bfe4d95ba8f60dfe",
+ "3fd7cb4fe80b2dee",
+ "3fddabbf7ff0ab37",
+ "3ff21045403538ce"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff625fbe4ffa5ff",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ -1,
+ -5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "3ffd84bde012c9a7",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "3ff4b46880b7ebb8",
+ "bfe5b2bc73e45aa5",
+ "7ff8000000000108",
+ "7ff8000000000109",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "3fdfd21f26a6715e",
+ "3fe02c3e8ab17525",
+ "3febd1e225914d79",
+ "7ff800000000010f",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "bfeafe767483cb1c",
+ "bfb52ea6ad8dee10",
+ "bfe4813808cadf4a",
+ "3fc30781d01e1e02",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "bfec15c365608bff",
+ "3fd7b57bf99f559a",
+ "bfe1f60ddf97a469",
+ "bff625fbe4ffa5ff",
+ "3fc5c5309f3a9ce3",
+ "7ff800000000011d",
+ "3fd7cb4fe80b2dee",
+ "3fc50d89cfca9acb",
+ "bfe4d95ba8f60dfe",
+ "bfdb7227166de8dc",
+ "3fddabbf7ff0ab37",
+ "3ff21045403538ce"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff625fbe4ffa5ff",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-6-seed42-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "bff308ef79662abc",
+ "bfe17b342dc73538",
+ "bff06093fed75364",
+ "bfb8e4f0ca722632",
+ "bfe3c00c7514c555",
+ "7ff8000000000106",
+ "3fda6a360b330944",
+ "bfdeeab0f30372ea",
+ "bff06d3cb8a57c98",
+ "3fd6f0d40dbcdbc7",
+ "bfe0594267a3ed44",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "3fed0fb369bc7329",
+ "3fd9409f3155e08e",
+ "3fde8b5709217ae0",
+ "bfd1dbfa1b7c669e",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "3fed8fcb5298bcaa",
+ "bfec5ba91304cc83",
+ "3fe430609751137f",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "bff632f17008e3d9",
+ "bfdf32c8b309b1d7",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "3ff8bf490c58a61f"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -5,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "0000000000000000",
+ "bfe17b342dc73538",
+ "bff06093fed75364",
+ "bfb8e4f0ca722632",
+ "bfe3c00c7514c555",
+ "7ff8000000000106",
+ "3fda6a360b330944",
+ "bfdeeab0f30372ea",
+ "bff06d3cb8a57c98",
+ "3fd6f0d40dbcdbc7",
+ "bfe0594267a3ed44",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "3fed0fb369bc7329",
+ "3fd9409f3155e08e",
+ "3fde8b5709217ae0",
+ "bfd1dbfa1b7c669e",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "3fed8fcb5298bcaa",
+ "bfec5ba91304cc83",
+ "3fe430609751137f",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "bff632f17008e3d9",
+ "bfdf32c8b309b1d7",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "3ff8bf490c58a61f"
+ ],
+ "output_e_hex": [
+ "bff308ef79662abc",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-6-seed42-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "0000000000000000",
+ "bfe17b342dc73538",
+ "bff06093fed75364",
+ "bfb8e4f0ca722632",
+ "bfe3c00c7514c555",
+ "7ff8000000000106",
+ "3fda6a360b330944",
+ "bfdeeab0f30372ea",
+ "bff06d3cb8a57c98",
+ "3fd6f0d40dbcdbc7",
+ "bfe0594267a3ed44",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "3fed0fb369bc7329",
+ "3fd9409f3155e08e",
+ "3fde8b5709217ae0",
+ "bfd1dbfa1b7c669e",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "3fed8fcb5298bcaa",
+ "bfec5ba91304cc83",
+ "3fe430609751137f",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "bff632f17008e3d9",
+ "bfdf32c8b309b1d7",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "3ff8bf490c58a61f"
+ ],
+ "input_e_hex": [
+ "bff308ef79662abc",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -5,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "bff308ef79662abc",
+ "bfe17b342dc73538",
+ "bff06093fed75364",
+ "bfb8e4f0ca722632",
+ "bfe3c00c7514c555",
+ "7ff8000000000106",
+ "3fda6a360b330944",
+ "bfdeeab0f30372ea",
+ "bff06d3cb8a57c98",
+ "3fd6f0d40dbcdbc7",
+ "bfe0594267a3ed44",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "3fed0fb369bc7329",
+ "3fd9409f3155e08e",
+ "3fde8b5709217ae0",
+ "bfd1dbfa1b7c669e",
+ "7ff8000000000112",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "3fed8fcb5298bcaa",
+ "bfec5ba91304cc83",
+ "3fe430609751137f",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "7ff800000000011b",
+ "bff632f17008e3d9",
+ "bfdf32c8b309b1d7",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "3ff8bf490c58a61f"
+ ],
+ "output_e_hex": [
+ "bff308ef79662abc",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-8-seed42-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 8,
+ "input_a_hex_col_major": [
+ "bfad563b13d46dff",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fefd4dca9ff7574",
+ "bff315b843a2074d",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "7ff800000000010f",
+ "3fec79554bd3a78b",
+ "bfe31825eafea338",
+ "bfa889987d67d2bf",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "7ff8000000000115",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "3fd77da00843c87d",
+ "3fa30cd01918921e",
+ "bff14515e5f19fae",
+ "bfb02c100024f546",
+ "7ff800000000011c",
+ "7ff800000000011d",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "bff57d8f35d19fd6",
+ "bfd545a0915c6593",
+ "bfd52da5595272fd",
+ "bfd6bc40a3a7a012",
+ "3ff17f10d72e4dec",
+ "7ff8000000000125",
+ "7ff8000000000126",
+ "7ff8000000000127",
+ "3fd17a922dd9d58f",
+ "3fd0e88f455a1154",
+ "3fdd8349974d7f9b",
+ "3fcf545a62005564",
+ "bfe37630bb12162f",
+ "3fcd8b58005a7903",
+ "7ff800000000012e",
+ "7ff800000000012f",
+ "3fcc8ec777a33857",
+ "bf34150f32cc484c",
+ "3fd02cd5de4562f5",
+ "3fc9bb7ebaf4b1cb",
+ "3fe8b507dd4edd68",
+ "3ff80243eeea93a3",
+ "bfe225437a4697f6",
+ "7ff8000000000137",
+ "bfe024122fc5d525",
+ "3fe159593880c94f",
+ "bfebd95f33f43212",
+ "3fdeab9a20d5f7b6",
+ "bfec2ca20b8486fb",
+ "bfb84cbc22e839b4",
+ "bfd9fd78fcca42f8",
+ "3fe2c25555abef69"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000",
+ "407ce40000000000",
+ "407cf40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -3,
+ -4,
+ 5,
+ -4,
+ -7,
+ 8
+ ],
+ "output_a_hex_col_major": [
+ "bfad563b13d46dff",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fefd4dca9ff7574",
+ "bff315b843a2074d",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "7ff800000000010f",
+ "3fec79554bd3a78b",
+ "bfe31825eafea338",
+ "bfa889987d67d2bf",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "7ff8000000000115",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "3fd77da00843c87d",
+ "3fa30cd01918921e",
+ "0000000000000000",
+ "bfb02c100024f546",
+ "7ff800000000011c",
+ "7ff800000000011d",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "bff57d8f35d19fd6",
+ "bfd545a0915c6593",
+ "bfd52da5595272fd",
+ "bfd6bc40a3a7a012",
+ "3ff17f10d72e4dec",
+ "7ff8000000000125",
+ "7ff8000000000126",
+ "7ff8000000000127",
+ "3fd17a922dd9d58f",
+ "3fd0e88f455a1154",
+ "3fdd8349974d7f9b",
+ "3fcf545a62005564",
+ "bfe37630bb12162f",
+ "3fcd8b58005a7903",
+ "7ff800000000012e",
+ "7ff800000000012f",
+ "3fcc8ec777a33857",
+ "bf34150f32cc484c",
+ "3fd02cd5de4562f5",
+ "3fc9bb7ebaf4b1cb",
+ "3fe8b507dd4edd68",
+ "0000000000000000",
+ "bfe225437a4697f6",
+ "7ff8000000000137",
+ "bfe024122fc5d525",
+ "3fe159593880c94f",
+ "bfebd95f33f43212",
+ "bfb84cbc22e839b4",
+ "bfec2ca20b8486fb",
+ "3fdeab9a20d5f7b6",
+ "bfd9fd78fcca42f8",
+ "3fe2c25555abef69"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff14515e5f19fae",
+ "0000000000000000",
+ "0000000000000000",
+ "3ff80243eeea93a3",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-8-seed42-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 8,
+ "input_a_hex_col_major": [
+ "bfad563b13d46dff",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fefd4dca9ff7574",
+ "bff315b843a2074d",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "7ff800000000010f",
+ "3fec79554bd3a78b",
+ "bfe31825eafea338",
+ "bfa889987d67d2bf",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "7ff8000000000115",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "3fd77da00843c87d",
+ "3fa30cd01918921e",
+ "0000000000000000",
+ "bfb02c100024f546",
+ "7ff800000000011c",
+ "7ff800000000011d",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "bff57d8f35d19fd6",
+ "bfd545a0915c6593",
+ "bfd52da5595272fd",
+ "bfd6bc40a3a7a012",
+ "3ff17f10d72e4dec",
+ "7ff8000000000125",
+ "7ff8000000000126",
+ "7ff8000000000127",
+ "3fd17a922dd9d58f",
+ "3fd0e88f455a1154",
+ "3fdd8349974d7f9b",
+ "3fcf545a62005564",
+ "bfe37630bb12162f",
+ "3fcd8b58005a7903",
+ "7ff800000000012e",
+ "7ff800000000012f",
+ "3fcc8ec777a33857",
+ "bf34150f32cc484c",
+ "3fd02cd5de4562f5",
+ "3fc9bb7ebaf4b1cb",
+ "3fe8b507dd4edd68",
+ "0000000000000000",
+ "bfe225437a4697f6",
+ "7ff8000000000137",
+ "bfe024122fc5d525",
+ "3fe159593880c94f",
+ "bfebd95f33f43212",
+ "bfb84cbc22e839b4",
+ "bfec2ca20b8486fb",
+ "3fdeab9a20d5f7b6",
+ "bfd9fd78fcca42f8",
+ "3fe2c25555abef69"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff14515e5f19fae",
+ "0000000000000000",
+ "0000000000000000",
+ "3ff80243eeea93a3",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -3,
+ -4,
+ 5,
+ -4,
+ -7,
+ 8
+ ],
+ "output_a_hex_col_major": [
+ "bfad563b13d46dff",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "3fefd4dca9ff7574",
+ "bff315b843a2074d",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "7ff800000000010f",
+ "3fec79554bd3a78b",
+ "bfe31825eafea338",
+ "bfa889987d67d2bf",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "7ff8000000000115",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "3fd77da00843c87d",
+ "3fa30cd01918921e",
+ "bff14515e5f19fae",
+ "bfb02c100024f546",
+ "7ff800000000011c",
+ "7ff800000000011d",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "bff57d8f35d19fd6",
+ "bfd545a0915c6593",
+ "bfd52da5595272fd",
+ "bfd6bc40a3a7a012",
+ "3ff17f10d72e4dec",
+ "7ff8000000000125",
+ "7ff8000000000126",
+ "7ff8000000000127",
+ "3fd17a922dd9d58f",
+ "3fd0e88f455a1154",
+ "3fdd8349974d7f9b",
+ "3fcf545a62005564",
+ "bfe37630bb12162f",
+ "3fcd8b58005a7903",
+ "7ff800000000012e",
+ "7ff800000000012f",
+ "3fcc8ec777a33857",
+ "bf34150f32cc484c",
+ "3fd02cd5de4562f5",
+ "3fc9bb7ebaf4b1cb",
+ "3fe8b507dd4edd68",
+ "3ff80243eeea93a3",
+ "bfe225437a4697f6",
+ "7ff8000000000137",
+ "bfe024122fc5d525",
+ "3fe159593880c94f",
+ "bfebd95f33f43212",
+ "3fdeab9a20d5f7b6",
+ "bfec2ca20b8486fb",
+ "bfb84cbc22e839b4",
+ "bfd9fd78fcca42f8",
+ "3fe2c25555abef69"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff14515e5f19fae",
+ "0000000000000000",
+ "0000000000000000",
+ "3ff80243eeea93a3",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-8-seed42-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 8,
+ "input_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "bff3b4cb0d8cb736",
+ "bfc0a40c56b62041",
+ "bfe2fa5c7bca0330",
+ "3fd0826a494be789",
+ "3fd1101919b5ef35",
+ "3fedeccbcd941f87",
+ "3fd8d4927dc7a089",
+ "7ff8000000000108",
+ "bfbd2ba91c170c6c",
+ "bfdf2321ec035247",
+ "bfd6b308b8c30159",
+ "3fdf8aa4ca30387a",
+ "3fd2be4810649398",
+ "bfb89d1fea11b4d9",
+ "3fd58224b814ee28",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "3ff0e5af4aad6a7f",
+ "3fe3ae5dca18086d",
+ "bfd19839f0459f05",
+ "bfead52cc45875ad",
+ "3fceb19b08105881",
+ "bfe83b8cfc71b3c2",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "bff049c0a0a096b2",
+ "bfe9003da35ffb01",
+ "bfe677fac46a5985",
+ "bff0be5f2f6ebeb7",
+ "bfc6b5519abc7230",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "7ff8000000000123",
+ "3f829d3f5f0f7e5d",
+ "3ff668b60746b848",
+ "3fec667cfce88103",
+ "bfd3d78f5e3f52b8",
+ "7ff8000000000128",
+ "7ff8000000000129",
+ "7ff800000000012a",
+ "7ff800000000012b",
+ "7ff800000000012c",
+ "3fc448da67e47489",
+ "3fe195d62008445f",
+ "3fda29924d6fe0ae",
+ "7ff8000000000130",
+ "7ff8000000000131",
+ "7ff8000000000132",
+ "7ff8000000000133",
+ "7ff8000000000134",
+ "7ff8000000000135",
+ "3fe41c801b7ba328",
+ "3fdea090a5028c00",
+ "7ff8000000000138",
+ "7ff8000000000139",
+ "7ff800000000013a",
+ "7ff800000000013b",
+ "7ff800000000013c",
+ "7ff800000000013d",
+ "7ff800000000013e",
+ "bfae38734294f209"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000",
+ "407ce40000000000",
+ "407cf40000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -5,
+ 3,
+ 7,
+ -5,
+ -6,
+ 8,
+ 8
+ ],
+ "output_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "0000000000000000",
+ "bfc0a40c56b62041",
+ "3fedeccbcd941f87",
+ "3fd0826a494be789",
+ "3fd1101919b5ef35",
+ "3fd8d4927dc7a089",
+ "bfe2fa5c7bca0330",
+ "7ff8000000000108",
+ "bfbd2ba91c170c6c",
+ "bfdf2321ec035247",
+ "bfb89d1fea11b4d9",
+ "3fdf8aa4ca30387a",
+ "3fd2be4810649398",
+ "3fd58224b814ee28",
+ "bfd6b308b8c30159",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "3ff0e5af4aad6a7f",
+ "3fceb19b08105881",
+ "bfd19839f0459f05",
+ "bfead52cc45875ad",
+ "bfe83b8cfc71b3c2",
+ "3fe3ae5dca18086d",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "bff049c0a0a096b2",
+ "bfe9003da35ffb01",
+ "bfe677fac46a5985",
+ "bfc6b5519abc7230",
+ "bff0be5f2f6ebeb7",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "7ff8000000000123",
+ "3f829d3f5f0f7e5d",
+ "0000000000000000",
+ "bfd3d78f5e3f52b8",
+ "3fec667cfce88103",
+ "7ff8000000000128",
+ "7ff8000000000129",
+ "7ff800000000012a",
+ "7ff800000000012b",
+ "7ff800000000012c",
+ "3fc448da67e47489",
+ "3fda29924d6fe0ae",
+ "3fe195d62008445f",
+ "7ff8000000000130",
+ "7ff8000000000131",
+ "7ff8000000000132",
+ "7ff8000000000133",
+ "7ff8000000000134",
+ "7ff8000000000135",
+ "3fe41c801b7ba328",
+ "3fdea090a5028c00",
+ "7ff8000000000138",
+ "7ff8000000000139",
+ "7ff800000000013a",
+ "7ff800000000013b",
+ "7ff800000000013c",
+ "7ff800000000013d",
+ "7ff800000000013e",
+ "bfae38734294f209"
+ ],
+ "output_e_hex": [
+ "bff3b4cb0d8cb736",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "3ff668b60746b848",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-8-seed42-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 8,
+ "input_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "0000000000000000",
+ "bfc0a40c56b62041",
+ "3fedeccbcd941f87",
+ "3fd0826a494be789",
+ "3fd1101919b5ef35",
+ "3fd8d4927dc7a089",
+ "bfe2fa5c7bca0330",
+ "7ff8000000000108",
+ "bfbd2ba91c170c6c",
+ "bfdf2321ec035247",
+ "bfb89d1fea11b4d9",
+ "3fdf8aa4ca30387a",
+ "3fd2be4810649398",
+ "3fd58224b814ee28",
+ "bfd6b308b8c30159",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "3ff0e5af4aad6a7f",
+ "3fceb19b08105881",
+ "bfd19839f0459f05",
+ "bfead52cc45875ad",
+ "bfe83b8cfc71b3c2",
+ "3fe3ae5dca18086d",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "bff049c0a0a096b2",
+ "bfe9003da35ffb01",
+ "bfe677fac46a5985",
+ "bfc6b5519abc7230",
+ "bff0be5f2f6ebeb7",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "7ff8000000000123",
+ "3f829d3f5f0f7e5d",
+ "0000000000000000",
+ "bfd3d78f5e3f52b8",
+ "3fec667cfce88103",
+ "7ff8000000000128",
+ "7ff8000000000129",
+ "7ff800000000012a",
+ "7ff800000000012b",
+ "7ff800000000012c",
+ "3fc448da67e47489",
+ "3fda29924d6fe0ae",
+ "3fe195d62008445f",
+ "7ff8000000000130",
+ "7ff8000000000131",
+ "7ff8000000000132",
+ "7ff8000000000133",
+ "7ff8000000000134",
+ "7ff8000000000135",
+ "3fe41c801b7ba328",
+ "3fdea090a5028c00",
+ "7ff8000000000138",
+ "7ff8000000000139",
+ "7ff800000000013a",
+ "7ff800000000013b",
+ "7ff800000000013c",
+ "7ff800000000013d",
+ "7ff800000000013e",
+ "bfae38734294f209"
+ ],
+ "input_e_hex": [
+ "bff3b4cb0d8cb736",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "3ff668b60746b848",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ -1,
+ -5,
+ 3,
+ 7,
+ -5,
+ -6,
+ 8,
+ 8
+ ],
+ "output_a_hex_col_major": [
+ "3fd3807c1104fc6b",
+ "bff3b4cb0d8cb736",
+ "bfc0a40c56b62041",
+ "bfe2fa5c7bca0330",
+ "3fd0826a494be789",
+ "3fd1101919b5ef35",
+ "3fedeccbcd941f87",
+ "3fd8d4927dc7a089",
+ "7ff8000000000108",
+ "bfbd2ba91c170c6c",
+ "bfdf2321ec035247",
+ "bfd6b308b8c30159",
+ "3fdf8aa4ca30387a",
+ "3fd2be4810649398",
+ "bfb89d1fea11b4d9",
+ "3fd58224b814ee28",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "3ff0e5af4aad6a7f",
+ "3fe3ae5dca18086d",
+ "bfd19839f0459f05",
+ "bfead52cc45875ad",
+ "3fceb19b08105881",
+ "bfe83b8cfc71b3c2",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "bff049c0a0a096b2",
+ "bfe9003da35ffb01",
+ "bfe677fac46a5985",
+ "bff0be5f2f6ebeb7",
+ "bfc6b5519abc7230",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "7ff8000000000123",
+ "3f829d3f5f0f7e5d",
+ "3ff668b60746b848",
+ "3fec667cfce88103",
+ "bfd3d78f5e3f52b8",
+ "7ff8000000000128",
+ "7ff8000000000129",
+ "7ff800000000012a",
+ "7ff800000000012b",
+ "7ff800000000012c",
+ "3fc448da67e47489",
+ "3fe195d62008445f",
+ "3fda29924d6fe0ae",
+ "7ff8000000000130",
+ "7ff8000000000131",
+ "7ff8000000000132",
+ "7ff8000000000133",
+ "7ff8000000000134",
+ "7ff8000000000135",
+ "3fe41c801b7ba328",
+ "3fdea090a5028c00",
+ "7ff8000000000138",
+ "7ff8000000000139",
+ "7ff800000000013a",
+ "7ff800000000013b",
+ "7ff800000000013c",
+ "7ff800000000013d",
+ "7ff800000000013e",
+ "bfae38734294f209"
+ ],
+ "output_e_hex": [
+ "bff3b4cb0d8cb736",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "3ff668b60746b848",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-8-seed93-rook-U-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "U",
+ "way": "C",
+ "n": 8,
+ "input_a_hex_col_major": [
+ "bfddc9ce4f99d977",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "bfdef7972969fda8",
+ "4003c66bdc47bfbf",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "7ff800000000010f",
+ "3fef15338222d1ea",
+ "bff312802c33ed12",
+ "bff0046c0bdb7921",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "7ff8000000000115",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "3fc659ad838d213d",
+ "3fc6868ef05e8bf8",
+ "3feadc4e59f8d413",
+ "bff89b59934d53bc",
+ "7ff800000000011c",
+ "7ff800000000011d",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "3fe81b07cb5882ee",
+ "bfc3451306e7b03d",
+ "3ff1d749522d322f",
+ "3fe4717e028b3874",
+ "3ff120f8dda53083",
+ "7ff8000000000125",
+ "7ff8000000000126",
+ "7ff8000000000127",
+ "3fcefe2537184b87",
+ "3fb30ec8d4c6840d",
+ "bfda0cd546928fc6",
+ "bfe7c8b51def59a6",
+ "bfb23c1c5e4587d1",
+ "bfdeca806f489d8c",
+ "7ff800000000012e",
+ "7ff800000000012f",
+ "bf90b88fb097e0fe",
+ "3fdf3821936d8e37",
+ "bfa2c5fb26bae778",
+ "3fd620cee34ce72f",
+ "3fdf03f0ef8e3c1a",
+ "bff8e69452ef0f6f",
+ "3fcde484fc4dc39f",
+ "7ff8000000000137",
+ "3fc2728288d84be8",
+ "3fc3879d72c2f00a",
+ "bfc6ed62499a1c8b",
+ "bf85f95ea0dbe980",
+ "bfbd6fdc51906156",
+ "bf78050cad0c75fc",
+ "bfc6632ebf7d7adc",
+ "40043ccf464285e9"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000",
+ "407ce40000000000",
+ "407cf40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 1,
+ -6,
+ -7,
+ 8
+ ],
+ "output_a_hex_col_major": [
+ "bfddc9ce4f99d977",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "bfdef7972969fda8",
+ "4003c66bdc47bfbf",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "7ff800000000010f",
+ "3fef15338222d1ea",
+ "bff312802c33ed12",
+ "bff0046c0bdb7921",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "7ff8000000000115",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "3fc659ad838d213d",
+ "3fc6868ef05e8bf8",
+ "3feadc4e59f8d413",
+ "bff89b59934d53bc",
+ "7ff800000000011c",
+ "7ff800000000011d",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "3fe81b07cb5882ee",
+ "bfc3451306e7b03d",
+ "3ff1d749522d322f",
+ "3fe4717e028b3874",
+ "3ff120f8dda53083",
+ "7ff8000000000125",
+ "7ff8000000000126",
+ "7ff8000000000127",
+ "bfb23c1c5e4587d1",
+ "3fb30ec8d4c6840d",
+ "bfda0cd546928fc6",
+ "bfe7c8b51def59a6",
+ "3fcefe2537184b87",
+ "bfdeca806f489d8c",
+ "7ff800000000012e",
+ "7ff800000000012f",
+ "3fdf03f0ef8e3c1a",
+ "3fdf3821936d8e37",
+ "bfa2c5fb26bae778",
+ "3fd620cee34ce72f",
+ "bf90b88fb097e0fe",
+ "0000000000000000",
+ "3fcde484fc4dc39f",
+ "7ff8000000000137",
+ "bfbd6fdc51906156",
+ "3fc3879d72c2f00a",
+ "bfc6ed62499a1c8b",
+ "bf85f95ea0dbe980",
+ "3fc2728288d84be8",
+ "bf78050cad0c75fc",
+ "bfc6632ebf7d7adc",
+ "40043ccf464285e9"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff8e69452ef0f6f",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-8-seed93-rk-U-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "U",
+ "way": "R",
+ "n": 8,
+ "input_a_hex_col_major": [
+ "bfddc9ce4f99d977",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "bfdef7972969fda8",
+ "4003c66bdc47bfbf",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "7ff800000000010f",
+ "3fef15338222d1ea",
+ "bff312802c33ed12",
+ "bff0046c0bdb7921",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "7ff8000000000115",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "3fc659ad838d213d",
+ "3fc6868ef05e8bf8",
+ "3feadc4e59f8d413",
+ "bff89b59934d53bc",
+ "7ff800000000011c",
+ "7ff800000000011d",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "3fe81b07cb5882ee",
+ "bfc3451306e7b03d",
+ "3ff1d749522d322f",
+ "3fe4717e028b3874",
+ "3ff120f8dda53083",
+ "7ff8000000000125",
+ "7ff8000000000126",
+ "7ff8000000000127",
+ "bfb23c1c5e4587d1",
+ "3fb30ec8d4c6840d",
+ "bfda0cd546928fc6",
+ "bfe7c8b51def59a6",
+ "3fcefe2537184b87",
+ "bfdeca806f489d8c",
+ "7ff800000000012e",
+ "7ff800000000012f",
+ "3fdf03f0ef8e3c1a",
+ "3fdf3821936d8e37",
+ "bfa2c5fb26bae778",
+ "3fd620cee34ce72f",
+ "bf90b88fb097e0fe",
+ "0000000000000000",
+ "3fcde484fc4dc39f",
+ "7ff8000000000137",
+ "bfbd6fdc51906156",
+ "3fc3879d72c2f00a",
+ "bfc6ed62499a1c8b",
+ "bf85f95ea0dbe980",
+ "3fc2728288d84be8",
+ "bf78050cad0c75fc",
+ "bfc6632ebf7d7adc",
+ "40043ccf464285e9"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff8e69452ef0f6f",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 1,
+ -6,
+ -7,
+ 8
+ ],
+ "output_a_hex_col_major": [
+ "bfddc9ce4f99d977",
+ "7ff8000000000101",
+ "7ff8000000000102",
+ "7ff8000000000103",
+ "7ff8000000000104",
+ "7ff8000000000105",
+ "7ff8000000000106",
+ "7ff8000000000107",
+ "bfdef7972969fda8",
+ "4003c66bdc47bfbf",
+ "7ff800000000010a",
+ "7ff800000000010b",
+ "7ff800000000010c",
+ "7ff800000000010d",
+ "7ff800000000010e",
+ "7ff800000000010f",
+ "3fef15338222d1ea",
+ "bff312802c33ed12",
+ "bff0046c0bdb7921",
+ "7ff8000000000113",
+ "7ff8000000000114",
+ "7ff8000000000115",
+ "7ff8000000000116",
+ "7ff8000000000117",
+ "3fc659ad838d213d",
+ "3fc6868ef05e8bf8",
+ "3feadc4e59f8d413",
+ "bff89b59934d53bc",
+ "7ff800000000011c",
+ "7ff800000000011d",
+ "7ff800000000011e",
+ "7ff800000000011f",
+ "3fe81b07cb5882ee",
+ "bfc3451306e7b03d",
+ "3ff1d749522d322f",
+ "3fe4717e028b3874",
+ "3ff120f8dda53083",
+ "7ff8000000000125",
+ "7ff8000000000126",
+ "7ff8000000000127",
+ "3fcefe2537184b87",
+ "3fb30ec8d4c6840d",
+ "bfda0cd546928fc6",
+ "bfe7c8b51def59a6",
+ "bfb23c1c5e4587d1",
+ "bfdeca806f489d8c",
+ "7ff800000000012e",
+ "7ff800000000012f",
+ "bf90b88fb097e0fe",
+ "3fdf3821936d8e37",
+ "bfa2c5fb26bae778",
+ "3fd620cee34ce72f",
+ "3fdf03f0ef8e3c1a",
+ "bff8e69452ef0f6f",
+ "3fcde484fc4dc39f",
+ "7ff8000000000137",
+ "3fc2728288d84be8",
+ "3fc3879d72c2f00a",
+ "bfc6ed62499a1c8b",
+ "bf85f95ea0dbe980",
+ "bfbd6fdc51906156",
+ "bf78050cad0c75fc",
+ "bfc6632ebf7d7adc",
+ "40043ccf464285e9"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff8e69452ef0f6f",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-8-seed93-rook-L-C",
+ "provenance": "DSYTRF_ROOK",
+ "uplo": "L",
+ "way": "C",
+ "n": 8,
+ "input_a_hex_col_major": [
+ "3ff1b7513924a362",
+ "bfd139743df902e3",
+ "3ff10b1404678518",
+ "3fe1ce33f8349475",
+ "3fe0f38bb27d5e95",
+ "bfb58d4a88754ad0",
+ "bfd9afd90f22de8b",
+ "3fd512a5059a3220",
+ "7ff8000000000108",
+ "3fee3a85f14fe7fd",
+ "3ff701e3b6a5ee3f",
+ "3fd9a0935308dd75",
+ "bfa3c1b6e4071636",
+ "bfebdb46377c8fb0",
+ "bfc99dc1c64a18d9",
+ "3fe0660e0a4daf8d",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "c010081a03b877b9",
+ "3fdb133bc75c84a1",
+ "3fc10dff66e7cb68",
+ "bfd88c6f31816a57",
+ "bfd724efc7284790",
+ "3fd88d749b94a193",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "3fe3cdb34c70a853",
+ "bff33224d4544c61",
+ "3fe6734c07691764",
+ "3fe3c7427dd9ed12",
+ "bfc3cd6d56ab9a70",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "7ff8000000000123",
+ "bfe3ae7b46ac478f",
+ "3fba83fcf465eeb5",
+ "bfde619b5fdd9fef",
+ "3fe1975d81b351be",
+ "7ff8000000000128",
+ "7ff8000000000129",
+ "7ff800000000012a",
+ "7ff800000000012b",
+ "7ff800000000012c",
+ "bfdc48d634b561fb",
+ "bfd676b52db3ce4c",
+ "bfe4a6ae19c768ed",
+ "7ff8000000000130",
+ "7ff8000000000131",
+ "7ff8000000000132",
+ "7ff8000000000133",
+ "7ff8000000000134",
+ "7ff8000000000135",
+ "bff102461d59e0bd",
+ "bfe5b541dddbde12",
+ "7ff8000000000138",
+ "7ff8000000000139",
+ "7ff800000000013a",
+ "7ff800000000013b",
+ "7ff800000000013c",
+ "7ff800000000013d",
+ "7ff800000000013e",
+ "400b2231b54c6faf"
+ ],
+ "input_e_hex": [
+ "407c840000000000",
+ "407c940000000000",
+ "407ca40000000000",
+ "407cb40000000000",
+ "407cc40000000000",
+ "407cd40000000000",
+ "407ce40000000000",
+ "407cf40000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ -7,
+ -6,
+ 6,
+ 7,
+ 8
+ ],
+ "output_a_hex_col_major": [
+ "3ff1b7513924a362",
+ "bfd139743df902e3",
+ "3ff10b1404678518",
+ "bfd9afd90f22de8b",
+ "bfb58d4a88754ad0",
+ "3fe0f38bb27d5e95",
+ "3fe1ce33f8349475",
+ "3fd512a5059a3220",
+ "7ff8000000000108",
+ "3fee3a85f14fe7fd",
+ "3ff701e3b6a5ee3f",
+ "bfc99dc1c64a18d9",
+ "bfebdb46377c8fb0",
+ "bfa3c1b6e4071636",
+ "3fd9a0935308dd75",
+ "3fe0660e0a4daf8d",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "c010081a03b877b9",
+ "bfd724efc7284790",
+ "bfd88c6f31816a57",
+ "3fc10dff66e7cb68",
+ "3fdb133bc75c84a1",
+ "3fd88d749b94a193",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "3fe3cdb34c70a853",
+ "0000000000000000",
+ "3fe6734c07691764",
+ "3fe3c7427dd9ed12",
+ "bfc3cd6d56ab9a70",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "7ff8000000000123",
+ "bfe3ae7b46ac478f",
+ "3fba83fcf465eeb5",
+ "bfde619b5fdd9fef",
+ "3fe1975d81b351be",
+ "7ff8000000000128",
+ "7ff8000000000129",
+ "7ff800000000012a",
+ "7ff800000000012b",
+ "7ff800000000012c",
+ "bfdc48d634b561fb",
+ "bfd676b52db3ce4c",
+ "bfe4a6ae19c768ed",
+ "7ff8000000000130",
+ "7ff8000000000131",
+ "7ff8000000000132",
+ "7ff8000000000133",
+ "7ff8000000000134",
+ "7ff8000000000135",
+ "bff102461d59e0bd",
+ "bfe5b541dddbde12",
+ "7ff8000000000138",
+ "7ff8000000000139",
+ "7ff800000000013a",
+ "7ff800000000013b",
+ "7ff800000000013c",
+ "7ff800000000013d",
+ "7ff800000000013e",
+ "400b2231b54c6faf"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff33224d4544c61",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "symmetric-8-seed93-rk-L-R",
+ "provenance": "DSYTRF_RK",
+ "uplo": "L",
+ "way": "R",
+ "n": 8,
+ "input_a_hex_col_major": [
+ "3ff1b7513924a362",
+ "bfd139743df902e3",
+ "3ff10b1404678518",
+ "bfd9afd90f22de8b",
+ "bfb58d4a88754ad0",
+ "3fe0f38bb27d5e95",
+ "3fe1ce33f8349475",
+ "3fd512a5059a3220",
+ "7ff8000000000108",
+ "3fee3a85f14fe7fd",
+ "3ff701e3b6a5ee3f",
+ "bfc99dc1c64a18d9",
+ "bfebdb46377c8fb0",
+ "bfa3c1b6e4071636",
+ "3fd9a0935308dd75",
+ "3fe0660e0a4daf8d",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "c010081a03b877b9",
+ "bfd724efc7284790",
+ "bfd88c6f31816a57",
+ "3fc10dff66e7cb68",
+ "3fdb133bc75c84a1",
+ "3fd88d749b94a193",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "3fe3cdb34c70a853",
+ "0000000000000000",
+ "3fe6734c07691764",
+ "3fe3c7427dd9ed12",
+ "bfc3cd6d56ab9a70",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "7ff8000000000123",
+ "bfe3ae7b46ac478f",
+ "3fba83fcf465eeb5",
+ "bfde619b5fdd9fef",
+ "3fe1975d81b351be",
+ "7ff8000000000128",
+ "7ff8000000000129",
+ "7ff800000000012a",
+ "7ff800000000012b",
+ "7ff800000000012c",
+ "bfdc48d634b561fb",
+ "bfd676b52db3ce4c",
+ "bfe4a6ae19c768ed",
+ "7ff8000000000130",
+ "7ff8000000000131",
+ "7ff8000000000132",
+ "7ff8000000000133",
+ "7ff8000000000134",
+ "7ff8000000000135",
+ "bff102461d59e0bd",
+ "bfe5b541dddbde12",
+ "7ff8000000000138",
+ "7ff8000000000139",
+ "7ff800000000013a",
+ "7ff800000000013b",
+ "7ff800000000013c",
+ "7ff800000000013d",
+ "7ff800000000013e",
+ "400b2231b54c6faf"
+ ],
+ "input_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff33224d4544c61",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ 3,
+ -7,
+ -6,
+ 6,
+ 7,
+ 8
+ ],
+ "output_a_hex_col_major": [
+ "3ff1b7513924a362",
+ "bfd139743df902e3",
+ "3ff10b1404678518",
+ "3fe1ce33f8349475",
+ "3fe0f38bb27d5e95",
+ "bfb58d4a88754ad0",
+ "bfd9afd90f22de8b",
+ "3fd512a5059a3220",
+ "7ff8000000000108",
+ "3fee3a85f14fe7fd",
+ "3ff701e3b6a5ee3f",
+ "3fd9a0935308dd75",
+ "bfa3c1b6e4071636",
+ "bfebdb46377c8fb0",
+ "bfc99dc1c64a18d9",
+ "3fe0660e0a4daf8d",
+ "7ff8000000000110",
+ "7ff8000000000111",
+ "c010081a03b877b9",
+ "3fdb133bc75c84a1",
+ "3fc10dff66e7cb68",
+ "bfd88c6f31816a57",
+ "bfd724efc7284790",
+ "3fd88d749b94a193",
+ "7ff8000000000118",
+ "7ff8000000000119",
+ "7ff800000000011a",
+ "3fe3cdb34c70a853",
+ "bff33224d4544c61",
+ "3fe6734c07691764",
+ "3fe3c7427dd9ed12",
+ "bfc3cd6d56ab9a70",
+ "7ff8000000000120",
+ "7ff8000000000121",
+ "7ff8000000000122",
+ "7ff8000000000123",
+ "bfe3ae7b46ac478f",
+ "3fba83fcf465eeb5",
+ "bfde619b5fdd9fef",
+ "3fe1975d81b351be",
+ "7ff8000000000128",
+ "7ff8000000000129",
+ "7ff800000000012a",
+ "7ff800000000012b",
+ "7ff800000000012c",
+ "bfdc48d634b561fb",
+ "bfd676b52db3ce4c",
+ "bfe4a6ae19c768ed",
+ "7ff8000000000130",
+ "7ff8000000000131",
+ "7ff8000000000132",
+ "7ff8000000000133",
+ "7ff8000000000134",
+ "7ff8000000000135",
+ "bff102461d59e0bd",
+ "bfe5b541dddbde12",
+ "7ff8000000000138",
+ "7ff8000000000139",
+ "7ff800000000013a",
+ "7ff800000000013b",
+ "7ff800000000013c",
+ "7ff800000000013d",
+ "7ff800000000013e",
+ "400b2231b54c6faf"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "bff33224d4544c61",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "ordered-two-swap-cycle-U-C",
+ "provenance": "supplied-storage",
+ "uplo": "U",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3fd0000000000000",
+ "3ff4000000000000",
+ "4002000000000000",
+ "400a000000000000",
+ "4011000000000000",
+ "4015000000000000",
+ "4019000000000000",
+ "401d000000000000",
+ "4020800000000000",
+ "4022800000000000",
+ "4024800000000000",
+ "4026800000000000",
+ "4028800000000000",
+ "402a800000000000",
+ "402c800000000000",
+ "402e800000000000",
+ "4030400000000000",
+ "4031400000000000",
+ "4032400000000000",
+ "4033400000000000",
+ "4034400000000000",
+ "4035400000000000",
+ "4036400000000000",
+ "4037400000000000",
+ "4038400000000000",
+ "4039400000000000",
+ "403a400000000000",
+ "403b400000000000",
+ "403c400000000000",
+ "403d400000000000",
+ "403e400000000000",
+ "403f400000000000",
+ "4040200000000000",
+ "4040a00000000000",
+ "4041200000000000",
+ "4041a00000000000"
+ ],
+ "input_e_hex": [
+ "408f3c0000000000",
+ "408f440000000000",
+ "408f4c0000000000",
+ "408f540000000000",
+ "408f5c0000000000",
+ "408f640000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -4,
+ -1,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "3fd0000000000000",
+ "3ff4000000000000",
+ "4002000000000000",
+ "400a000000000000",
+ "4011000000000000",
+ "4015000000000000",
+ "4019000000000000",
+ "401d000000000000",
+ "4020800000000000",
+ "4022800000000000",
+ "4024800000000000",
+ "4026800000000000",
+ "4028800000000000",
+ "402a800000000000",
+ "402c800000000000",
+ "402e800000000000",
+ "4030400000000000",
+ "4031400000000000",
+ "4032400000000000",
+ "4033400000000000",
+ "0000000000000000",
+ "4035400000000000",
+ "4036400000000000",
+ "4037400000000000",
+ "403b400000000000",
+ "4039400000000000",
+ "4038400000000000",
+ "403a400000000000",
+ "403c400000000000",
+ "403d400000000000",
+ "4040a00000000000",
+ "403f400000000000",
+ "403e400000000000",
+ "4040200000000000",
+ "4041200000000000",
+ "4041a00000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "4034400000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "ordered-two-swap-cycle-U-R",
+ "provenance": "supplied-storage",
+ "uplo": "U",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3fd0000000000000",
+ "3ff4000000000000",
+ "4002000000000000",
+ "400a000000000000",
+ "4011000000000000",
+ "4015000000000000",
+ "4019000000000000",
+ "401d000000000000",
+ "4020800000000000",
+ "4022800000000000",
+ "4024800000000000",
+ "4026800000000000",
+ "4028800000000000",
+ "402a800000000000",
+ "402c800000000000",
+ "402e800000000000",
+ "4030400000000000",
+ "4031400000000000",
+ "4032400000000000",
+ "4033400000000000",
+ "0000000000000000",
+ "4035400000000000",
+ "4036400000000000",
+ "4037400000000000",
+ "4038400000000000",
+ "4039400000000000",
+ "403a400000000000",
+ "403b400000000000",
+ "403c400000000000",
+ "403d400000000000",
+ "403e400000000000",
+ "403f400000000000",
+ "4040200000000000",
+ "4040a00000000000",
+ "4041200000000000",
+ "4041a00000000000"
+ ],
+ "input_e_hex": [
+ "408f3c0000000000",
+ "408f440000000000",
+ "408f4c0000000000",
+ "408f540000000000",
+ "408f5c0000000000",
+ "408f640000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -4,
+ -1,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "3fd0000000000000",
+ "3ff4000000000000",
+ "4002000000000000",
+ "400a000000000000",
+ "4011000000000000",
+ "4015000000000000",
+ "4019000000000000",
+ "401d000000000000",
+ "4020800000000000",
+ "4022800000000000",
+ "4024800000000000",
+ "4026800000000000",
+ "4028800000000000",
+ "402a800000000000",
+ "402c800000000000",
+ "402e800000000000",
+ "4030400000000000",
+ "4031400000000000",
+ "4032400000000000",
+ "4033400000000000",
+ "408f540000000000",
+ "4035400000000000",
+ "4036400000000000",
+ "4037400000000000",
+ "403a400000000000",
+ "4039400000000000",
+ "403b400000000000",
+ "4038400000000000",
+ "403c400000000000",
+ "403d400000000000",
+ "4040200000000000",
+ "403f400000000000",
+ "4040a00000000000",
+ "403e400000000000",
+ "4041200000000000",
+ "4041a00000000000"
+ ],
+ "output_e_hex": [
+ "408f3c0000000000",
+ "408f440000000000",
+ "408f4c0000000000",
+ "408f540000000000",
+ "408f5c0000000000",
+ "408f640000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "special-value-storage-U-C",
+ "provenance": "supplied-storage-special-bits",
+ "uplo": "U",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -4,
+ -1,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "0000000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "7ff8000000004321",
+ "7ff0000000000000",
+ "8000000000000000",
+ "fff0000000000000",
+ "3ff0000000000000",
+ "0000000000000000",
+ "7ff8000000004321",
+ "7ff0000000000000",
+ "8000000000000000",
+ "fff0000000000000",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "fff0000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "special-value-storage-U-R",
+ "provenance": "supplied-storage-special-bits",
+ "uplo": "U",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "0000000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -4,
+ -1,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "7ff8000000004321",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "fff0000000000000",
+ "7ff0000000000000",
+ "7ff8000000004321",
+ "8000000000000000",
+ "3ff0000000000000",
+ "0000000000000000",
+ "fff0000000000000",
+ "7ff0000000000000",
+ "7ff8000000004321",
+ "8000000000000000",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "ordered-two-swap-cycle-L-C",
+ "provenance": "supplied-storage",
+ "uplo": "L",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3fd0000000000000",
+ "3ff4000000000000",
+ "4002000000000000",
+ "400a000000000000",
+ "4011000000000000",
+ "4015000000000000",
+ "4019000000000000",
+ "401d000000000000",
+ "4020800000000000",
+ "4022800000000000",
+ "4024800000000000",
+ "4026800000000000",
+ "4028800000000000",
+ "402a800000000000",
+ "402c800000000000",
+ "402e800000000000",
+ "4030400000000000",
+ "4031400000000000",
+ "4032400000000000",
+ "4033400000000000",
+ "4034400000000000",
+ "4035400000000000",
+ "4036400000000000",
+ "4037400000000000",
+ "4038400000000000",
+ "4039400000000000",
+ "403a400000000000",
+ "403b400000000000",
+ "403c400000000000",
+ "403d400000000000",
+ "403e400000000000",
+ "403f400000000000",
+ "4040200000000000",
+ "4040a00000000000",
+ "4041200000000000",
+ "4041a00000000000"
+ ],
+ "input_e_hex": [
+ "408f3c0000000000",
+ "408f440000000000",
+ "408f4c0000000000",
+ "408f540000000000",
+ "408f5c0000000000",
+ "408f640000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -6,
+ -3,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "3fd0000000000000",
+ "3ff4000000000000",
+ "400a000000000000",
+ "4015000000000000",
+ "4011000000000000",
+ "4002000000000000",
+ "4019000000000000",
+ "401d000000000000",
+ "4022800000000000",
+ "4026800000000000",
+ "4024800000000000",
+ "4020800000000000",
+ "4028800000000000",
+ "402a800000000000",
+ "402c800000000000",
+ "0000000000000000",
+ "4030400000000000",
+ "4031400000000000",
+ "4032400000000000",
+ "4033400000000000",
+ "4034400000000000",
+ "4035400000000000",
+ "4036400000000000",
+ "4037400000000000",
+ "4038400000000000",
+ "4039400000000000",
+ "403a400000000000",
+ "403b400000000000",
+ "403c400000000000",
+ "403d400000000000",
+ "403e400000000000",
+ "403f400000000000",
+ "4040200000000000",
+ "4040a00000000000",
+ "4041200000000000",
+ "4041a00000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "402e800000000000",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "ordered-two-swap-cycle-L-R",
+ "provenance": "supplied-storage",
+ "uplo": "L",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "3fd0000000000000",
+ "3ff4000000000000",
+ "4002000000000000",
+ "400a000000000000",
+ "4011000000000000",
+ "4015000000000000",
+ "4019000000000000",
+ "401d000000000000",
+ "4020800000000000",
+ "4022800000000000",
+ "4024800000000000",
+ "4026800000000000",
+ "4028800000000000",
+ "402a800000000000",
+ "402c800000000000",
+ "0000000000000000",
+ "4030400000000000",
+ "4031400000000000",
+ "4032400000000000",
+ "4033400000000000",
+ "4034400000000000",
+ "4035400000000000",
+ "4036400000000000",
+ "4037400000000000",
+ "4038400000000000",
+ "4039400000000000",
+ "403a400000000000",
+ "403b400000000000",
+ "403c400000000000",
+ "403d400000000000",
+ "403e400000000000",
+ "403f400000000000",
+ "4040200000000000",
+ "4040a00000000000",
+ "4041200000000000",
+ "4041a00000000000"
+ ],
+ "input_e_hex": [
+ "408f3c0000000000",
+ "408f440000000000",
+ "408f4c0000000000",
+ "408f540000000000",
+ "408f5c0000000000",
+ "408f640000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -6,
+ -3,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "3fd0000000000000",
+ "3ff4000000000000",
+ "4015000000000000",
+ "4002000000000000",
+ "4011000000000000",
+ "400a000000000000",
+ "4019000000000000",
+ "401d000000000000",
+ "4026800000000000",
+ "4020800000000000",
+ "4024800000000000",
+ "4022800000000000",
+ "4028800000000000",
+ "402a800000000000",
+ "402c800000000000",
+ "408f4c0000000000",
+ "4030400000000000",
+ "4031400000000000",
+ "4032400000000000",
+ "4033400000000000",
+ "4034400000000000",
+ "4035400000000000",
+ "4036400000000000",
+ "4037400000000000",
+ "4038400000000000",
+ "4039400000000000",
+ "403a400000000000",
+ "403b400000000000",
+ "403c400000000000",
+ "403d400000000000",
+ "403e400000000000",
+ "403f400000000000",
+ "4040200000000000",
+ "4040a00000000000",
+ "4041200000000000",
+ "4041a00000000000"
+ ],
+ "output_e_hex": [
+ "408f3c0000000000",
+ "408f440000000000",
+ "408f4c0000000000",
+ "408f540000000000",
+ "408f5c0000000000",
+ "408f640000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "special-value-storage-L-C",
+ "provenance": "supplied-storage-special-bits",
+ "uplo": "L",
+ "way": "C",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -6,
+ -3,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "7ff8000000004321",
+ "0000000000000000",
+ "3ff0000000000000",
+ "fff0000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "7ff8000000004321",
+ "0000000000000000",
+ "3ff0000000000000",
+ "fff0000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "0000000000000000",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "0000000000000000",
+ "0000000000000000",
+ "7ff8000000004321",
+ "0000000000000000",
+ "0000000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ },
+ {
+ "id": "special-value-storage-L-R",
+ "provenance": "supplied-storage-special-bits",
+ "uplo": "L",
+ "way": "R",
+ "n": 6,
+ "input_a_hex_col_major": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "0000000000000000",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "input_e_hex": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "ipiv_signed_1based": [
+ 1,
+ 2,
+ -6,
+ -3,
+ 5,
+ 6
+ ],
+ "output_a_hex_col_major": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "0000000000000000",
+ "fff0000000000000",
+ "3ff0000000000000",
+ "7ff8000000004321",
+ "8000000000000000",
+ "7ff0000000000000",
+ "0000000000000000",
+ "fff0000000000000",
+ "3ff0000000000000",
+ "7ff8000000004321",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "fff0000000000000",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000",
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "output_e_hex": [
+ "8000000000000000",
+ "7ff0000000000000",
+ "fff0000000000000",
+ "7ff8000000004321",
+ "3ff0000000000000",
+ "0000000000000000"
+ ],
+ "info": 0
+ }
+ ]
+}
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/test.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/test.js
new file mode 100644
index 000000000000..5a67f98cbfd1
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/test.js
@@ -0,0 +1,243 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+'use strict';
+
+var tape = require( 'tape' );
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var SharedArrayBuffer = require( '@stdlib/array/shared-buffer' );
+var Symbol = require( '@stdlib/symbol/ctor' );
+var getGlobal = require( '@stdlib/utils/global' );
+var main = require( './../lib/main.js' );
+var publicMain = require( './../lib' );
+var common = require( './common.js' );
+
+tape('main export is a function', function test(t) {
+ t.ok( true, __filename );
+ t.strictEqual(typeof publicMain, 'function');
+ t.end();
+});
+
+tape( 'public routes reject shared backing storage before writes', {
+ 'skip': SharedArrayBuffer === null
+}, function test( t ) {
+ var routes;
+ var clone;
+ var whole;
+ var a;
+ var e;
+ var p;
+ whole = new SharedArrayBuffer( 128 );
+ clone = getGlobal().structuredClone;
+ clone = ( clone ) ? clone( whole ) : whole;
+ a = new Float64Array( whole, 0, 4 );
+ e = new Float64Array( clone, 16, 2 );
+ p = new Int32Array( [ -1, -2 ] );
+ a.set( [ 1, 92, 3, 4 ] );
+ routes = [ main, publicMain ];
+ routes.forEach( function eachRoute( fn ) {
+ t.throws( function call() {
+ fn( 'column-major', 'upper', 'convert', 2, a, 2, e, p );
+ }, TypeError, 'shared identity cannot establish disjoint storage' );
+ t.deepEqual( a, new Float64Array( [ 1, 92, 3, 4 ] ), 'no A writes' );
+ if ( Symbol.toStringTag ) {
+ Object.defineProperty( whole, Symbol.toStringTag, {
+ 'value': 'ArrayBuffer',
+ 'configurable': true
+ });
+ t.throws( function call() {
+ fn( 'column-major', 'upper', 'convert', 2, a, 2, e, p );
+ }, TypeError, 'spoofed tag cannot replace intrinsic branding' );
+ }
+ } );
+ t.end();
+} );
+
+tape('JavaScript factor storage matches actual pinned ROOK/RK directional fixtures', function test(t) {
+ common.corpus(t, main);
+ t.end();
+});
+tape('public main supports both padded major orders', function test(t) {
+ var order;
+ var lda;
+ var a;
+ var e;
+ var f;
+ var i;
+ var j;
+ var k;
+ var n;
+ var p;
+ var s;
+ var x;
+ for (k = 0; k < common.fixtures.length; k++) {
+ f = common.fixtures[k];
+ n = f.n;
+ if (n === 0) {
+ continue;
+ }
+ for (x = 0; x < 2; x++) {
+ order = ( x ) ? 'row-major' : 'column-major';
+ lda = n + 2;
+ a = new Float64Array(lda * n);
+ e = new Float64Array(n);
+ p = new Int32Array(f.ipiv_signed_1based);
+ s = common.pack(f, ( x ) ? lda : 1, ( x ) ? 1 : lda, 1, 1);
+ for (j = 0; j < n; j++) {
+ for (i = 0; i < n; i++) {
+ a[( x ) ? (i * lda) + j : i + (j * lda)] = s.args[3][s.args[6] + (i * s.args[4]) + (j * s.args[5])];
+ }
+ e[j] = s.args[7][s.args[9] + j];
+ }
+ t.strictEqual(publicMain(order, s.args[0], s.args[1], n, a, lda, e, p), 0, f.id + ' ' + order);
+ for (j = 0; j < n; j++) {
+ for (i = 0; i < n; i++) {
+ s.a[3 + s.args[6] + (i * s.args[4]) + (j * s.args[5])] = a[( x ) ? (i * lda) + j : i + (j * lda)];
+ }
+ s.e[3 + s.args[9] + j] = e[j];
+ }
+ t.ok(common.equal(s.a, s.expectedA), 'full A');
+ t.ok(common.equal(s.e, s.expectedE), 'full E');
+ t.deepEqual(p, new Int32Array(f.ipiv_signed_1based), 'unchanged pivots');
+ }
+ }
+ t.end();
+});
+tape('malformed pivots and indexed metadata reject before routine writes', function test(t) {
+ var bad;
+ var a;
+ var e;
+ var i;
+ var p;
+ bad = [
+ [
+ 0,
+ 2
+ ],
+ [
+ -1,
+ 2
+ ],
+ [
+ 1,
+ -2
+ ],
+ [
+ -2147483648,
+ -1
+ ],
+ [
+ 3,
+ 2
+ ],
+ [
+ -3,
+ -2
+ ]
+ ];
+ for (i = 0; i < bad.length; i++) {
+ a = new Float64Array([
+ 1,
+ 91,
+ 3,
+ 4
+ ]);
+ e = new Float64Array([
+ 8,
+ 9
+ ]);
+ p = new Int32Array(bad[i]);
+ t.throws(publicMain.bind(null, 'column-major', 'upper', 'convert', 2, a, 2, e, p), RangeError);
+ t.deepEqual(a, new Float64Array([
+ 1,
+ 91,
+ 3,
+ 4
+ ]), 'no A writes');
+ t.deepEqual(e, new Float64Array([
+ 8,
+ 9
+ ]), 'no E writes');
+ }
+ a = new Float64Array(16);
+ e = new Float64Array(4);
+ p = new Int32Array([
+ 1,
+ 2,
+ 3,
+ 4
+ ]);
+ t.throws(function call() {
+ publicMain.ndarray('upper', 'convert', 4, a, 1, 1, 0, e, 1, 0, p, 1, 0);
+ }, RangeError, 'matrix collisions');
+ t.throws(function call() {
+ publicMain.ndarray('upper', 'convert', 4, a, 1, 4, 0, e, 0, 0, p, 1, 0);
+ }, RangeError, 'mutable broadcast E');
+ t.throws(function call() {
+ publicMain.ndarray('upper', 'convert', 4, a, 9007199254740991, 4, 0, e, 1, 0, p, 1, 0);
+ }, RangeError, 'inexact indexing');
+ t.deepEqual(a, new Float64Array(16), 'invalid indexing never writes A');
+ t.deepEqual(e, new Float64Array(4), 'invalid indexing never writes E');
+ t.end();
+});
+tape('scalar precedence, validated empty views and signed target-one pairs', function test(t) {
+ var a;
+ var e;
+ var p;
+ t.strictEqual(publicMain('column-major', 'upper', 'convert', 0, null, 1, null, null), 0);
+ t.strictEqual(publicMain.ndarray('lower', 'revert', 0, null, NaN, null, null, null, null, null, null, null, null), 0);
+ t.throws(function call() {
+ publicMain('column-major', 'upper', 'convert', 0, null, 0, null, null);
+ }, RangeError, 'LDA validates before empty');
+ t.throws(function call() {
+ publicMain('column-major', 'upper', 'convert', 2147483648, null, 2147483648, null, null);
+ }, RangeError, 'N cap precedes buffers');
+ t.throws(function call() {
+ publicMain.ndarray('upper', 'convert', 2147483648, null, 0, 0, 0, null, 0, 0, null, 0, 0);
+ }, RangeError, 'ndarray N cap');
+ t.throws(function call() {
+ publicMain('bad', 'upper', 'convert', 0, null, 1, null, null);
+ }, TypeError);
+ t.throws(function call() {
+ publicMain.ndarray('upper', 'bad', 0, null, 0, 0, 0, null, 0, 0, null, 0, 0);
+ }, TypeError);
+ a = new Float64Array([
+ 2,
+ 77,
+ -0,
+ 4
+ ]);
+ e = new Float64Array([
+ 8,
+ 9
+ ]);
+ p = new Int32Array([
+ -1,
+ -2
+ ]);
+ t.strictEqual(publicMain('column-major', 'upper', 'convert', 2, a, 2, e, p), 0);
+ t.strictEqual(1 / e[1], -Infinity, 'negative zero storage');
+ t.strictEqual(1 / a[2], Infinity, 'canonical positive zero slot');
+ t.deepEqual(p, new Int32Array([
+ -1,
+ -2
+ ]), 'different negatives stay signed');
+ t.strictEqual(publicMain('column-major', 'upper', 'revert', 2, a, 2, e, p), 0);
+ t.strictEqual(1 / a[2], -Infinity, 'reversion restores sign');
+ t.end();
+});
diff --git a/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/test.native.js b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/test.native.js
new file mode 100644
index 000000000000..a3fd3f3b179b
--- /dev/null
+++ b/lib/node_modules/@stdlib/lapack/base/dsyconvf-rook/test/test.native.js
@@ -0,0 +1,280 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2026 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+'use strict';
+
+var resolve = require( 'path' ).resolve;
+var tape = require( 'tape' );
+var tryRequire = require( '@stdlib/utils/try-require' );
+var Float64Array = require( '@stdlib/array/float64' );
+var Int32Array = require( '@stdlib/array/int32' );
+var SharedArrayBuffer = require( '@stdlib/array/shared-buffer' );
+var getGlobal = require( '@stdlib/utils/global' );
+var common = require( './common.js' );
+var eligibility = require( './../lib/can_use_native.js' );
+var factory = require( './../lib/factory.js' );
+var base = require( './../lib/base.js' );
+var addon = tryRequire(resolve(__dirname, './../src/addon.node'));
+var native = tryRequire(resolve(__dirname, './../lib/native.js'));
+var opts = {
+ 'skip': native instanceof Error
+};
+
+tape('main export is a function', opts, function test(t) {
+ t.ok( true, __filename );
+ t.strictEqual(typeof native, 'function');
+ t.end();
+});
+
+tape( 'raw addon rejects physical overlap across distinct shared identities', {
+ 'skip': native instanceof Error || SharedArrayBuffer === null
+}, function test( t ) {
+ var whole;
+ var clone;
+ var a;
+ var e;
+ var p;
+ whole = new SharedArrayBuffer( 128 );
+ clone = getGlobal().structuredClone;
+ clone = ( clone ) ? clone( whole ) : whole;
+ a = new Float64Array( whole, 0, 4 );
+ e = new Float64Array( clone, 16, 2 );
+ p = new Int32Array( [ -1, -2 ] );
+ a.set( [ 1, 92, 3, 4 ] );
+ t.throws( function call() {
+ addon( 121, 67, 2, a, 1, 2, 0, e, 1, 0, p, 1, 0 );
+ }, RangeError, 'physical indexed envelopes overlap' );
+ t.deepEqual( a, new Float64Array( [ 1, 92, 3, 4 ] ), 'no A writes' );
+ t.deepEqual( p, new Int32Array( [ -1, -2 ] ), 'no P writes' );
+ t.end();
+} );
+
+tape('actual compiled native addon matches independent-direction fixtures', opts, function test(t) {
+ t.strictEqual(typeof addon, 'function', 'actual node binary export loaded');
+ common.corpus(t, native);
+ t.end();
+});
+tape('native eligibility covers complete sums and valid wide singleton fallback', function test(t) {
+ var calls;
+ var fn;
+ var a;
+ var e;
+ var p;
+ calls = 0;
+ fn = factory(function dispatch() {
+ if (eligibility(arguments)) {
+ calls += 1;
+ return base.apply(null, arguments);
+ }
+ return base.apply(null, arguments);
+ });
+ a = new Float64Array([5]);
+ e = new Float64Array([7]);
+ p = new Int32Array([1]);
+ t.strictEqual(eligibility([
+ 121,
+ 67,
+ 2,
+ null,
+ 2000000000,
+ 1000000000,
+ 0,
+ null,
+ 1,
+ 0,
+ null,
+ 1,
+ 0
+ ]), false, 'full corner sum exceeds native width');
+ t.strictEqual(eligibility([
+ 121,
+ 67,
+ 2,
+ null,
+ 1,
+ 2,
+ 2147483646,
+ null,
+ 1,
+ 0,
+ null,
+ 1,
+ 0
+ ]), false, 'offset plus active corner');
+ t.strictEqual(eligibility([
+ 121,
+ 67,
+ 2,
+ null,
+ 1,
+ 2,
+ 0,
+ null,
+ 2,
+ 2147483646,
+ null,
+ 1,
+ 0
+ ]), false, 'vector offset plus delta');
+ t.strictEqual(fn.ndarray('upper', 'convert', 1, a, 9007199254740991, -9007199254740991, 0, e, 9007199254740991, 0, p, -9007199254740991, 0), 0);
+ t.strictEqual(calls, 0, 'wide unused metadata goes to JavaScript');
+ t.strictEqual(e[0], 0);
+ t.strictEqual(a[0], 5);
+ t.end();
+});
+tape('raw addon rejects malformed and fractional inputs before mutation', opts, function test(t) {
+ var slots;
+ var args;
+ var a;
+ var e;
+ var i;
+ var p;
+ var x;
+ a = new Float64Array([
+ 1,
+ 2,
+ 3,
+ 4
+ ]);
+ e = new Float64Array([
+ 8,
+ 9
+ ]);
+ p = new Int32Array([
+ -1,
+ -2
+ ]);
+ args = [
+ 121,
+ 67,
+ 2,
+ a,
+ 1,
+ 2,
+ 0,
+ e,
+ 1,
+ 0,
+ p,
+ 1,
+ 0
+ ];
+ slots = [
+ 0,
+ 1,
+ 2,
+ 4,
+ 5,
+ 6,
+ 8,
+ 9,
+ 11,
+ 12
+ ];
+ for (i = 0; i < slots.length; i++) {
+ x = args.slice();
+ x[slots[i]] += 0.5;
+ t.throws(addon.apply.bind(addon, null, x), RangeError, 'fractional scalar ' + slots[i]);
+ }
+ x = args.slice();
+ x[4] = 0;
+ x[5] = 0;
+ x[8] = 0;
+ x[11] = 0;
+ x[2] = 2147483647;
+ t.throws(function call() {
+ addon.apply(null, x);
+ }, RangeError, 'tiny broadcast rejected before workspace allocation');
+ x = args.slice();
+ x[4] = 1;
+ x[5] = 1;
+ t.throws(function call() {
+ addon.apply(null, x);
+ }, RangeError, 'full square collisions');
+ x = args.slice();
+ x[8] = 0;
+ t.throws(function call() {
+ addon.apply(null, x);
+ }, RangeError, 'mutable E broadcast');
+ x = args.slice();
+ x[10] = new Int32Array([
+ -1,
+ 0
+ ]);
+ t.throws(function call() {
+ addon.apply(null, x);
+ }, RangeError, 'late malformed pivots');
+ t.deepEqual(a, new Float64Array([
+ 1,
+ 2,
+ 3,
+ 4
+ ]), 'no A writes');
+ t.deepEqual(e, new Float64Array([
+ 8,
+ 9
+ ]), 'no E writes');
+ t.deepEqual(p, new Int32Array([
+ -1,
+ -2
+ ]), 'no P writes');
+ t.strictEqual(addon(121, 67, 0, null, NaN, null, null, null, null, null, null, null, null), 0, 'validated empty raw addon reads no buffers/metadata');
+ t.end();
+});
+tape('native bridge accepts disjoint indexed subviews and ignores exposed metadata getters', opts, function test(t) {
+ var overlapping;
+ var reads;
+ var whole;
+ var a;
+ var e;
+ var p;
+ whole = new Float64Array(16);
+ a = new Float64Array(whole.buffer, 8, 4);
+ e = new Float64Array(whole.buffer, 64, 2);
+ p = new Int32Array(whole.buffer, 96, 2);
+ reads = 0;
+ a.set([
+ 1,
+ 92,
+ 3,
+ 4
+ ]);
+ e.set([
+ 8,
+ 9
+ ]);
+ p.set([
+ -1,
+ -2
+ ]);
+ Object.defineProperty(a, 'buffer', {
+ 'get': function get() {
+ reads += 1;
+ throw new Error('untrusted getter');
+ }
+ });
+ t.strictEqual(native('column-major', 'upper', 'convert', 2, a, 2, e, p), 0);
+ t.strictEqual(e[1], 3);
+ t.strictEqual(reads, 0, 'captured intrinsic metadata');
+ t.strictEqual(native('column-major', 'upper', 'revert', 2, a, 2, e, p), 0);
+ t.strictEqual(a[2], 3);
+ overlapping = new Float64Array(whole.buffer, 16, 2);
+ t.throws(function call() {
+ native('column-major', 'upper', 'convert', 2, a, 2, overlapping, p);
+ }, RangeError, 'overlapping indexed envelopes');
+ t.end();
+});