From 17209a8942ddf4d28ad8e2c634e83911123dd878 Mon Sep 17 00:00:00 2001 From: kgryte <2643044+kgryte@users.noreply.github.com> Date: Mon, 5 Oct 2026 04:40:20 +0000 Subject: [PATCH] chore: cleanup coverage directories Signed-off-by: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> --- blas/ext/fill-range/base.css | 224 ----- blas/ext/fill-range/base.js.html | 460 ---------- blas/ext/fill-range/block-navigation.js | 87 -- blas/ext/fill-range/broadcast_index.js.html | 253 ------ blas/ext/fill-range/coverage.ndjson | 2 - blas/ext/fill-range/favicon.png | Bin 445 -> 0 bytes blas/ext/fill-range/index.html | 161 ---- blas/ext/fill-range/index.js.html | 268 ------ blas/ext/fill-range/lib/base.js.html | 460 ---------- .../fill-range/lib/broadcast_index.js.html | 253 ------ blas/ext/fill-range/lib/coverage.ndjson | 3 - blas/ext/fill-range/lib/index.html | 161 ---- blas/ext/fill-range/lib/index.js.html | 268 ------ blas/ext/fill-range/lib/main.js.html | 811 ------------------ blas/ext/fill-range/main.js.html | 811 ------------------ blas/ext/fill-range/prettify.css | 1 - blas/ext/fill-range/prettify.js | 2 - blas/ext/fill-range/sort-arrow-sprite.png | Bin 138 -> 0 bytes blas/ext/fill-range/sorter.js | 196 ----- 19 files changed, 4421 deletions(-) delete mode 100644 blas/ext/fill-range/base.css delete mode 100644 blas/ext/fill-range/base.js.html delete mode 100644 blas/ext/fill-range/block-navigation.js delete mode 100644 blas/ext/fill-range/broadcast_index.js.html delete mode 100644 blas/ext/fill-range/coverage.ndjson delete mode 100644 blas/ext/fill-range/favicon.png delete mode 100644 blas/ext/fill-range/index.html delete mode 100644 blas/ext/fill-range/index.js.html delete mode 100644 blas/ext/fill-range/lib/base.js.html delete mode 100644 blas/ext/fill-range/lib/broadcast_index.js.html delete mode 100644 blas/ext/fill-range/lib/coverage.ndjson delete mode 100644 blas/ext/fill-range/lib/index.html delete mode 100644 blas/ext/fill-range/lib/index.js.html delete mode 100644 blas/ext/fill-range/lib/main.js.html delete mode 100644 blas/ext/fill-range/main.js.html delete mode 100644 blas/ext/fill-range/prettify.css delete mode 100644 blas/ext/fill-range/prettify.js delete mode 100644 blas/ext/fill-range/sort-arrow-sprite.png delete mode 100644 blas/ext/fill-range/sorter.js diff --git a/blas/ext/fill-range/base.css b/blas/ext/fill-range/base.css deleted file mode 100644 index f418035b469a..000000000000 --- a/blas/ext/fill-range/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/blas/ext/fill-range/base.js.html b/blas/ext/fill-range/base.js.html deleted file mode 100644 index fb6e34c874ce..000000000000 --- a/blas/ext/fill-range/base.js.html +++ /dev/null @@ -1,460 +0,0 @@ - - - - -
-- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| 1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 | 1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x - | /**
-* @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 dtypes = require( '@stdlib/ndarray/dtypes' );
-var gfill = require( '@stdlib/blas/ext/base/ndarray/gfill' );
-var dfill = require( '@stdlib/blas/ext/base/ndarray/dfill' );
-var sfill = require( '@stdlib/blas/ext/base/ndarray/sfill' );
-var cfill = require( '@stdlib/blas/ext/base/ndarray/cfill' );
-var zfill = require( '@stdlib/blas/ext/base/ndarray/zfill' );
-var factory = require( '@stdlib/ndarray/base/nullary-strided1d-dispatch-factory' );
-
-
-// VARIABLES //
-
-var idtypes0 = dtypes( 'all' ); // fill value ndarray
-var idtypes1 = dtypes( 'integer_index_and_generic' ); // start/end ndarrays
-var odtypes = dtypes( 'all' );
-var table = {
- 'types': [
- 'float64', // input/output
- 'float32', // input/output
- 'complex128', // input/output
- 'complex64' // input/output
- ],
- 'fcns': [
- dfill,
- sfill,
- zfill,
- cfill
- ],
- 'default': gfill
-};
-var options = {
- 'strictTraversalOrder': true
-};
-
-
-// MAIN //
-
-/**
-* Fills an input ndarray with a specified value along an ndarray dimension.
-*
-* @private
-* @name fillRange
-* @type {Function}
-* @param {ndarray} x - input ndarray
-* @param {ndarray} value - ndarray containing the fill value
-* @param {ndarray} start - ndarray containing the starting index (inclusive)
-* @param {ndarray} end - ndarray containing the ending index (exclusive)
-* @param {Options} [options] - function options
-* @param {IntegerArray} [options.dims] - list of dimensions over which to perform operation
-* @throws {TypeError} first argument must be an ndarray-like object
-* @throws {TypeError} second argument must be an ndarray-like object
-* @throws {TypeError} index arguments must be ndarray-like objects
-* @throws {TypeError} options argument must be an object
-* @throws {RangeError} dimension indices must not exceed input ndarray bounds
-* @throws {Error} must provide valid options
-* @returns {ndarray} input ndarray
-*
-* @example
-* var Float64Array = require( '@stdlib/array/float64' );
-* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
-* var ndarray = require( '@stdlib/ndarray/ctor' );
-*
-* // Create a data buffer:
-* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
-*
-* // Define the shape of the input array:
-* var sh = [ 6 ];
-*
-* // Define the array strides:
-* var sx = [ 1 ];
-*
-* // Define the index offset:
-* var ox = 0;
-*
-* // Create an input ndarray:
-* var x = new ndarray( 'float64', xbuf, sh, sx, ox, 'row-major' );
-*
-* // Create an ndarray containing the fill value:
-* var value = scalar2ndarray( 10.0, {
-* 'dtype': 'float64'
-* });
-*
-* // Create ndarrays containing the starting and ending indices:
-* var opts = {
-* 'dtype': 'int32'
-* };
-* var start = scalar2ndarray( 1, opts );
-* var end = scalar2ndarray( 4, opts );
-*
-* // Perform operation:
-* var out = fillRange( x, value, start, end, {
-* 'dims': [ 0 ]
-* });
-* // returns <ndarray>[ 1.0, 10.0, 10.0, 10.0, 5.0, 6.0 ]
-*
-* var bool = ( out === x );
-* // returns true
-*/
-var fillRange = factory( table, [ idtypes0, idtypes1, idtypes1 ], odtypes, options );
-
-
-// EXPORTS //
-
-module.exports = fillRange;
- |
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| 1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 | 1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -90x -90x -90x -73x -73x -17x -90x -1x -1x -1x -1x -1x - | /**
-* @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 isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;
-var broadcastScalar = require( '@stdlib/ndarray/base/broadcast-scalar' );
-var maybeBroadcastArray = require( '@stdlib/ndarray/base/maybe-broadcast-array' );
-var getDefault = require( '@stdlib/ndarray/defaults' ).get;
-
-
-// VARIABLES //
-
-var DEFAULT_DTYPE = getDefault( 'dtypes.integer_index' );
-
-
-// MAIN //
-
-/**
-* Broadcasts an index argument to match the shape of the non-core dimensions.
-*
-* @private
-* @param {(ndarray|NonNegativeInteger)} idx - index argument
-* @param {NonNegativeIntegerArray} shape - shape of the non-core dimensions
-* @param {string} order - memory layout order
-* @returns {ndarray} ndarray containing index values
-*/
-function broadcastIndex( idx, shape, order ) {
- // FIXME: this breaks for large integer/array sizes (e.g., casting idx > 2^32 to int32). We also need to update in the future to accommodate 64-bit integer values.
- if ( isInteger( idx ) ) {
- return broadcastScalar( idx, DEFAULT_DTYPE, shape, order );
- }
- return maybeBroadcastArray( idx, shape );
-}
-
-
-// EXPORTS //
-
-module.exports = broadcastIndex;
- |
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| File | -- | Statements | -- | Branches | -- | Functions | -- | Lines | -- |
|---|---|---|---|---|---|---|---|---|---|
| base.js | -
-
- |
- 100% | -125/125 | -100% | -1/1 | -100% | -0/0 | -100% | -125/125 | -
| broadcast_index.js | -
-
- |
- 100% | -56/56 | -100% | -4/4 | -100% | -1/1 | -100% | -56/56 | -
| index.js | -
-
- |
- 100% | -61/61 | -100% | -1/1 | -100% | -0/0 | -100% | -61/61 | -
| main.js | -
-
- |
- 100% | -242/242 | -100% | -49/49 | -100% | -1/1 | -100% | -242/242 | -
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| 1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 | 1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x - | /** -* @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'; - -/** -* Fill an input ndarray with a specified value along an ndarray dimension. -* -* @module @stdlib/blas/ext/fill-range -* -* @example -* var Float64Array = require( '@stdlib/array/float64' ); -* var ndarray = require( '@stdlib/ndarray/ctor' ); -* var fillRange = require( '@stdlib/blas/ext/fill-range' ); -* -* // Create a data buffer: -* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); -* -* // Define the shape of the input array: -* var sh = [ 6 ]; -* -* // Define the array strides: -* var sx = [ 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray: -* var x = new ndarray( 'float64', xbuf, sh, sx, ox, 'row-major' ); -* -* // Perform operation: -* var out = fillRange( x, 10.0, 1, 4 ); -* // returns <ndarray>[ 1.0, 10.0, 10.0, 10.0, 5.0, 6.0 ] -* -* var bool = ( out === x ); -* // returns true -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; - |
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| 1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 | 1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x - | /**
-* @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 dtypes = require( '@stdlib/ndarray/dtypes' );
-var gfill = require( '@stdlib/blas/ext/base/ndarray/gfill' );
-var dfill = require( '@stdlib/blas/ext/base/ndarray/dfill' );
-var sfill = require( '@stdlib/blas/ext/base/ndarray/sfill' );
-var cfill = require( '@stdlib/blas/ext/base/ndarray/cfill' );
-var zfill = require( '@stdlib/blas/ext/base/ndarray/zfill' );
-var factory = require( '@stdlib/ndarray/base/nullary-strided1d-dispatch-factory' );
-
-
-// VARIABLES //
-
-var idtypes0 = dtypes( 'all' ); // fill value ndarray
-var idtypes1 = dtypes( 'integer_index_and_generic' ); // start/end ndarrays
-var odtypes = dtypes( 'all' );
-var table = {
- 'types': [
- 'float64', // input/output
- 'float32', // input/output
- 'complex128', // input/output
- 'complex64' // input/output
- ],
- 'fcns': [
- dfill,
- sfill,
- zfill,
- cfill
- ],
- 'default': gfill
-};
-var options = {
- 'strictTraversalOrder': true
-};
-
-
-// MAIN //
-
-/**
-* Fills an input ndarray with a specified value along an ndarray dimension.
-*
-* @private
-* @name fillRange
-* @type {Function}
-* @param {ndarray} x - input ndarray
-* @param {ndarray} value - ndarray containing the fill value
-* @param {ndarray} start - ndarray containing the starting index (inclusive)
-* @param {ndarray} end - ndarray containing the ending index (exclusive)
-* @param {Options} [options] - function options
-* @param {IntegerArray} [options.dims] - list of dimensions over which to perform operation
-* @throws {TypeError} first argument must be an ndarray-like object
-* @throws {TypeError} second argument must be an ndarray-like object
-* @throws {TypeError} index arguments must be ndarray-like objects
-* @throws {TypeError} options argument must be an object
-* @throws {RangeError} dimension indices must not exceed input ndarray bounds
-* @throws {Error} must provide valid options
-* @returns {ndarray} input ndarray
-*
-* @example
-* var Float64Array = require( '@stdlib/array/float64' );
-* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
-* var ndarray = require( '@stdlib/ndarray/ctor' );
-*
-* // Create a data buffer:
-* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
-*
-* // Define the shape of the input array:
-* var sh = [ 6 ];
-*
-* // Define the array strides:
-* var sx = [ 1 ];
-*
-* // Define the index offset:
-* var ox = 0;
-*
-* // Create an input ndarray:
-* var x = new ndarray( 'float64', xbuf, sh, sx, ox, 'row-major' );
-*
-* // Create an ndarray containing the fill value:
-* var value = scalar2ndarray( 10.0, {
-* 'dtype': 'float64'
-* });
-*
-* // Create ndarrays containing the starting and ending indices:
-* var opts = {
-* 'dtype': 'int32'
-* };
-* var start = scalar2ndarray( 1, opts );
-* var end = scalar2ndarray( 4, opts );
-*
-* // Perform operation:
-* var out = fillRange( x, value, start, end, {
-* 'dims': [ 0 ]
-* });
-* // returns <ndarray>[ 1.0, 10.0, 10.0, 10.0, 5.0, 6.0 ]
-*
-* var bool = ( out === x );
-* // returns true
-*/
-var fillRange = factory( table, [ idtypes0, idtypes1, idtypes1 ], odtypes, options );
-
-
-// EXPORTS //
-
-module.exports = fillRange;
- |
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| 1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 | 1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x - - - - - - - -1x -1x -1x -1x -1x - | /**
-* @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 isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;
-var broadcastScalar = require( '@stdlib/ndarray/base/broadcast-scalar' );
-var maybeBroadcastArray = require( '@stdlib/ndarray/base/maybe-broadcast-array' );
-var getDefault = require( '@stdlib/ndarray/defaults' ).get;
-
-
-// VARIABLES //
-
-var DEFAULT_DTYPE = getDefault( 'dtypes.integer_index' );
-
-
-// MAIN //
-
-/**
-* Broadcasts an index argument to match the shape of the non-core dimensions.
-*
-* @private
-* @param {(ndarray|NonNegativeInteger)} idx - index argument
-* @param {NonNegativeIntegerArray} shape - shape of the non-core dimensions
-* @param {string} order - memory layout order
-* @returns {ndarray} ndarray containing index values
-*/
-function broadcastIndex( idx, shape, order ) {
- // FIXME: this breaks for large integer/array sizes (e.g., casting idx > 2^32 to int32). We also need to update in the future to accommodate 64-bit integer values.
- if ( isInteger( idx ) ) {
- return broadcastScalar( idx, DEFAULT_DTYPE, shape, order );
- }
- return maybeBroadcastArray( idx, shape );
-}
-
-
-// EXPORTS //
-
-module.exports = broadcastIndex;
- |
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| File | -- | Statements | -- | Branches | -- | Functions | -- | Lines | -- |
|---|---|---|---|---|---|---|---|---|---|
| base.js | -
-
- |
- 100% | -125/125 | -100% | -1/1 | -100% | -0/0 | -100% | -125/125 | -
| broadcast_index.js | -
-
- |
- 87.5% | -49/56 | -100% | -1/1 | -0% | -0/1 | -87.5% | -49/56 | -
| index.js | -
-
- |
- 100% | -61/61 | -100% | -1/1 | -100% | -0/0 | -100% | -61/61 | -
| main.js | -
-
- |
- 40.9% | -99/242 | -100% | -1/1 | -0% | -0/1 | -40.9% | -99/242 | -
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| 1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 | 1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x - | /** -* @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'; - -/** -* Fill an input ndarray with a specified value along an ndarray dimension. -* -* @module @stdlib/blas/ext/fill-range -* -* @example -* var Float64Array = require( '@stdlib/array/float64' ); -* var ndarray = require( '@stdlib/ndarray/ctor' ); -* var fillRange = require( '@stdlib/blas/ext/fill-range' ); -* -* // Create a data buffer: -* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); -* -* // Define the shape of the input array: -* var sh = [ 6 ]; -* -* // Define the array strides: -* var sx = [ 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray: -* var x = new ndarray( 'float64', xbuf, sh, sx, ox, 'row-major' ); -* -* // Perform operation: -* var out = fillRange( x, 10.0, 1, 4 ); -* // returns <ndarray>[ 1.0, 10.0, 10.0, 10.0, 5.0, 6.0 ] -* -* var bool = ( out === x ); -* // returns true -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; - |
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| 1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 | 1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1x -1x -1x -1x -1x - | /**
-* @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 hasOwnProp = require( '@stdlib/assert/has-own-property' );
-var isPlainObject = require( '@stdlib/assert/is-plain-object' );
-var isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;
-var isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );
-var isScalarMostlySafeCompatible = require( '@stdlib/ndarray/base/assert/is-scalar-mostly-safe-compatible' ); // eslint-disable-line id-length
-var isMostlySafeCast = require( '@stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast' );
-var isEqualDataType = require( '@stdlib/ndarray/base/assert/is-equal-data-type' );
-var broadcastScalar = require( '@stdlib/ndarray/base/broadcast-scalar' );
-var maybeBroadcastArray = require( '@stdlib/ndarray/base/maybe-broadcast-array' );
-var baseEmpty = require( '@stdlib/ndarray/base/empty' );
-var assign = require( '@stdlib/ndarray/base/assign' );
-var nonCoreShape = require( '@stdlib/ndarray/base/complement-shape' );
-var normalizeIndex = require( '@stdlib/ndarray/base/normalize-index' );
-var getDType = require( '@stdlib/ndarray/dtype' );
-var getShape = require( '@stdlib/ndarray/shape' );
-var getOrder = require( '@stdlib/ndarray/order' );
-var format = require( '@stdlib/string/format' );
-var broadcastIndex = require( './broadcast_index.js' );
-var base = require( './base.js' );
-
-
-// MAIN //
-
-/**
-* Fills an input ndarray with a specified value along an ndarray dimension.
-*
-* ## Notes
-*
-* - The input ndarray is filled **in-place** (i.e., the input ndarray is **mutated**).
-* - When a `start` and/or `end` index is negative, the respective index is determined relative to the last indexed element, with out-of-bounds indices clamped to index bounds.
-*
-* @param {ndarrayLike} x - input ndarray
-* @param {(ndarrayLike|*)} value - fill value
-* @param {(ndarrayLike|integer)} [start] - starting index (inclusive)
-* @param {(ndarrayLike|integer)} [end] - ending index (exclusive)
-* @param {Options} [options] - function options
-* @param {integer} [options.dim=-1] - dimension over which to perform operation
-* @throws {TypeError} first argument must be an ndarray-like object
-* @throws {TypeError} second argument cannot be safely cast to the input ndarray data type
-* @throws {TypeError} index arguments must be either ndarray-like objects or integers
-* @throws {TypeError} options argument must be an object
-* @throws {RangeError} dimension index must not exceed input ndarray bounds
-* @throws {RangeError} first argument must have at least one dimension
-* @throws {TypeError} must provide valid options
-* @returns {ndarray} input ndarray
-*
-* @example
-* var Float64Array = require( '@stdlib/array/float64' );
-* var ndarray = require( '@stdlib/ndarray/ctor' );
-*
-* // Create a data buffer:
-* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
-*
-* // Define the shape of the input array:
-* var sh = [ 6 ];
-*
-* // Define the array strides:
-* var sx = [ 1 ];
-*
-* // Define the index offset:
-* var ox = 0;
-*
-* // Create an input ndarray:
-* var x = new ndarray( 'float64', xbuf, sh, sx, ox, 'row-major' );
-*
-* // Perform operation:
-* var out = fillRange( x, 10.0, 1, 4 );
-* // returns <ndarray>[ 1.0, 10.0, 10.0, 10.0, 5.0, 6.0 ]
-*
-* var bool = ( out === x );
-* // returns true
-*/
-function fillRange( x, value ) {
- var hasOptions;
- var hasStart;
- var options;
- var hasEnd;
- var nargs;
- var start;
- var opts;
- var end;
- var lsh;
- var len;
- var ord;
- var vdt;
- var sh;
- var dt;
- var d;
- var e;
- var s;
- var v;
-
- nargs = arguments.length;
- if ( !isndarrayLike( x ) ) {
- throw new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );
- }
- // Resolve input ndarray meta data:
- dt = getDType( x );
- ord = getOrder( x );
-
- // Initialize an options object:
- opts = {
- 'dims': [ -1 ] // default behavior is to perform the operation over the last dimension
- };
-
- // Initialize flags indicating whether `start`, `end`, and `options` arguments were provided:
- hasOptions = false;
- hasStart = false;
- hasEnd = false;
-
- // Case: fillRange( x, value, start, end, options )
- if ( nargs > 4 ) {
- start = arguments[ 2 ];
- if ( !isInteger( start ) && !isndarrayLike( start ) ) {
- throw new TypeError( format( 'invalid argument. Third argument must be either an ndarray or an integer. Value: `%s`.', start ) );
- }
- hasStart = true;
- end = arguments[ 3 ];
- if ( !isInteger( end ) && !isndarrayLike( end ) ) {
- throw new TypeError( format( 'invalid argument. Fourth argument must be either an ndarray or an integer. Value: `%s`.', end ) );
- }
- hasEnd = true;
- options = arguments[ 4 ];
- hasOptions = true;
- }
- // Case: fillRange( x, value, start, ??? )
- else if ( nargs === 4 ) {
- start = arguments[ 2 ];
- if ( !isInteger( start ) && !isndarrayLike( start ) ) {
- throw new TypeError( format( 'invalid argument. Third argument must be either an ndarray or an integer. Value: `%s`.', start ) );
- }
- hasStart = true;
-
- // Case: fillRange( x, value, start, end )
- if ( isInteger( arguments[ 3 ] ) || isndarrayLike( arguments[ 3 ] ) ) {
- end = arguments[ 3 ];
- hasEnd = true;
- }
- // Case: fillRange( x, value, start, options )
- else {
- options = arguments[ 3 ];
- hasOptions = true;
- }
- }
- // Case: fillRange( x, value, ??? )
- else if ( nargs === 3 ) {
- // Case: fillRange( x, value, start )
- if ( isInteger( arguments[ 2 ] ) || isndarrayLike( arguments[ 2 ] ) ) {
- start = arguments[ 2 ];
- hasStart = true;
- }
- // Case: fillRange( x, value, options )
- else {
- options = arguments[ 2 ];
- hasOptions = true;
- }
- }
- if ( hasOptions ) {
- if ( !isPlainObject( options ) ) {
- throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );
- }
- // Resolve provided options...
- if ( hasOwnProp( options, 'dim' ) ) {
- if ( !isInteger( options.dim ) ) {
- throw new TypeError( format( 'invalid option. `%s` option must be an integer. Option: `%s`.', 'dim', options.dim ) );
- }
- opts.dims[ 0 ] = options.dim;
- }
- }
- // Resolve the shape of the non-core dimensions and the number of indexed elements...
- sh = getShape( x );
- if ( sh.length < 1 ) {
- throw new RangeError( 'invalid argument. First argument must have at least one dimension.' );
- }
- d = normalizeIndex( opts.dims[ 0 ], sh.length-1 );
- if ( d === -1 ) {
- throw new RangeError( format( 'invalid option. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', sh.length, opts.dims[ 0 ] ) );
- }
- opts.dims[ 0 ] = d;
- lsh = nonCoreShape( sh, opts.dims );
- len = sh[ d ];
-
- // Case: fillRange( x, value_ndarray, ... )
- if ( isndarrayLike( value ) ) {
- vdt = getDType( value );
-
- // Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the input array data type is floating-point...
- if ( !isMostlySafeCast( vdt, dt ) ) {
- throw new TypeError( format( 'invalid argument. Second argument cannot be safely cast to the input ndarray data type. Data types: [%s, %s].', vdt, dt ) );
- }
- if ( isEqualDataType( vdt, dt ) ) {
- v = value;
- } else {
- // If we have unequal data types, we need to perform a copy...
- v = baseEmpty( dt, getShape( value ), getOrder( value ) );
- assign( [ value, v ] );
- }
- // The fill value must have a shape which is broadcast compatible with the shape of the non-core dimensions...
- v = maybeBroadcastArray( v, lsh );
- }
- // Case: fillRange( x, value_scalar, ... )
- else {
- // Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the input data type is floating-point...
- if ( !isScalarMostlySafeCompatible( value, dt ) ) {
- throw new TypeError( format( 'invalid argument. Second argument cannot be safely cast to the input ndarray data type. Data type: %s. Value: `%s`.', dt, value ) );
- }
- v = broadcastScalar( value, dt, lsh, ord );
- }
- // Broadcast the indices to match the shape of the non-core dimensions...
- s = broadcastIndex( ( hasStart ) ? start : 0, lsh, ord );
- e = broadcastIndex( ( hasEnd ) ? end : len, lsh, ord );
-
- // Perform operation:
- return base( x, v, s, e, opts );
-}
-
-
-// EXPORTS //
-
-module.exports = fillRange;
- |
- Press n or j to go to the next uncovered block, b, p or k for the previous block. -
- -| 1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 | 1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -1x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -239x -60x -60x -179x -179x -179x -179x -179x -179x -179x -179x -179x -179x -179x -179x -179x -179x -179x -239x -50x -50x -10x -10x -40x -40x -50x -10x -10x -30x -30x -30x -30x -129x -129x -47x -47x -20x -20x -27x -27x -27x -47x -13x -13x -13x -14x -14x -14x -14x -14x -47x -82x -82x -49x -49x -6x -6x -6x -43x -43x -43x -43x -43x -49x -239x -87x -27x -27x -60x -87x -36x -18x -18x -18x -18x -87x -94x -94x -239x -3x -3x -91x -239x -4x -4x -87x -87x -87x -87x -87x -239x -24x -24x -24x -24x -10x -10x -24x -11x -24x -3x -3x -3x -3x -14x -14x -14x -63x -63x -63x -63x -20x -20x -43x -43x -48x -239x -239x -239x -239x -239x -239x -1x -1x -1x -1x -1x - | /**
-* @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 hasOwnProp = require( '@stdlib/assert/has-own-property' );
-var isPlainObject = require( '@stdlib/assert/is-plain-object' );
-var isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;
-var isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );
-var isScalarMostlySafeCompatible = require( '@stdlib/ndarray/base/assert/is-scalar-mostly-safe-compatible' ); // eslint-disable-line id-length
-var isMostlySafeCast = require( '@stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast' );
-var isEqualDataType = require( '@stdlib/ndarray/base/assert/is-equal-data-type' );
-var broadcastScalar = require( '@stdlib/ndarray/base/broadcast-scalar' );
-var maybeBroadcastArray = require( '@stdlib/ndarray/base/maybe-broadcast-array' );
-var baseEmpty = require( '@stdlib/ndarray/base/empty' );
-var assign = require( '@stdlib/ndarray/base/assign' );
-var nonCoreShape = require( '@stdlib/ndarray/base/complement-shape' );
-var normalizeIndex = require( '@stdlib/ndarray/base/normalize-index' );
-var getDType = require( '@stdlib/ndarray/dtype' );
-var getShape = require( '@stdlib/ndarray/shape' );
-var getOrder = require( '@stdlib/ndarray/order' );
-var format = require( '@stdlib/string/format' );
-var broadcastIndex = require( './broadcast_index.js' );
-var base = require( './base.js' );
-
-
-// MAIN //
-
-/**
-* Fills an input ndarray with a specified value along an ndarray dimension.
-*
-* ## Notes
-*
-* - The input ndarray is filled **in-place** (i.e., the input ndarray is **mutated**).
-* - When a `start` and/or `end` index is negative, the respective index is determined relative to the last indexed element, with out-of-bounds indices clamped to index bounds.
-*
-* @param {ndarrayLike} x - input ndarray
-* @param {(ndarrayLike|*)} value - fill value
-* @param {(ndarrayLike|integer)} [start] - starting index (inclusive)
-* @param {(ndarrayLike|integer)} [end] - ending index (exclusive)
-* @param {Options} [options] - function options
-* @param {integer} [options.dim=-1] - dimension over which to perform operation
-* @throws {TypeError} first argument must be an ndarray-like object
-* @throws {TypeError} second argument cannot be safely cast to the input ndarray data type
-* @throws {TypeError} index arguments must be either ndarray-like objects or integers
-* @throws {TypeError} options argument must be an object
-* @throws {RangeError} dimension index must not exceed input ndarray bounds
-* @throws {RangeError} first argument must have at least one dimension
-* @throws {TypeError} must provide valid options
-* @returns {ndarray} input ndarray
-*
-* @example
-* var Float64Array = require( '@stdlib/array/float64' );
-* var ndarray = require( '@stdlib/ndarray/ctor' );
-*
-* // Create a data buffer:
-* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
-*
-* // Define the shape of the input array:
-* var sh = [ 6 ];
-*
-* // Define the array strides:
-* var sx = [ 1 ];
-*
-* // Define the index offset:
-* var ox = 0;
-*
-* // Create an input ndarray:
-* var x = new ndarray( 'float64', xbuf, sh, sx, ox, 'row-major' );
-*
-* // Perform operation:
-* var out = fillRange( x, 10.0, 1, 4 );
-* // returns <ndarray>[ 1.0, 10.0, 10.0, 10.0, 5.0, 6.0 ]
-*
-* var bool = ( out === x );
-* // returns true
-*/
-function fillRange( x, value ) {
- var hasOptions;
- var hasStart;
- var options;
- var hasEnd;
- var nargs;
- var start;
- var opts;
- var end;
- var lsh;
- var len;
- var ord;
- var vdt;
- var sh;
- var dt;
- var d;
- var e;
- var s;
- var v;
-
- nargs = arguments.length;
- if ( !isndarrayLike( x ) ) {
- throw new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );
- }
- // Resolve input ndarray meta data:
- dt = getDType( x );
- ord = getOrder( x );
-
- // Initialize an options object:
- opts = {
- 'dims': [ -1 ] // default behavior is to perform the operation over the last dimension
- };
-
- // Initialize flags indicating whether `start`, `end`, and `options` arguments were provided:
- hasOptions = false;
- hasStart = false;
- hasEnd = false;
-
- // Case: fillRange( x, value, start, end, options )
- if ( nargs > 4 ) {
- start = arguments[ 2 ];
- if ( !isInteger( start ) && !isndarrayLike( start ) ) {
- throw new TypeError( format( 'invalid argument. Third argument must be either an ndarray or an integer. Value: `%s`.', start ) );
- }
- hasStart = true;
- end = arguments[ 3 ];
- if ( !isInteger( end ) && !isndarrayLike( end ) ) {
- throw new TypeError( format( 'invalid argument. Fourth argument must be either an ndarray or an integer. Value: `%s`.', end ) );
- }
- hasEnd = true;
- options = arguments[ 4 ];
- hasOptions = true;
- }
- // Case: fillRange( x, value, start, ??? )
- else if ( nargs === 4 ) {
- start = arguments[ 2 ];
- if ( !isInteger( start ) && !isndarrayLike( start ) ) {
- throw new TypeError( format( 'invalid argument. Third argument must be either an ndarray or an integer. Value: `%s`.', start ) );
- }
- hasStart = true;
-
- // Case: fillRange( x, value, start, end )
- if ( isInteger( arguments[ 3 ] ) || isndarrayLike( arguments[ 3 ] ) ) {
- end = arguments[ 3 ];
- hasEnd = true;
- }
- // Case: fillRange( x, value, start, options )
- else {
- options = arguments[ 3 ];
- hasOptions = true;
- }
- }
- // Case: fillRange( x, value, ??? )
- else if ( nargs === 3 ) {
- // Case: fillRange( x, value, start )
- if ( isInteger( arguments[ 2 ] ) || isndarrayLike( arguments[ 2 ] ) ) {
- start = arguments[ 2 ];
- hasStart = true;
- }
- // Case: fillRange( x, value, options )
- else {
- options = arguments[ 2 ];
- hasOptions = true;
- }
- }
- if ( hasOptions ) {
- if ( !isPlainObject( options ) ) {
- throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );
- }
- // Resolve provided options...
- if ( hasOwnProp( options, 'dim' ) ) {
- if ( !isInteger( options.dim ) ) {
- throw new TypeError( format( 'invalid option. `%s` option must be an integer. Option: `%s`.', 'dim', options.dim ) );
- }
- opts.dims[ 0 ] = options.dim;
- }
- }
- // Resolve the shape of the non-core dimensions and the number of indexed elements...
- sh = getShape( x );
- if ( sh.length < 1 ) {
- throw new RangeError( 'invalid argument. First argument must have at least one dimension.' );
- }
- d = normalizeIndex( opts.dims[ 0 ], sh.length-1 );
- if ( d === -1 ) {
- throw new RangeError( format( 'invalid option. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', sh.length, opts.dims[ 0 ] ) );
- }
- opts.dims[ 0 ] = d;
- lsh = nonCoreShape( sh, opts.dims );
- len = sh[ d ];
-
- // Case: fillRange( x, value_ndarray, ... )
- if ( isndarrayLike( value ) ) {
- vdt = getDType( value );
-
- // Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the input array data type is floating-point...
- if ( !isMostlySafeCast( vdt, dt ) ) {
- throw new TypeError( format( 'invalid argument. Second argument cannot be safely cast to the input ndarray data type. Data types: [%s, %s].', vdt, dt ) );
- }
- if ( isEqualDataType( vdt, dt ) ) {
- v = value;
- } else {
- // If we have unequal data types, we need to perform a copy...
- v = baseEmpty( dt, getShape( value ), getOrder( value ) );
- assign( [ value, v ] );
- }
- // The fill value must have a shape which is broadcast compatible with the shape of the non-core dimensions...
- v = maybeBroadcastArray( v, lsh );
- }
- // Case: fillRange( x, value_scalar, ... )
- else {
- // Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the input data type is floating-point...
- if ( !isScalarMostlySafeCompatible( value, dt ) ) {
- throw new TypeError( format( 'invalid argument. Second argument cannot be safely cast to the input ndarray data type. Data type: %s. Value: `%s`.', dt, value ) );
- }
- v = broadcastScalar( value, dt, lsh, ord );
- }
- // Broadcast the indices to match the shape of the non-core dimensions...
- s = broadcastIndex( ( hasStart ) ? start : 0, lsh, ord );
- e = broadcastIndex( ( hasEnd ) ? end : len, lsh, ord );
-
- // Perform operation:
- return base( x, v, s, e, opts );
-}
-
-
-// EXPORTS //
-
-module.exports = fillRange;
- |