From 9e80578edce671af875d87a7800b95462f9352e1 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 19 Aug 2023 18:28:48 +0000 Subject: [PATCH] Auto-generated commit --- .github/workflows/productionize.yml | 15 ------ .../docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 4 +- .../docs/types/test.ts | 2 +- base/binary/docs/types/index.d.ts | 2 +- base/cmap/docs/types/index.d.ts | 4 +- base/cmap/docs/types/test.ts | 2 +- base/dmap/docs/types/index.d.ts | 2 +- base/dmap2/docs/types/index.d.ts | 2 +- base/dmskmap/docs/types/index.d.ts | 2 +- base/dmskmap2/docs/types/index.d.ts | 2 +- base/docs/types/index.d.ts | 2 +- base/dtype-enum2str/docs/types/index.d.ts | 2 +- base/dtype-resolve-enum/docs/types/index.d.ts | 2 +- base/dtype-resolve-str/docs/types/index.d.ts | 2 +- base/dtype-str2enum/docs/types/index.d.ts | 2 +- base/function-object/docs/types/index.d.ts | 2 +- base/map-by/docs/types/index.d.ts | 2 +- base/map-by2/docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- base/meta-data-props/docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 4 +- .../docs/types/test.ts | 2 +- base/mskunary/docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- base/nullary/docs/types/index.d.ts | 2 +- base/offset-view/docs/types/index.d.ts | 2 +- base/quaternary/docs/types/index.d.ts | 2 +- base/quinary/docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- base/smap/docs/types/index.d.ts | 2 +- base/smap2/docs/types/index.d.ts | 2 +- base/smskmap/docs/types/index.d.ts | 2 +- base/smskmap2/docs/types/index.d.ts | 2 +- base/ternary/docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- base/unary-by/docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 2 +- .../docs/types/index.d.ts | 4 +- .../docs/types/test.ts | 2 +- base/unary/docs/types/index.d.ts | 2 +- base/zmap/docs/types/index.d.ts | 4 +- base/zmap/docs/types/test.ts | 2 +- common/docs/types/index.d.ts | 2 +- dispatch-by/docs/types/index.d.ts | 2 +- dispatch/docs/types/index.d.ts | 2 +- dist/index.d.ts | 3 ++ dist/index.js | 53 +++++++++++++++++++ dist/index.js.map | 7 +++ docs/types/index.d.ts | 2 +- dtypes/docs/types/index.d.ts | 2 +- napi/addon-arguments/docs/types/index.d.ts | 2 +- napi/binary/docs/types/index.d.ts | 2 +- napi/cmap/docs/types/index.d.ts | 2 +- napi/dmap/docs/types/index.d.ts | 2 +- napi/dmap2/docs/types/index.d.ts | 2 +- napi/dmskmap/docs/types/index.d.ts | 2 +- napi/dmskmap2/docs/types/index.d.ts | 2 +- napi/docs/types/index.d.ts | 2 +- napi/mskunary/docs/types/index.d.ts | 2 +- napi/nullary/docs/types/index.d.ts | 2 +- napi/smap/docs/types/index.d.ts | 2 +- napi/smap2/docs/types/index.d.ts | 2 +- napi/smskmap/docs/types/index.d.ts | 2 +- napi/smskmap2/docs/types/index.d.ts | 2 +- napi/unary/docs/types/index.d.ts | 2 +- napi/zmap/docs/types/index.d.ts | 2 +- 72 files changed, 136 insertions(+), 88 deletions(-) create mode 100644 dist/index.d.ts create mode 100644 dist/index.js create mode 100644 dist/index.js.map diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml index 334eb597..91f2b939 100644 --- a/.github/workflows/productionize.yml +++ b/.github/workflows/productionize.yml @@ -82,21 +82,6 @@ jobs: id: transform-error-messages uses: stdlib-js/transform-errors-action@main - # Format error messages: - - name: 'Replace double quotes with single quotes in rewritten format string error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\( \"([a-zA-Z0-9]+)\"/Error\( format\( '\1'/g" {} \; - - # Format string literal error messages: - - name: 'Replace double quotes with single quotes in rewritten string literal error messages' - run: | - find . -name "*.js" -exec sed -E -i "s/Error\( format\(\"([a-zA-Z0-9]+)\"\)/Error\( format\( '\1' \)/g" {} \; - - # Format code: - - name: 'Replace double quotes with single quotes in inserted `require` calls' - run: | - find . -name "*.js" -exec sed -E -i "s/require\( ?\"@stdlib\/error-tools-fmtprodmsg\" ?\);/require\( '@stdlib\/error-tools-fmtprodmsg' \);/g" {} \; - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - name: 'Update dependencies in package.json' run: | diff --git a/base/binary-addon-dispatch/docs/types/index.d.ts b/base/binary-addon-dispatch/docs/types/index.d.ts index c26e44e3..87a65713 100644 --- a/base/binary-addon-dispatch/docs/types/index.d.ts +++ b/base/binary-addon-dispatch/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/binary-dtype-signatures/docs/types/index.d.ts b/base/binary-dtype-signatures/docs/types/index.d.ts index 6ef14f4b..9ce1efe7 100644 --- a/base/binary-dtype-signatures/docs/types/index.d.ts +++ b/base/binary-dtype-signatures/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/binary-signature-callbacks/docs/types/index.d.ts b/base/binary-signature-callbacks/docs/types/index.d.ts index 326d5cd2..52060f9a 100644 --- a/base/binary-signature-callbacks/docs/types/index.d.ts +++ b/base/binary-signature-callbacks/docs/types/index.d.ts @@ -16,12 +16,12 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// import { ArrayLike } from '@stdlib/types/array'; -import { Complex64, Complex128, ComplexLike } from '@stdlib/types/object'; +import { Complex64, Complex128, ComplexLike } from '@stdlib/types/complex'; /** * Default callback. diff --git a/base/binary-signature-callbacks/docs/types/test.ts b/base/binary-signature-callbacks/docs/types/test.ts index afc8f588..19a93c76 100644 --- a/base/binary-signature-callbacks/docs/types/test.ts +++ b/base/binary-signature-callbacks/docs/types/test.ts @@ -17,7 +17,7 @@ */ /// -import { Complex64 as Cmplx64, Complex128 as Cmplx128 } from '@stdlib/types/object'; +import { Complex64 as Cmplx64, Complex128 as Cmplx128 } from '@stdlib/types/complex'; import Complex64 = require( '@stdlib/complex/float32' ); import Complex128 = require( '@stdlib/complex/float64' ); import callbacks = require( './index' ); diff --git a/base/binary/docs/types/index.d.ts b/base/binary/docs/types/index.d.ts index 6ea6b2a2..64cdd421 100644 --- a/base/binary/docs/types/index.d.ts +++ b/base/binary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/cmap/docs/types/index.d.ts b/base/cmap/docs/types/index.d.ts index 3b980114..e4b7262f 100644 --- a/base/cmap/docs/types/index.d.ts +++ b/base/cmap/docs/types/index.d.ts @@ -16,11 +16,11 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// -import { Complex64 } from '@stdlib/types/object'; +import { Complex64 } from '@stdlib/types/complex'; import { Complex64Array } from '@stdlib/types/array'; /** diff --git a/base/cmap/docs/types/test.ts b/base/cmap/docs/types/test.ts index 4244d383..0e788e64 100644 --- a/base/cmap/docs/types/test.ts +++ b/base/cmap/docs/types/test.ts @@ -18,7 +18,7 @@ /// -import { Complex64 } from '@stdlib/types/object'; +import { Complex64 } from '@stdlib/types/complex'; import Complex64Array = require( '@stdlib/array/complex64' ); import cmplx64 = require( '@stdlib/complex/float32' ); import cmap = require( './index' ); diff --git a/base/dmap/docs/types/index.d.ts b/base/dmap/docs/types/index.d.ts index 1cbede08..c9346d22 100644 --- a/base/dmap/docs/types/index.d.ts +++ b/base/dmap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Callback invoked for each indexed strided array element. diff --git a/base/dmap2/docs/types/index.d.ts b/base/dmap2/docs/types/index.d.ts index ab037a3e..dd0ad586 100644 --- a/base/dmap2/docs/types/index.d.ts +++ b/base/dmap2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Callback invoked for indexed strided input array elements. diff --git a/base/dmskmap/docs/types/index.d.ts b/base/dmskmap/docs/types/index.d.ts index a5f07c2b..c09f6cad 100644 --- a/base/dmskmap/docs/types/index.d.ts +++ b/base/dmskmap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Callback invoked for each indexed strided array element. diff --git a/base/dmskmap2/docs/types/index.d.ts b/base/dmskmap2/docs/types/index.d.ts index 8394d0d6..03ba34e3 100644 --- a/base/dmskmap2/docs/types/index.d.ts +++ b/base/dmskmap2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Callback invoked for indexed strided input array elements. diff --git a/base/docs/types/index.d.ts b/base/docs/types/index.d.ts index 10464802..3d110c07 100644 --- a/base/docs/types/index.d.ts +++ b/base/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /* tslint:disable:max-line-length */ /* tslint:disable:max-file-line-count */ diff --git a/base/dtype-enum2str/docs/types/index.d.ts b/base/dtype-enum2str/docs/types/index.d.ts index 510adcb1..7d436486 100644 --- a/base/dtype-enum2str/docs/types/index.d.ts +++ b/base/dtype-enum2str/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Returns the data type string associated with a strided array data type enumeration constant. diff --git a/base/dtype-resolve-enum/docs/types/index.d.ts b/base/dtype-resolve-enum/docs/types/index.d.ts index 29fff5f0..0ca08e73 100644 --- a/base/dtype-resolve-enum/docs/types/index.d.ts +++ b/base/dtype-resolve-enum/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Returns the enumeration constant associated with a strided array data type value. diff --git a/base/dtype-resolve-str/docs/types/index.d.ts b/base/dtype-resolve-str/docs/types/index.d.ts index 9e283684..72141073 100644 --- a/base/dtype-resolve-str/docs/types/index.d.ts +++ b/base/dtype-resolve-str/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Returns the data type string associated with a strided array data type value. diff --git a/base/dtype-str2enum/docs/types/index.d.ts b/base/dtype-str2enum/docs/types/index.d.ts index bcd308c1..42737e21 100644 --- a/base/dtype-str2enum/docs/types/index.d.ts +++ b/base/dtype-str2enum/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Returns the enumeration constant associated with a strided array data type string. diff --git a/base/function-object/docs/types/index.d.ts b/base/function-object/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/base/function-object/docs/types/index.d.ts +++ b/base/function-object/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/base/map-by/docs/types/index.d.ts b/base/map-by/docs/types/index.d.ts index 3aaf8b69..8b345c80 100644 --- a/base/map-by/docs/types/index.d.ts +++ b/base/map-by/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/map-by2/docs/types/index.d.ts b/base/map-by2/docs/types/index.d.ts index 63cce6a0..81e752c2 100644 --- a/base/map-by2/docs/types/index.d.ts +++ b/base/map-by2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/max-view-buffer-index/docs/types/index.d.ts b/base/max-view-buffer-index/docs/types/index.d.ts index 7088b397..f0f4ae10 100644 --- a/base/max-view-buffer-index/docs/types/index.d.ts +++ b/base/max-view-buffer-index/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Returns the maximum accessible index based on a set of provided strided array parameters. diff --git a/base/meta-data-props/docs/types/index.d.ts b/base/meta-data-props/docs/types/index.d.ts index c2856040..f3d9cc18 100644 --- a/base/meta-data-props/docs/types/index.d.ts +++ b/base/meta-data-props/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/min-view-buffer-index/docs/types/index.d.ts b/base/min-view-buffer-index/docs/types/index.d.ts index 71b6d3e4..d20e6d63 100644 --- a/base/min-view-buffer-index/docs/types/index.d.ts +++ b/base/min-view-buffer-index/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Returns the minimum accessible index based on a set of provided strided array parameters. diff --git a/base/mskunary-addon-dispatch/docs/types/index.d.ts b/base/mskunary-addon-dispatch/docs/types/index.d.ts index 123bb89d..9525da97 100644 --- a/base/mskunary-addon-dispatch/docs/types/index.d.ts +++ b/base/mskunary-addon-dispatch/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/mskunary-dtype-signatures/docs/types/index.d.ts b/base/mskunary-dtype-signatures/docs/types/index.d.ts index c0908f75..2e990b38 100644 --- a/base/mskunary-dtype-signatures/docs/types/index.d.ts +++ b/base/mskunary-dtype-signatures/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/mskunary-signature-callbacks/docs/types/index.d.ts b/base/mskunary-signature-callbacks/docs/types/index.d.ts index e57322da..8b948595 100644 --- a/base/mskunary-signature-callbacks/docs/types/index.d.ts +++ b/base/mskunary-signature-callbacks/docs/types/index.d.ts @@ -16,12 +16,12 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// import { ArrayLike } from '@stdlib/types/array'; -import { Complex64, Complex128, ComplexLike } from '@stdlib/types/object'; +import { Complex64, Complex128, ComplexLike } from '@stdlib/types/complex'; /** * Default callback. diff --git a/base/mskunary-signature-callbacks/docs/types/test.ts b/base/mskunary-signature-callbacks/docs/types/test.ts index 2692bbae..71abf55b 100644 --- a/base/mskunary-signature-callbacks/docs/types/test.ts +++ b/base/mskunary-signature-callbacks/docs/types/test.ts @@ -17,7 +17,7 @@ */ /// -import { Complex64 as Cmplx64, Complex128 as Cmplx128 } from '@stdlib/types/object'; +import { Complex64 as Cmplx64, Complex128 as Cmplx128 } from '@stdlib/types/complex'; import Complex64 = require( '@stdlib/complex/float32' ); import Complex128 = require( '@stdlib/complex/float64' ); import callbacks = require( './index' ); diff --git a/base/mskunary/docs/types/index.d.ts b/base/mskunary/docs/types/index.d.ts index 0ff7347c..82ee06c0 100644 --- a/base/mskunary/docs/types/index.d.ts +++ b/base/mskunary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/nullary-addon-dispatch/docs/types/index.d.ts b/base/nullary-addon-dispatch/docs/types/index.d.ts index acd1dd7a..e65f4196 100644 --- a/base/nullary-addon-dispatch/docs/types/index.d.ts +++ b/base/nullary-addon-dispatch/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/nullary/docs/types/index.d.ts b/base/nullary/docs/types/index.d.ts index 4bdddd58..c00d946f 100644 --- a/base/nullary/docs/types/index.d.ts +++ b/base/nullary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/offset-view/docs/types/index.d.ts b/base/offset-view/docs/types/index.d.ts index 8bef87e1..12ec90aa 100644 --- a/base/offset-view/docs/types/index.d.ts +++ b/base/offset-view/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/quaternary/docs/types/index.d.ts b/base/quaternary/docs/types/index.d.ts index 2888b6f1..cbb0a451 100644 --- a/base/quaternary/docs/types/index.d.ts +++ b/base/quaternary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/quinary/docs/types/index.d.ts b/base/quinary/docs/types/index.d.ts index 106d5ef9..f4d9e880 100644 --- a/base/quinary/docs/types/index.d.ts +++ b/base/quinary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/reinterpret-complex128/docs/types/index.d.ts b/base/reinterpret-complex128/docs/types/index.d.ts index 678f21cf..581f3839 100644 --- a/base/reinterpret-complex128/docs/types/index.d.ts +++ b/base/reinterpret-complex128/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/reinterpret-complex64/docs/types/index.d.ts b/base/reinterpret-complex64/docs/types/index.d.ts index 760b9e35..f3790df9 100644 --- a/base/reinterpret-complex64/docs/types/index.d.ts +++ b/base/reinterpret-complex64/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/smap/docs/types/index.d.ts b/base/smap/docs/types/index.d.ts index f9320392..cbf7ef46 100644 --- a/base/smap/docs/types/index.d.ts +++ b/base/smap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Callback invoked for each indexed strided array element. diff --git a/base/smap2/docs/types/index.d.ts b/base/smap2/docs/types/index.d.ts index 92856c2d..1d31df6b 100644 --- a/base/smap2/docs/types/index.d.ts +++ b/base/smap2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Callback invoked for indexed strided input array elements. diff --git a/base/smskmap/docs/types/index.d.ts b/base/smskmap/docs/types/index.d.ts index 736009a7..28d61af0 100644 --- a/base/smskmap/docs/types/index.d.ts +++ b/base/smskmap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Callback invoked for each indexed strided array element. diff --git a/base/smskmap2/docs/types/index.d.ts b/base/smskmap2/docs/types/index.d.ts index bf79a8e9..31b226bf 100644 --- a/base/smskmap2/docs/types/index.d.ts +++ b/base/smskmap2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Callback invoked for indexed strided input array elements. diff --git a/base/ternary/docs/types/index.d.ts b/base/ternary/docs/types/index.d.ts index e635fb84..d510d55f 100644 --- a/base/ternary/docs/types/index.d.ts +++ b/base/ternary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/unary-addon-dispatch/docs/types/index.d.ts b/base/unary-addon-dispatch/docs/types/index.d.ts index 5b1b2549..227f3e0a 100644 --- a/base/unary-addon-dispatch/docs/types/index.d.ts +++ b/base/unary-addon-dispatch/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/unary-by/docs/types/index.d.ts b/base/unary-by/docs/types/index.d.ts index 61633ec1..57781d7a 100644 --- a/base/unary-by/docs/types/index.d.ts +++ b/base/unary-by/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/unary-dtype-signatures/docs/types/index.d.ts b/base/unary-dtype-signatures/docs/types/index.d.ts index c736e630..577a9b79 100644 --- a/base/unary-dtype-signatures/docs/types/index.d.ts +++ b/base/unary-dtype-signatures/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/unary-signature-callbacks/docs/types/index.d.ts b/base/unary-signature-callbacks/docs/types/index.d.ts index 00f36f8f..8fe0ab48 100644 --- a/base/unary-signature-callbacks/docs/types/index.d.ts +++ b/base/unary-signature-callbacks/docs/types/index.d.ts @@ -16,12 +16,12 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// import { ArrayLike } from '@stdlib/types/array'; -import { Complex64, Complex128, ComplexLike } from '@stdlib/types/object'; +import { Complex64, Complex128, ComplexLike } from '@stdlib/types/complex'; /** * Default callback. diff --git a/base/unary-signature-callbacks/docs/types/test.ts b/base/unary-signature-callbacks/docs/types/test.ts index e436c274..135e755a 100644 --- a/base/unary-signature-callbacks/docs/types/test.ts +++ b/base/unary-signature-callbacks/docs/types/test.ts @@ -17,7 +17,7 @@ */ /// -import { Complex64 as Cmplx64, Complex128 as Cmplx128 } from '@stdlib/types/object'; +import { Complex64 as Cmplx64, Complex128 as Cmplx128 } from '@stdlib/types/complex'; import Complex64 = require( '@stdlib/complex/float32' ); import Complex128 = require( '@stdlib/complex/float64' ); import callbacks = require( './index' ); diff --git a/base/unary/docs/types/index.d.ts b/base/unary/docs/types/index.d.ts index 32e23ef9..aef67be1 100644 --- a/base/unary/docs/types/index.d.ts +++ b/base/unary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/base/zmap/docs/types/index.d.ts b/base/zmap/docs/types/index.d.ts index d31822cb..7af3c99a 100644 --- a/base/zmap/docs/types/index.d.ts +++ b/base/zmap/docs/types/index.d.ts @@ -16,11 +16,11 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// -import { Complex128 } from '@stdlib/types/object'; +import { Complex128 } from '@stdlib/types/complex'; import { Complex128Array } from '@stdlib/types/array'; /** diff --git a/base/zmap/docs/types/test.ts b/base/zmap/docs/types/test.ts index e3541cfa..8c058914 100644 --- a/base/zmap/docs/types/test.ts +++ b/base/zmap/docs/types/test.ts @@ -18,7 +18,7 @@ /// -import { Complex128 } from '@stdlib/types/object'; +import { Complex128 } from '@stdlib/types/complex'; import Complex128Array = require( '@stdlib/array/complex128' ); import cmplx64 = require( '@stdlib/complex/float64' ); import zmap = require( './index' ); diff --git a/common/docs/types/index.d.ts b/common/docs/types/index.d.ts index b33a71aa..7dd97eea 100644 --- a/common/docs/types/index.d.ts +++ b/common/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for strided array functions. diff --git a/dispatch-by/docs/types/index.d.ts b/dispatch-by/docs/types/index.d.ts index 77ddd2fe..d8f8974a 100644 --- a/dispatch-by/docs/types/index.d.ts +++ b/dispatch-by/docs/types/index.d.ts @@ -18,7 +18,7 @@ // tslint:disable:max-file-line-count -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/dispatch/docs/types/index.d.ts b/dispatch/docs/types/index.d.ts index b7ad8ccd..aa5ee488 100644 --- a/dispatch/docs/types/index.d.ts +++ b/dispatch/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /// diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 00000000..15e948f0 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,3 @@ +/// +import ns from '../docs/types/index'; +export = ns; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 00000000..12682647 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,53 @@ +"use strict";var p=function(r,t){return function(){return t||r((t={exports:{}}).exports,t),t.exports}};var Nr=p(function(t0,Zr){"use strict";function Bv(r,t,i,s){var a,n,v,e,u,o,f,c,m,l,q;if(l=t[0],!(l<=0))for(a=i[0],n=i[1],v=i[2],a<0?e=(1-l)*a:e=0,n<0?u=(1-l)*n:u=0,v<0?o=(1-l)*v:o=0,f=r[0],c=r[1],m=r[2],q=0;q0&&t<0&&(i+=(r-1)*t),i}Je.exports=Cs});var z=p(function(P0,We){"use strict";var Vs=Qe();We.exports=Vs});var Ne=p(function(L0,Ze){"use strict";var $e=require("@stdlib/assert/is-function"),Or=require("@stdlib/assert/is-typed-array-like"),Cr=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,Y=R(),Vr=F(),br=I(),Ar=M(),Sr=z(),N=require("@stdlib/string/format"),Rr=Y("complex64"),Br=Y("complex128");function bs(r,t){if(!$e(r))throw new TypeError(N("invalid argument. First argument must be a function. Value: `%s`.",r));if(!$e(t))throw new TypeError(N("invalid argument. Second argument must be a function. Value: `%s`.",t));return i;function i(s,a,n,v,e,u,o,f,c,m,l,q,x){var w,g,h;if(!Or(n)||!Or(o)||!Or(l))return t(s,a,n,v,e,u,o,f,c,m,l,q,x),l;if(a=Y(a),u=Y(u),m=Y(m),a===null||u===null||m===null)throw new TypeError("invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.");if(!Cr(e))throw new TypeError(N("invalid argument. First input array offset must be a nonnegative integer. Value: `%s`.",e));if(!Cr(c))throw new TypeError(N("invalid argument. Second input array offset must be a nonnegative integer. Value: `%s`.",c));if(!Cr(x))throw new TypeError(N("invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.",x));return e=Sr(s,v,e),c=Sr(s,f,c),x=Sr(s,q,x),a===Rr?w=Vr(n,e):a===Br?w=br(n,e):w=Ar(n,e),u===Rr?g=Vr(o,c):u===Br?g=br(o,c):g=Ar(o,c),m===Rr?h=Vr(l,x):m===Br?h=br(l,x):h=Ar(l,x),r(s,a,w,v,u,g,f,m,h,q),l}}Ze.exports=bs});var ri=p(function(F0,Xe){"use strict";var As=require("@stdlib/utils/define-nonenumerable-read-only-property"),Ye=Me(),Ss=Ne();As(Ye,"ndarray",Ss);Xe.exports=Ye});var ii=p(function(I0,ei){"use strict";var Rs=ar(),Bs=ur();function Ps(r){var t=typeof r;return t==="string"?Bs(r)?r:null:t==="number"?Rs(r):null}ei.exports=Ps});var G=p(function(U0,ai){"use strict";var Ls=ii();ai.exports=Ls});var ni=p(function(G0,ui){"use strict";var Fs=require("@stdlib/ndarray/promotion-rules"),Is=require("@stdlib/ndarray/safe-casts"),Us=R(),Gs=G(),js=require("@stdlib/string/format");function Ds(r,t){var i,s,a,n,v,e,u;for(s=r.length,a=t.length,i=[],u=0,v=0;v=a);v++)for(n=r[v],e=u;e3?v=s:v={},o=Pr(r),o instanceof Error)throw o;if(t===r)f=o;else if(f=Pr(t),f instanceof Error)throw f;if(i===r)c=o;else if(i===t)c=f;else if(c=Pr(i),c instanceof Error)throw c;for(c.sort(),a={},w=o.length,g=f.length,u=[],h=0;h0&&t>0&&(i+=(r-1)*t),i}Sa.exports=No});var Pa=p(function(gm,Ba){"use strict";var Yo=Ra();Ba.exports=Yo});var Fa=p(function(wm,La){"use strict";var vr=require("@stdlib/utils/define-nonenumerable-read-only-property"),Xo=require("@stdlib/utils/define-nonenumerable-read-only-accessor"),rf=require("@stdlib/ndarray/base/dtypes2signatures");function ef(r,t,i,s){return s?vr(i,"nargs",r.nargs+r.nin+r.nout):vr(i,"nargs",r.nargs),vr(i,"nin",r.nin),vr(i,"nout",r.nout),Xo(i,"types",a),i;function a(){return rf(t,r.nin,r.nout)}}La.exports=ef});var Ua=p(function(hm,Ia){"use strict";var af=Fa();Ia.exports=af});var ja=p(function(ym,Ga){"use strict";function uf(r,t,i,s){var a,n,v,e,u,o,f,c,m,l,q;if(l=t[0],!(l<=0))for(a=i[0],n=i[1],v=i[2],a<0?e=(1-l)*a:e=0,n<0?u=(1-l)*n:u=0,v<0?o=(1-l)*v:o=0,f=r[0],c=r[1],m=r[2],q=0;q=a);v++)for(n=r[v],e=u;e2?a=i:a={},e=yu(r),e instanceof Error)throw e;if(t===r)u=e;else if(u=yu(t),u instanceof Error)throw u;for(u.sort(),f=e.length,v=[],c=0;c5&&(n=arguments[5]),u=r[0],Ht(u)&&(v=gl(mr(u))),o=r[1],Ht(o)&&(e=wl(mr(o))),v||e?(v=v||hl(mr(u)),e=e||yl(mr(o)),dl(r,t,i,[v,e],s,a,n)):El(r,t,i,s,a,n)}Jt.exports=Tl});var $t=p(function(Oq,Wt){"use strict";function Ol(r,t,i,s,a,n,v){var e,u,o,f,c,m,l,q,x;if(l=t[0],!(l<=0))for(o=s[0],f=s[1],e=i[0],u=i[1],c=r[0],m=r[1],x=0;x6&&(v=arguments[6]),o=r[0],Yt(o)&&(e=Vl(qr(o))),f=r[1],Yt(f)&&(u=bl(qr(f))),e||u?(e=e||Al(qr(o)),u=u||Sl(qr(f)),Bl(r,t,i,s,[e,u],a,n,v)):Rl(r,t,i,s,a,n,v)}Xt.exports=Pl});var av=p(function(bq,iv){"use strict";var Ll=require("@stdlib/utils/define-nonenumerable-read-only-property"),ev=Qt(),Fl=rv();Ll(ev,"ndarray",Fl);iv.exports=ev});var tv=p(function(Aq,nv){"use strict";var Il=require("@stdlib/ndarray/safe-casts"),Ul=R(),Gl=G(),jl=require("@stdlib/string/format");function Dl(r,t){var i,s,a,n,v,e,u;for(s=r.length,a=t.length,i=[],u=0,v=0;v=a);v++)for(n=r[v],e=u;e2?a=i:a={},e=uv(r),e instanceof Error)throw e;if(t===r)u=e;else if(u=uv(t),u instanceof Error)throw u;for(u.sort(),f=e.length,v=[],c=0;c0&&(y<0||y>=V.length))throw C=V.length)throw C} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( sz < 0 ) {\n\t\tiz = (1-N) * sz;\n\t} else {\n\t\tiz = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, [ get, get, set ], add );\n*\n* console.log( z );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\nfunction binary( arrays, shape, strides, accessors, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( sz < 0 ) {\n\t\tiz = (1-N) * sz;\n\t} else {\n\t\tiz = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\txget = accessors[ 0 ];\n\tyget = accessors[ 1 ];\n\tzset = accessors[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tzset( z, iz, fcn( xget( x, ix ), yget( y, iy ) ) );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './binary.js' );\nvar accessors = require( './accessors.js' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tz = arrays[ 2 ];\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( arrays, shape, strides, [ xget, yget, zset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, [ get, get, set ], add );\n*\n* console.log( z );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, accessors, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\txget = accessors[ 0 ];\n\tyget = accessors[ 1 ];\n\tzset = accessors[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tzset( z, iz, fcn( xget( x, ix ), yget( y, iy ) ) );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './binary.ndarray.js' );\nvar accessors = require( './accessors.ndarray.js' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction binary( arrays, shape, strides, offsets, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tz = arrays[ 2 ];\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xget, yget, zset ], fcn ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to strided input array elements and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/binary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var binary = require( '@stdlib/strided/base/binary' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* binary( [ x, y, z ], shape, strides, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var binary = require( '@stdlib/strided/base/binary' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* binary.ndarray( [ x, y, z ], shape, strides, offsets, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"binary\",\n \"complex64\",\n \"complex128\",\n \"float32\",\n \"float64\",\n \"generic\",\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of strided array data type strings.\n*\n* @returns {StringArray} list of strided array data type strings\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar ndtypes = require( '@stdlib/ndarray/dtypes' ).enum;\n\n\n// VARIABLES //\n\nvar dt = ndtypes();\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data strings to enumeration constants for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of strided arrays.\n*\n* @private\n* @returns {Object} object mapping supported data strings strings to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the returned object should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t'bool': dt[ 'bool' ],\n\n\t\t'int8': dt[ 'int8' ],\n\t\t'uint8': dt[ 'uint8' ],\n\t\t'uint8c': dt[ 'uint8c' ],\n\t\t'int16': dt[ 'int16' ],\n\t\t'uint16': dt[ 'uint16' ],\n\t\t'int32': dt[ 'int32' ],\n\t\t'uint32': dt[ 'uint32' ],\n\t\t'int64': dt[ 'int64' ],\n\t\t'uint64': dt[ 'uint64' ],\n\n\t\t'float32': dt[ 'float32' ],\n\t\t'float64': dt[ 'float64' ],\n\n\t\t'complex64': dt[ 'complex64' ],\n\t\t'complex128': dt[ 'complex128' ],\n\n\t\t'binary': dt[ 'binary' ],\n\n\t\t'generic': dt[ 'generic' ],\n\n\t\t'notype': dt[ 'notype' ],\n\n\t\t'userdefined_type': dt[ 'userdefined_type' ]\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumeration;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\nvar objectKeys = require( '@stdlib/utils/keys' );\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of strided array data types.\n*\n* @module @stdlib/strided/dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/strided/dtypes' );\n*\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var enumeration = require( '@stdlib/strided/dtypes' ).enum;\n*\n* var table = enumeration();\n* // returns {...}\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar enumeration = require( './enum.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectInverse = require( '@stdlib/utils/object-inverse' );\nvar enumeration = require( './../../../dtypes' ).enum;\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a strided array data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* var str2enum = require( '@stdlib/strided/base/dtype-str2enum' );\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = enum2str;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the data type string associated with a strided array data type enumeration constant.\n*\n* @module @stdlib/strided/base/dtype-enum2str\n*\n* @example\n* var str2enum = require( '@stdlib/strided/base/dtype-str2enum' );\n* var enum2str = require( '@stdlib/strided/base/dtype-enum2str' );\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar enumeration = require( './../../../dtypes' ).enum;\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a strided array data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = str2enum;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the enumeration constant associated with a strided array data type string.\n*\n* @module @stdlib/strided/base/dtype-str2enum\n*\n* @example\n* var str2enum = require( '@stdlib/strided/base/dtype-str2enum' );\n*\n* var v = str2enum( 'float64' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar enum2str = require( './../../../base/dtype-enum2str' );\nvar str2enum = require( './../../../base/dtype-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported strided array data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the enumeration constant associated with a supported strided array data type value.\n*\n* @module @stdlib/strided/base/dtype-resolve-enum\n*\n* @example\n* var resolve = require( '@stdlib/strided/base/dtype-resolve-enum' );\n*\n* var v = resolve( 'float64' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float32Array = require( '@stdlib/array/float32' );\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex64Array` as a `Float32Array`.\n*\n* @param {Complex64Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float32Array} `Float32Array` view\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var x = new Complex64Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float32Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = reinterpret;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Reinterpret a `Complex64Array` as a `Float32Array`.\n*\n* @module @stdlib/strided/base/reinterpret-complex64\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var reinterpret = require( '@stdlib/strided/base/reinterpret-complex64' );\n*\n* var x = new Complex64Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( '@stdlib/array/float64' );\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex128Array` as a `Float64Array`.\n*\n* @param {Complex128Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float64Array} `Float64Array` view\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var x = new Complex128Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float64Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = reinterpret;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Reinterpret a `Complex128Array` as a `Float64Array`.\n*\n* @module @stdlib/strided/base/reinterpret-complex128\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var reinterpret = require( '@stdlib/strided/base/reinterpret-complex128' );\n*\n* var x = new Complex128Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar resolve = require( './../../../base/dtype-resolve-enum' );\nvar reinterpretComplex64 = require( './../../../base/reinterpret-complex64' );\nvar reinterpretComplex128 = require( './../../../base/reinterpret-complex128' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolve( 'complex64' );\nvar COMPLEX128 = resolve( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a binary function to two input strided arrays.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeY**: `y` data type.\n* - **y**: input array.\n* - **strideY**: `y` stride length.\n* - **dtypeZ**: `z` data type.\n* - **z**: output array.\n* - **strideY**: `z` stride length.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type (enumeration constant).\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeY**: `y` data type (enumeration constant).\n* - **y**: input array.\n* - **strideY**: `y` stride length.\n* - **dtypeZ**: `z` data type (enumeration constant).\n* - **z**: output array.\n* - **strideZ**: `z` stride length.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeY**: `y` data type.\n* - **y**: input array.\n* - **strideY**: `y` stride length.\n* - **dtypeZ**: `z` data type.\n* - **z**: output array.\n* - **strideZ**: `z` stride length.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* function addon( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 'generic', [ 3, 4 ], 1, 'generic', [ 0, 0 ], 1 );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - `x` data type\n\t* @param {Collection} x - input array\n\t* @param {integer} strideX - `x` stride length\n\t* @param {*} dtypeY - `y` data type\n\t* @param {Collection} y - input array\n\t* @param {integer} strideY - `y` stride length\n\t* @param {*} dtypeZ - `z` data type\n\t* @param {Collection} z - destination array\n\t* @param {integer} strideZ - `z` stride length\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {Collection} `z`\n\t*/\n\tfunction dispatcher( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n\t\tvar viewX;\n\t\tvar viewY;\n\t\tvar viewZ;\n\n\t\t// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif (\n\t\t\t!isTypedArrayLike( x ) ||\n\t\t\t!isTypedArrayLike( y ) ||\n\t\t\t!isTypedArrayLike( z )\n\t\t) {\n\t\t\tfallback( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ );\n\t\t\treturn z;\n\t\t}\n\t\tdtypeX = resolve( dtypeX );\n\t\tdtypeY = resolve( dtypeY );\n\t\tdtypeZ = resolve( dtypeZ );\n\t\tif ( dtypeX === null || dtypeY === null || dtypeZ === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( x, 0 );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( x, 0 );\n\t\t} else {\n\t\t\tviewX = x;\n\t\t}\n\t\tif ( dtypeY === COMPLEX64 ) {\n\t\t\tviewY = reinterpretComplex64( y, 0 );\n\t\t} else if ( dtypeY === COMPLEX128 ) {\n\t\t\tviewY = reinterpretComplex128( y, 0 );\n\t\t} else {\n\t\t\tviewY = y;\n\t\t}\n\t\tif ( dtypeZ === COMPLEX64 ) {\n\t\t\tviewZ = reinterpretComplex64( z, 0 );\n\t\t} else if ( dtypeZ === COMPLEX128 ) {\n\t\t\tviewZ = reinterpretComplex128( z, 0 );\n\t\t} else {\n\t\t\tviewZ = z;\n\t\t}\n\t\taddon( N, dtypeX, viewX, strideX, dtypeY, viewY, strideY, dtypeZ, viewZ, strideZ );\n\t\treturn z;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a typed array view having the same data type as a provided input typed array and starting at a specified index offset.\n*\n* @param {(TypedArray|ComplexArray)} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {(TypedArray|ComplexArray)} typed array view\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = new Float64Array( 10 );\n*\n* var out = offsetView( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction offsetView( x, offset ) {\n\treturn new x.constructor( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), x.length-offset ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = offsetView;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a typed array view having the same data type as a provided input typed array and starting at a specified index offset.\n*\n* @module @stdlib/strided/base/offset-view\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var offsetView = require( '@stdlib/strided/base/offset-view' );\n*\n* var x = new Float64Array( 10 );\n*\n* var out = offsetView( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the minimum accessible index based on a set of provided strided array parameters.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {integer} stride - stride length\n* @param {NonNegativeInteger} offset - starting index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = minViewBufferIndex( 3, -2, 10 );\n* // returns 6\n*/\nfunction minViewBufferIndex( N, stride, offset ) {\n\tif ( N > 0 && stride < 0 ) {\n\t\toffset += (N-1) * stride; // decrements the offset\n\t}\n\treturn offset;\n}\n\n\n// EXPORTS //\n\nmodule.exports = minViewBufferIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the minimum accessible index based on a set of provided strided array parameters.\n*\n* @module @stdlib/strided/base/min-view-buffer-index\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/strided/base/min-view-buffer-index' );\n*\n* var idx = minViewBufferIndex( 3, -2, 10 );\n* // returns 6\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar resolve = require( './../../../base/dtype-resolve-enum' );\nvar reinterpretComplex64 = require( './../../../base/reinterpret-complex64' );\nvar reinterpretComplex128 = require( './../../../base/reinterpret-complex128' );\nvar offsetView = require( './../../../base/offset-view' );\nvar minViewBufferIndex = require( './../../../base/min-view-buffer-index' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolve( 'complex64' );\nvar COMPLEX128 = resolve( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a binary function to two input strided arrays using alternative indexing semantics.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY, dtypeZ, z, strideZ, offsetZ )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **offsetX**: starting `x` index.\n* - **dtypeY**: `y` data type.\n* - **y**: input array.\n* - **strideY**: `y` stride length.\n* - **offsetY**: starting `y` index.\n* - **dtypeZ**: `z` data type.\n* - **z**: output array.\n* - **strideZ**: `z` stride length.\n* - **offsetZ**: starting `z` index.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type (enumeration constant).\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeY**: `y` data type (enumeration constant).\n* - **y**: input array.\n* - **strideY**: `y` stride length.\n* - **dtypeZ**: `z` data type (enumeration constant).\n* - **z**: output array.\n* - **strideZ**: `z` stride length.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY, dtypeZ, z, strideZ, offsetZ )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **offsetX**: starting `x` index.\n* - **dtypeY**: `y` data type.\n* - **y**: input array.\n* - **strideY**: `y` stride length.\n* - **offsetY**: starting `y` index.\n* - **dtypeZ**: `z` data type.\n* - **z**: output array.\n* - **strideZ**: `z` stride length.\n* - **offsetZ**: starting `z` index.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* function addon( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY, dtypeZ, z, strideZ, offsetZ ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 0, 'generic', [ 3, 4 ], 1, 0, 'generic', [ 0, 0 ], 1, 0 );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - `x` data type\n\t* @param {Collection} x - input array\n\t* @param {integer} strideX - `x` stride length\n\t* @param {NonNegativeInteger} offsetX - starting `x` index\n\t* @param {*} dtypeY - `y` data type\n\t* @param {Collection} y - input array\n\t* @param {integer} strideY - `y` stride length\n\t* @param {NonNegativeInteger} offsetY - starting `y` index\n\t* @param {*} dtypeZ - `z` data type\n\t* @param {Collection} z - destination array\n\t* @param {integer} strideZ - `z` stride length\n\t* @param {NonNegativeInteger} offsetZ - starting `z` index\n\t* @throws {TypeError} fifth argument must be a nonnegative integer\n\t* @throws {TypeError} ninth argument must be a nonnegative integer\n\t* @throws {TypeError} thirteenth argument must be a nonnegative integer\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {Collection} `z`\n\t*/\n\tfunction dispatcher( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY, dtypeZ, z, strideZ, offsetZ ) { // eslint-disable-line max-params\n\t\tvar viewX;\n\t\tvar viewY;\n\t\tvar viewZ;\n\n\t\t// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif (\n\t\t\t!isTypedArrayLike( x ) ||\n\t\t\t!isTypedArrayLike( y ) ||\n\t\t\t!isTypedArrayLike( z )\n\t\t) {\n\t\t\tfallback( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY, dtypeZ, z, strideZ, offsetZ );\n\t\t\treturn z;\n\t\t}\n\t\tdtypeX = resolve( dtypeX );\n\t\tdtypeY = resolve( dtypeY );\n\t\tdtypeZ = resolve( dtypeZ );\n\t\tif ( dtypeX === null || dtypeY === null || dtypeZ === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetX ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First input array offset must be a nonnegative integer. Value: `%s`.', offsetX ) );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetY ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second input array offset must be a nonnegative integer. Value: `%s`.', offsetY ) );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetZ ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.', offsetZ ) );\n\t\t}\n\t\toffsetX = minViewBufferIndex( N, strideX, offsetX );\n\t\toffsetY = minViewBufferIndex( N, strideY, offsetY );\n\t\toffsetZ = minViewBufferIndex( N, strideZ, offsetZ );\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( x, offsetX );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( x, offsetX );\n\t\t} else {\n\t\t\tviewX = offsetView( x, offsetX );\n\t\t}\n\t\tif ( dtypeY === COMPLEX64 ) {\n\t\t\tviewY = reinterpretComplex64( y, offsetY );\n\t\t} else if ( dtypeY === COMPLEX128 ) {\n\t\t\tviewY = reinterpretComplex128( y, offsetY );\n\t\t} else {\n\t\t\tviewY = offsetView( y, offsetY );\n\t\t}\n\t\tif ( dtypeZ === COMPLEX64 ) {\n\t\t\tviewZ = reinterpretComplex64( z, offsetZ );\n\t\t} else if ( dtypeZ === COMPLEX128 ) {\n\t\t\tviewZ = reinterpretComplex128( z, offsetZ );\n\t\t} else {\n\t\t\tviewZ = offsetView( z, offsetZ );\n\t\t}\n\n\t\taddon( N, dtypeX, viewX, strideX, dtypeY, viewY, strideY, dtypeZ, viewZ, strideZ );\n\t\treturn z;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Dispatch to a native add-on applying a binary function to two input strided arrays.\n*\n* @module @stdlib/strided/base/binary-addon-dispatch\n*\n* @example\n* var dispatch = require( '@stdlib/strided/base/binary-addon-dispatch' );\n*\n* function addon( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, dtypeY, y, strideY, dtypeZ, z, strideZ ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 'generic', [ 3, 4 ], 1, 'generic', [ 0, 0 ], 1 );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar enum2str = require( './../../../base/dtype-enum2str' );\nvar str2enum = require( './../../../base/dtype-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported strided array data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* var str2enum = require( '@stdlib/strided/base/dtype-str2enum' );\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the data type string associated with a supported strided array data type value.\n*\n* @module @stdlib/strided/base/dtype-resolve-str\n*\n* @example\n* var str2enum = require( '@stdlib/strided/base/dtype-str2enum' );\n* var resolve = require( '@stdlib/strided/base/dtype-resolve-str' );\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar promotionRules = require( '@stdlib/ndarray/promotion-rules' );\nvar safeCasts = require( '@stdlib/ndarray/safe-casts' );\nvar resolveEnum = require( './../../../base/dtype-resolve-enum' );\nvar resolveStr = require( './../../../base/dtype-resolve-str' );\nvar format = require( '@stdlib/string/format' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns the intersection of two sorted lists.\n*\n* @private\n* @param {ArrayLikeObject} list1 - first sorted list\n* @param {ArrayLikeObject} list2 - second sorted list\n* @returns {ArrayLikeObject} result\n*\n* @example\n* var list1 = [ 'a', 'b', 'c', 'd' ];\n* var list2 = [ 'b', 'd', 'e' ];\n*\n* var out = intersection( list1, list2 );\n* // returns [ 'b', 'd' ]\n*/\nfunction intersection( list1, list2 ) {\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tM = list1.length;\n\tN = list2.length;\n\n\tout = [];\n\tk = 0;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tif ( k >= N ) {\n\t\t\tbreak;\n\t\t}\n\t\tv = list1[ i ];\n\t\tfor ( j = k; j < N; j++ ) {\n\t\t\tif ( v === list2[ j ] ) {\n\t\t\t\tk = j + 1;\n\t\t\t\tout.push( v );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n/**\n* Resolves a list of data types to data type strings.\n*\n* @private\n* @param {ArrayLikeObject} dtypes - list of data types\n* @returns {(StringArray|Error)} data type strings (or an error)\n*\n* @example\n* var out = resolve( [ 1, 2, 3 ] );\n* // returns [...]\n*/\nfunction resolve( dtypes ) {\n\tvar out;\n\tvar dt;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tdt = resolveStr( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Must provide recognized data types. Unable to resolve a data type string. Value: `%s`.', dtypes[ i ] ) );\n\t\t}\n\t\tout.push( dt );\n\t}\n\treturn out;\n}\n\n/**\n* Tests whether a provided array contains a specified value.\n*\n* @private\n* @param {Array} arr - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating whether a provided array contains a specified value\n*/\nfunction contains( arr, value ) {\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tif ( arr[ i ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\n/**\n* Generates a list of binary interface signatures from strided array data types.\n*\n* ## Notes\n*\n* - The function returns a strided array having a stride length of `3` (i.e., every `3` elements define a binary interface signature).\n* - For each signature (i.e., set of three consecutive non-overlapping strided array elements), the first two elements are the input data types and the third element is the return data type.\n* - All signatures follow type promotion rules.\n*\n* @param {Array} dtypes1 - list of supported data types for the first argument\n* @param {Array} dtypes2 - list of supported data types for the second argument\n* @param {Array} dtypes3 - list of supported data types for the output\n* @param {Options} [options] - options\n* @param {boolean} [options.enums=false] - boolean flag indicating whether to return signatures as a list of enumeration constants\n* @throws {TypeError} must provide recognized data types\n* @returns {Array} strided array containing binary interface signatures\n*\n* @example\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes, dtypes );\n* // returns [ 'float32', 'float32', 'float32', ... ]\n*/\nfunction signatures( dtypes1, dtypes2, dtypes3, options ) {\n\tvar cache;\n\tvar casts;\n\tvar opts;\n\tvar tmp;\n\tvar out;\n\tvar dt1;\n\tvar dt2;\n\tvar dt3;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar t4;\n\tvar M;\n\tvar N;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Resolve the list of provided data types to data type strings:\n\tdt1 = resolve( dtypes1 );\n\tif ( dt1 instanceof Error ) {\n\t\tthrow dt1;\n\t}\n\tif ( dtypes2 === dtypes1 ) { // don't do work if we don't need to\n\t\tdt2 = dt1;\n\t} else {\n\t\tdt2 = resolve( dtypes2 );\n\t\tif ( dt2 instanceof Error ) {\n\t\t\tthrow dt2;\n\t\t}\n\t}\n\tif ( dtypes3 === dtypes1 ) { // don't do work if we don't need to\n\t\tdt3 = dt1;\n\t} else if ( dtypes3 === dtypes2 ) {\n\t\tdt3 = dt2;\n\t} else {\n\t\tdt3 = resolve( dtypes3 );\n\t\tif ( dt3 instanceof Error ) {\n\t\t\tthrow dt3;\n\t\t}\n\t}\n\t// Sort the list of return dtypes:\n\tdt3.sort();\n\n\t// Initialize a cache for storing the safe casts for promoted dtypes:\n\tcache = {};\n\n\t// Generate the list of signatures...\n\tM = dt1.length;\n\tN = dt2.length;\n\tout = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tt1 = dt1[ i ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tt2 = dt2[ j ];\n\n\t\t\t// Resolve the promoted dtype for the current dtype pair:\n\t\t\tt3 = promotionRules( t1, t2 );\n\n\t\t\t// Check whether the dtype pair promotes...\n\t\t\tif ( t3 === -1 || t3 === null ) {\n\t\t\t\t// The dtype pair does not promote:\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// Check whether the promoted dtype is in our list of output dtypes...\n\t\t\tif ( contains( dt3, t3 ) ) {\n\t\t\t\tout.push( t1, t2, t3 );\n\t\t\t}\n\t\t\t// Retrieve the allowed casts for the promoted dtype:\n\t\t\tcasts = cache[ t3 ];\n\n\t\t\t// If a list of allowed casts is not in the cache, we need to resolve them...\n\t\t\tif ( casts === void 0 ) {\n\t\t\t\t// Resolve the list of safe casts for the promoted dtype:\n\t\t\t\tcasts = safeCasts( t3 );\n\n\t\t\t\t// Remove safe casts which are not among the supported output dtypes:\n\t\t\t\tcasts = intersection( dt3, casts.sort() );\n\n\t\t\t\t// Store the list of safe casts in the cache:\n\t\t\t\tcache[ t3 ] = casts;\n\t\t\t}\n\t\t\t// Generate signatures for allowed casts...\n\t\t\tfor ( k = 0; k < casts.length; k++ ) {\n\t\t\t\tt4 = casts[ k ];\n\t\t\t\tif ( t4 !== t3 ) {\n\t\t\t\t\tout.push( t1, t2, t4 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif ( opts.enums ) {\n\t\ttmp = [];\n\t\tfor ( i = 0; i < out.length; i++ ) {\n\t\t\ttmp.push( resolveEnum( out[ i ] ) );\n\t\t}\n\t\tout = tmp;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = signatures;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a list of binary interface signatures from strided array data types.\n*\n* @module @stdlib/strided/base/binary-dtype-signatures\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/binary-dtype-signatures' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes, dtypes );\n* // returns [ 'float64', 'float64', 'float64', ... ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar resolve = require( './../../../base/dtype-resolve-str' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar wrap = require( '@stdlib/complex/base/wrap-function' );\n\n\n// VARIABLES //\n\nvar C64 = 'complex64';\nvar C128 = 'complex128';\nvar CTORS = {\n\t'complex64': Complex64,\n\t'complex128': Complex128\n};\n\n\n// FUNCTIONS //\n\n/**\n* Resolves a callback based on provided dtypes.\n*\n* @private\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {string} t1 - dtype for first argument\n* @param {string} t2 - dtype for second argument\n* @param {string} t3 - dtype for return value\n* @returns {Function} callback\n*/\nfunction resolveCallback( table, t1, t2, t3 ) {\n\t// The following branches attempt to follow type promotion rules; however, some accommodations are made for completeness...\n\n\t// Signature: ??_z\n\tif ( t3 === C128 ) {\n\t\t// c?_z\n\t\tif ( t1 === C64 ) {\n\t\t\t// cz_z or cc_z\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_z_as_zz_z or cc_z_as_zz_z\n\t\t\t}\n\t\t\t// cd_z\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: cd_z_as_zz_z\n\t\t}\n\t\t// z?_z\n\t\tif ( t1 === C128 ) {\n\t\t\t// zz_z or zc_z\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zz_z or zc_z_as_zz_z\n\t\t\t}\n\t\t\t// zd_z\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_z_as_zz_z\n\t\t}\n\t\t// dc_z, dz_z, or dd_z\n\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: dc_z_as_zz_z, dz_z_as_zz_z, or dd_z_as_zz_z\n\t}\n\t// Signature: ??_c\n\tif ( t3 === C64 ) {\n\t\t// z?_c\n\t\tif ( t1 === C128 ) {\n\t\t\t// zc_c or zz_c (note: according to type promotion rules `zz_c` should not happen, as `z` does not promote to `c`, but we accommodate here anyway)\n\t\t\tif ( t2 === C64 || t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zc_c_as_zz_z or zz_c_as_zz_z\n\t\t\t}\n\t\t\t// zd_c (note: according to type promotion rules `zd_c` should not happen, as neither `z` nor `d` promote to `c`, but we accommodate here anyway)\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_c_as_zz_z\n\t\t}\n\t\t// c?_c\n\t\tif ( t1 === C64 ) {\n\t\t\t// cz_c (note: according to type promotion rules `cz_c` should not happen, as `z` does not promote to `c`, but we accommodate here anyway)\n\t\t\tif ( t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_c_as_zz_z\n\t\t\t}\n\t\t\t// cc_c\n\t\t\tif ( t2 === C64 ) {\n\t\t\t\treturn table[ C64 ]; // Signature: cc_c\n\t\t\t}\n\t\t\t// cd_c (note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `cd_c` should not happen, as `d` does not promote to `c`, but `cf_c` can happen)\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: cd_c_as_cc_c (cf_c_as_cc_c)\n\t\t}\n\t\t// dz_c\n\t\tif ( t2 === C128 ) {\n\t\t\t// Note: according to type promotion rules `dz_c` should not happen, as neither `z` nor `d` promote to `c`, but we accommodate here anyway\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_c_as_zz_z\n\t\t}\n\t\t// dc_c\n\t\tif ( t2 === C64 ) {\n\t\t\t// Note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `dc_c` should not happen, as `d` does not promote to `c`, but `fc_c` can happen\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dc_c_as_cc_c (fc_c_as_cc_c)\n\t\t}\n\t\t// dd_c (note: in JavaScript, real values are double-precision, but we downcast `d` to `c`, as, according to type promotion rules `dd_c` should not happen, as `d` does not promote to `c`, but `ff_c` can happen)\n\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dd_c_as_cc_c (ff_c_as_cc_c)\n\t}\n\t// Signature: ??_o\n\tif ( t3 === 'generic' ) {\n\t\t// z?_o\n\t\tif ( t1 === C128 ) {\n\t\t\t// zz_o or zc_o\n\t\t\tif ( t2 === C128 || t2 === C64 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: zz_o_as_zz_z or zc_o_as_zz_z\n\t\t\t}\n\t\t\t// zd_o\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: zd_o_as_zz_z\n\t\t}\n\t\t// c?_o\n\t\tif ( t1 === C64 ) {\n\t\t\t// cc_o\n\t\t\tif ( t2 === C64 ) {\n\t\t\t\treturn table[ C64 ]; // Signature: cc_o_as_cc_c\n\t\t\t}\n\t\t\t// cz_o\n\t\t\tif ( t2 === C128 ) {\n\t\t\t\treturn table[ C128 ]; // Signature: cz_o_as_zz_z\n\t\t\t}\n\t\t\t// cd_o\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: cd_o_as_cc_c\n\t\t}\n\t\t// dz_o\n\t\tif ( t2 === C128 ) {\n\t\t\treturn wrap( table[ C128 ], 2, CTORS[ C128 ] ); // Signature: dz_o_as_zz_z\n\t\t}\n\t\t// dc_o\n\t\tif ( t2 === C64 ) {\n\t\t\treturn wrap( table[ C64 ], 2, CTORS[ C64 ] ); // Signature: dc_o_as_cc_c\n\t\t}\n\t\t// dd_o\n\t\treturn table.default;\n\t}\n\treturn table.default;\n}\n\n\n// MAIN //\n\n/**\n* Assigns callbacks to binary interfaces according to type promotion rules.\n*\n* ## Notes\n*\n* - The function assumes that the provided signature array has the following properties:\n*\n* - a strided array having a stride length of `3` (i.e., every `3` elements define a binary interface signature).\n* - for each signature (i.e., set of three consecutive non-overlapping strided array elements), the first two elements are the input data types and the third element is the return data type.\n* - all signatures follow type promotion rules.\n*\n* - Based on type promotion rules, we can simply use the callback for `float64` (i.e., the assumed \"default\") for all interfaces not involving complex numbers, even for `float32`, as we shouldn't need to explicitly downcast strided array values. The only time we need to return `float32` values is when input arrays are already `float32` or of a type which can be safely represented in `float32` without concern for truncation.\n*\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {ArrayLikeObject} signatures - strided array containing binary interface signatures\n* @returns {Array} list of callbacks\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/binary-dtype-signatures' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var cadd = require( '@stdlib/math/base/ops/cadd' );\n* var caddf = require( '@stdlib/math/base/ops/caddf' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes, dtypes );\n* // returns [...]\n*\n* var table = {\n* 'default': add,\n* 'complex64': caddf,\n* 'complex128': cadd\n* };\n*\n* var list = callbacks( table, sigs );\n* // returns [...]\n*/\nfunction callbacks( table, signatures ) {\n\tvar out;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < signatures.length; i += 3 ) {\n\t\tt1 = resolve( signatures[ i ] );\n\t\tt2 = resolve( signatures[ i+1 ] );\n\t\tt3 = resolve( signatures[ i+2 ] );\n\t\tout.push( resolveCallback( table, t1, t2, t3 ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = callbacks;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign callbacks to binary interfaces according to type promotion rules.\n*\n* @module @stdlib/strided/base/binary-signature-callbacks\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/binary-dtype-signatures' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var cadd = require( '@stdlib/math/base/ops/cadd' );\n* var caddf = require( '@stdlib/math/base/ops/caddf' );\n* var callbacks = require( '@stdlib/strided/base/binary-signature-callbacks' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes, dtypes );\n* // returns [...]\n*\n* var table = {\n* 'default': add,\n* 'complex64': caddf,\n* 'complex128': cadd\n* };\n*\n* var list = callbacks( table, sigs );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision complex floating-point strided input array and assigns results to a single-precision complex floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Complex64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Complex64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Complex64Array} `y`\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n*\n* function scale( x ) {\n* var re = real( x );\n* var im = imag( x );\n* return new Complex64( re*10.0, im*10.0 );\n* }\n*\n* var x = new Complex64Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0 ] );\n* var y = new Complex64Array( x.length );\n*\n* cmap( x.length, x, 1, y, 1, scale );\n*\n* var v = y.get( 0 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 10.0\n*/\nfunction cmap( N, x, strideX, y, strideY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty.set( fcn( x.get( ix ) ), iy );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = cmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision complex floating-point strided input array and assigns results to a single-precision complex floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Complex64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Complex64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Complex64Array} `y`\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n*\n* function scale( x ) {\n* var re = real( x );\n* var im = imag( x );\n* return new Complex64( re*10.0, im*10.0 );\n* }\n*\n* var x = new Complex64Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0 ] );\n* var y = new Complex64Array( x.length );\n*\n* cmap( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* var v = y.get( 0 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 10.0\n*/\nfunction cmap( N, x, strideX, offsetX, y, strideY, offsetY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty.set( fcn( x.get( ix ) ), iy );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = cmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to a single-precision floating-point strided input array and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/cmap\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var cmap = require( '@stdlib/strided/base/cmap' );\n*\n* function scale( x ) {\n* var re = real( x );\n* var im = imag( x );\n* return new Complex64( re*10.0, im*10.0 );\n* }\n*\n* var x = new Complex64Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0 ] );\n* var y = new Complex64Array( x.length );\n*\n* cmap( x.length, x, 1, y, 1, scale );\n*\n* var v = y.get( 0 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 10.0\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var cmap = require( '@stdlib/strided/base/cmap' );\n*\n* function scale( x ) {\n* var re = real( x );\n* var im = imag( x );\n* return new Complex64( re*10.0, im*10.0 );\n* }\n*\n* var x = new Complex64Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0 ] );\n* var y = new Complex64Array( x.length );\n*\n* cmap.ndarray( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* var v = y.get( 0 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 10.0\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision floating-point strided input array and assigns results to a double-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction dmap( N, x, strideX, y, strideY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision floating-point strided input array and assigns results to a double-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction dmap( N, x, strideX, offsetX, y, strideY, offsetY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to a double-precision floating-point strided input array and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/dmap\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var dmap = require( '@stdlib/strided/base/dmap' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var dmap = require( '@stdlib/strided/base/dmap' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmap.ndarray( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to double-precision floating-point strided input arrays and assigns results to a double-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {Float64Array} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply\n* @returns {Float64Array} `z`\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* dmap2( x.length, x, 1, y, 1, z, 1, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction dmap2( N, x, strideX, y, strideY, z, strideZ, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( strideZ < 0 ) {\n\t\tiz = (1-N) * strideZ;\n\t} else {\n\t\tiz = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t\tiz += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dmap2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to double-precision floating-point strided input arrays and assigns results to a double-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Float64Array} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply\n* @returns {Float64Array} `z`\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* dmap2( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction dmap2( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tiz = offsetZ;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t\tiz += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dmap2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary function to double-precision floating-point strided input arrays and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/dmap2\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var dmap2 = require( '@stdlib/strided/base/dmap2' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* dmap2( x.length, x, 1, y, 1, z, 1, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var dmap2 = require( '@stdlib/strided/base/dmap2' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( x.length );\n*\n* dmap2.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision floating-point strided input array according to a strided mask array and assigns results to a double-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction dmskmap( N, x, strideX, mask, strideMask, y, strideY, fcn ) {\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideMask < 0 ) {\n\t\tim = (1-N) * strideMask;\n\t} else {\n\t\tim = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += strideX;\n\t\tim += strideMask;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dmskmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision floating-point strided input array according to a strided mask array and assigns results to a double-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {NonNegativeInteger} offsetMask - starting `mask` index\n* @param {Float64Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Float64Array} `y`\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction dmskmap( N, x, strideX, offsetX, mask, strideMask, offsetMask, y, strideY, offsetY, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tim = offsetMask;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += strideX;\n\t\tim += strideMask;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dmskmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to a double-precision floating-point strided input array according to a strided mask array and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/dmskmap\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var dmskmap = require( '@stdlib/strided/base/dmskmap' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var dmskmap = require( '@stdlib/strided/base/dmskmap' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* dmskmap.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to double-precision floating-point strided input arrays and assigns results to a double-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float64Array} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {Float64Array} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply\n* @returns {Float64Array} `z`\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var z = new Float64Array( x.length );\n*\n* dmskmap2( x.length, x, 1, y, 1, m, 1, z, 1, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 0.0, 8.0, 10.0 ]\n*/\nfunction dmskmap2( N, x, strideX, y, strideY, mask, strideMask, z, strideZ, fcn ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar im;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( strideZ < 0 ) {\n\t\tiz = (1-N) * strideZ;\n\t} else {\n\t\tiz = 0;\n\t}\n\tif ( strideMask < 0 ) {\n\t\tim = (1-N) * strideMask;\n\t} else {\n\t\tim = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t\tiz += strideZ;\n\t\tim += strideMask;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dmskmap2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to double-precision floating-point strided input arrays according to a strided mask array and assigns results to a double-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float64Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float64Array} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {NonNegativeInteger} offsetMask - starting `mask` index\n* @param {Float64Array} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply\n* @returns {Float64Array} `z`\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var z = new Float64Array( x.length );\n*\n* dmskmap2( x.length, x, 1, 0, y, 1, 0, m, 1, 0, z, 1, 0, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 0.0, 8.0, 10.0 ]\n*/\nfunction dmskmap2( N, x, strideX, offsetX, y, strideY, offsetY, mask, strideMask, offsetMask, z, strideZ, offsetZ, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar im;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tiz = offsetZ;\n\tim = offsetMask;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t\tiz += strideZ;\n\t\tim += strideMask;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dmskmap2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary function to double-precision floating-point strided input arrays according to a strided mask array and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/dmskmap2\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var dmskmap2 = require( '@stdlib/strided/base/dmskmap2' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var z = new Float64Array( x.length );\n*\n* dmskmap2( x.length, x, 1, y, 1, m, 1, z, 1, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 0.0, 8.0, 10.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var dmskmap2 = require( '@stdlib/strided/base/dmskmap2' );\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var z = new Float64Array( x.length );\n*\n* dmskmap2.ndarray( x.length, x, 1, 0, y, 1, 0, m, 1, 0, z, 1, 0, add );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 0.0, 8.0, 10.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, y, strideY, fcn, clbk, thisArg ) {\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, x[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\ty[ iy ] = fcn( v );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Function} yset - accessor for setting elements in `x`\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function yset( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy( x.length, x, 1, xget, y, 1, yset, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, xget, y, strideY, yset, fcn, clbk, thisArg ) {\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, xget( x, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tyset( y, iy, fcn( v ) );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './map.js' );\nvar accessors = require( './accessors.js' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, y, strideY, fcn, clbk, thisArg ) {\n\tvar xget;\n\tvar yset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( N, x, strideX, xget, y, strideY, yset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, y, strideY, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy( x.length, x, 1, 0, y, 1, 0, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, x[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\ty[ iy ] = fcn( v );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} yset - accessor for setting elements in `x`\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function yset( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy( x.length, x, 1, 0, xget, y, 1, 0, yset, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, xget, y, strideY, offsetY, yset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, xget( x, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tyset( y, iy, fcn( v ) );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './map.ndarray.js' );\nvar accessors = require( './accessors.ndarray.js' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - destination array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `y`\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy( x.length, x, 1, 0, y, 1, 0, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction mapBy( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar xget;\n\tvar yset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( N, x, strideX, offsetX, xget, y, strideY, offsetY, yset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, offsetX, y, strideY, offsetY, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to each element retrieved from a strided input array according to a callback function and assign results to a strided output array.\n*\n* @module @stdlib/strided/base/map-by\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var mapBy = require( '@stdlib/strided/base/map-by' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy( x.length, x, 1, y, 1, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var mapBy = require( '@stdlib/strided/base/map-by' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy.ndarray( x.length, x, 1, 0, y, 1, 0, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg ) {\n\tvar args;\n\tvar o;\n\tvar a;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\to = [ 0, 0, 0 ];\n\tif ( strideX < 0 ) {\n\t\to[ 0 ] = (1-N) * strideX;\n\t} else {\n\t\to[ 0 ] = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\to[ 1 ] = (1-N) * strideY;\n\t} else {\n\t\to[ 1 ] = 0;\n\t}\n\tif ( strideZ < 0 ) {\n\t\to[ 2 ] = (1-N) * strideZ;\n\t} else {\n\t\to[ 2 ] = 0;\n\t}\n\ta = [ x, y, z ];\n\targs = [ 0, 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\targs[ 0 ] = x[ o[0] ];\n\t\targs[ 1 ] = y[ o[1] ];\n\t\tv = clbk.call( thisArg, args, i, o, a );\n\t\tif ( v !== void 0 ) {\n\t\t\tz[ o[2] ] = fcn( v[ 0 ], v[ 1 ] );\n\t\t}\n\t\to[ 0 ] += strideX;\n\t\to[ 1 ] += strideY;\n\t\to[ 2 ] += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Function} yget - accessor for retrieving elements in `y`\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} zset - accessor for setting elements in `z`\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, get, y, 1, get, z, 1, set, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, xget, y, strideY, yget, z, strideZ, zset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar args;\n\tvar o;\n\tvar a;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\to = [ 0, 0, 0 ];\n\tif ( strideX < 0 ) {\n\t\to[ 0 ] = (1-N) * strideX;\n\t} else {\n\t\to[ 0 ] = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\to[ 1 ] = (1-N) * strideY;\n\t} else {\n\t\to[ 1 ] = 0;\n\t}\n\tif ( strideZ < 0 ) {\n\t\to[ 2 ] = (1-N) * strideZ;\n\t} else {\n\t\to[ 2 ] = 0;\n\t}\n\ta = [ x, y, z ];\n\targs = [ 0, 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\targs[ 0 ] = xget( x, o[ 0 ] );\n\t\targs[ 1 ] = yget( y, o[ 1 ] );\n\t\tv = clbk.call( thisArg, args, i, o, a );\n\t\tif ( v !== void 0 ) {\n\t\t\tzset( z, o[ 2 ], fcn( v[ 0 ], v[ 1 ] ) );\n\t\t}\n\t\to[ 0 ] += strideX;\n\t\to[ 1 ] += strideY;\n\t\to[ 2 ] += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './map.js' );\nvar accessors = require( './accessors.js' );\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg ) {\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( N, x, strideX, xget, y, strideY, yget, z, strideZ, zset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar args;\n\tvar o;\n\tvar a;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\to = [ offsetX, offsetY, offsetZ ];\n\ta = [ x, y, z ];\n\targs = [ 0, 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\targs[ 0 ] = x[ o[0] ];\n\t\targs[ 1 ] = y[ o[1] ];\n\t\tv = clbk.call( thisArg, args, i, o, a );\n\t\tif ( v !== void 0 ) {\n\t\t\tz[ o[2] ] = fcn( v[ 0 ], v[ 1 ] );\n\t\t}\n\t\to[ 0 ] += strideX;\n\t\to[ 1 ] += strideY;\n\t\to[ 2 ] += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Function} xget - accessor for retrieving elements in `x`\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} yget - accessor for retrieving elements in `y`\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} zset - accessor for setting elements in `z`\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* function accessor( values ) {\n* return values;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, get, y, 1, 0, get, z, 1, 0, set, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, xget, y, strideY, offsetY, yget, z, strideZ, offsetZ, zset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar args;\n\tvar o;\n\tvar a;\n\tvar v;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\to = [ offsetX, offsetY, offsetZ ];\n\ta = [ x, y, z ];\n\targs = [ 0, 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\targs[ 0 ] = xget( x, o[ 0 ] );\n\t\targs[ 1 ] = yget( y, o[ 1 ] );\n\t\tv = clbk.call( thisArg, args, i, o, a );\n\t\tif ( v !== void 0 ) {\n\t\t\tzset( z, o[ 2 ], fcn( v[ 0 ], v[ 1 ] ) );\n\t\t}\n\t\to[ 0 ] += strideX;\n\t\to[ 1 ] += strideY;\n\t\to[ 2 ] += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './map.ndarray.js' );\nvar accessors = require( './accessors.ndarray.js' );\n\n\n// MAIN //\n\n/**\n* Applies a binary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Collection} x - input array/collection\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - input array/collection\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Collection} z - destination array/collection\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply to callback return values\n* @param {Callback} clbk - callback function which returns an array-like object containing two values\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} `z`\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\nfunction mapBy2( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tif ( isAccessorArray( y ) ) {\n\t\tyget = accessorGetter( dtype( y ) );\n\t}\n\tif ( isAccessorArray( z ) ) {\n\t\tzset = accessorSetter( dtype( z ) );\n\t}\n\tif ( xget || yget || zset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyget = yget || getter( dtype( y ) );\n\t\tzset = zset || setter( dtype( z ) );\n\t\treturn accessors( N, x, strideX, offsetX, xget, y, strideY, offsetY, yget, z, strideZ, offsetZ, zset, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn, clbk, thisArg ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = mapBy2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary function to each pair of elements retrieved from strided input arrays according to a callback function and assign results to a strided output array.\n*\n* @module @stdlib/strided/base/map-by2\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n* var mapBy2 = require( '@stdlib/strided/base/map-by2' );\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2( x.length, x, 1, y, 1, z, 1, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n* var mapBy2 = require( '@stdlib/strided/base/map-by2' );\n*\n* function accessor( values ) {\n* values[ 0 ] *= 2.0;\n* values[ 1 ] *= 2.0;\n* return values;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var z = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* mapBy2.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, add, accessor );\n*\n* console.log( z );\n* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the maximum accessible index based on a set of provided strided array parameters.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {integer} stride - stride length\n* @param {NonNegativeInteger} offset - starting index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = maxViewBufferIndex( 3, 2, 10 );\n* // returns 14\n*/\nfunction maxViewBufferIndex( N, stride, offset ) {\n\tif ( N > 0 && stride > 0 ) {\n\t\toffset += (N-1) * stride;\n\t}\n\treturn offset;\n}\n\n\n// EXPORTS //\n\nmodule.exports = maxViewBufferIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the maximum accessible index based on a set of provided strided array parameters.\n*\n* @module @stdlib/strided/base/max-view-buffer-index\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/strided/base/max-view-buffer-index' );\n*\n* var idx = maxViewBufferIndex( 3, 2, 10 );\n* // returns 14\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar dtypes2signatures = require( '@stdlib/ndarray/base/dtypes2signatures' );\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose strided array function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments (excluding offsets)\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of strided array data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @param {boolean} bool - boolean indicating whether the provided object should describe an \"ndarray\" function interface\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define strided array function meta data:\n* var meta = {\n* 'nargs': 7,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of strided array data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj, false );\n*\n* @example\n* // Define strided array function meta data:\n* var meta = {\n* 'nargs': 7,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of strided array data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs, false );\n*/\nfunction setProps( meta, dtypes, obj, bool ) {\n\t// Define the number of arguments:\n\tif ( bool ) {\n\t\tsetReadOnly( obj, 'nargs', meta.nargs+meta.nin+meta.nout ); // Note: accounts for one offset argument per input/output strided array\n\t} else {\n\t\tsetReadOnly( obj, 'nargs', meta.nargs );\n\t}\n\t// Define the number of input strided arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output strided arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of strided array interface array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = setProps;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Define non-enumerable read-only properties which expose strided array function meta data.\n*\n* @module @stdlib/strided/base/meta-data-props\n*\n* @example\n* var setProps = require( '@stdlib/strided/base/meta-data-props' );\n*\n* // Define strided array function meta data:\n* var meta = {\n* 'nargs': 7,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of strided array data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object/function on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj, false );\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array according to elements in a strided mask array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array, a mask array, and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the strided arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* mskunary( [ x, m, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction mskunary( arrays, shape, strides, fcn ) {\n\tvar sx;\n\tvar sm;\n\tvar sy;\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar x;\n\tvar m;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsm = strides[ 1 ];\n\tsy = strides[ 2 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sm < 0 ) {\n\t\tim = (1-N) * sm;\n\t} else {\n\t\tim = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tx = arrays[ 0 ];\n\tm = arrays[ 1 ];\n\ty = arrays[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( m[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += sx;\n\t\tim += sm;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array according to elements in a strided mask array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array, a mask array, and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the strided arrays\n* @param {Array} accessors - array-like object containing accessors for the strided arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function mget( buf, idx ) {\n* return buf[ idx ];\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* mskunary( [ x, m, y ], shape, strides, [ xget, mget, set ], scale );\n*\n* console.log( y );\n* // => [ 20.0, 40.0, 0.0, 80.0, 100.0 ]\n*/\nfunction mskunary( arrays, shape, strides, accessors, fcn ) {\n\tvar xget;\n\tvar mget;\n\tvar yset;\n\tvar sx;\n\tvar sm;\n\tvar sy;\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar x;\n\tvar m;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsm = strides[ 1 ];\n\tsy = strides[ 2 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sm < 0 ) {\n\t\tim = (1-N) * sm;\n\t} else {\n\t\tim = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tx = arrays[ 0 ];\n\tm = arrays[ 1 ];\n\ty = arrays[ 2 ];\n\txget = accessors[ 0 ];\n\tmget = accessors[ 1 ];\n\tyset = accessors[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mget( m, im ) === 0 ) {\n\t\t\tyset( y, iy, fcn( xget( x, ix ) ) );\n\t\t}\n\t\tix += sx;\n\t\tim += sm;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './unary.js' );\nvar accessors = require( './accessors.js' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array according to elements in a strided mask array and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array, a mask array, and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the strided arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* mskunary( [ x, m, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction mskunary( arrays, shape, strides, fcn ) {\n\tvar xget;\n\tvar mget;\n\tvar yset;\n\tvar x;\n\tvar m;\n\tvar y;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tm = arrays[ 1 ];\n\tif ( isAccessorArray( m ) ) {\n\t\tmget = accessorGetter( dtype( m ) );\n\t}\n\ty = arrays[ 2 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || mget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tmget = mget || getter( dtype( m ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, [ xget, mget, yset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array according to elements in a strided mask array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array, a mask array, and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the strided arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the strided arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* mskunary( [ x, m, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction mskunary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sm;\n\tvar sy;\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar x;\n\tvar m;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tim = offsets[ 1 ];\n\tiy = offsets[ 2 ];\n\tsx = strides[ 0 ];\n\tsm = strides[ 1 ];\n\tsy = strides[ 2 ];\n\tx = arrays[ 0 ];\n\tm = arrays[ 1 ];\n\ty = arrays[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( m[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += sx;\n\t\tim += sm;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array according to elements in a strided mask array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array, a mask array, and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the strided arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the strided arrays\n* @param {Array} accessors - array-like object containing accessors for the strided arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function mget( buf, idx ) {\n* return buf[ idx ];\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* mskunary( [ x, m, y ], shape, strides, offsets, [ xget, mget, set ], scale );\n*\n* console.log( y );\n* // => [ 20.0, 40.0, 0.0, 80.0, 100.0 ]\n*/\nfunction mskunary( arrays, shape, strides, offsets, accessors, fcn ) {\n\tvar xget;\n\tvar mget;\n\tvar yset;\n\tvar sx;\n\tvar sm;\n\tvar sy;\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar x;\n\tvar m;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tim = offsets[ 1 ];\n\tiy = offsets[ 2 ];\n\tsx = strides[ 0 ];\n\tsm = strides[ 1 ];\n\tsy = strides[ 2 ];\n\tx = arrays[ 0 ];\n\tm = arrays[ 1 ];\n\ty = arrays[ 2 ];\n\txget = accessors[ 0 ];\n\tmget = accessors[ 1 ];\n\tyset = accessors[ 2 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mget( m, im ) === 0 ) {\n\t\t\tyset( y, iy, fcn( xget( x, ix ) ) );\n\t\t}\n\t\tix += sx;\n\t\tim += sm;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './unary.ndarray.js' );\nvar accessors = require( './accessors.ndarray.js' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array according to elements in a strided mask array and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array, a mask array, and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the strided arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the strided arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* mskunary( [ x, m, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction mskunary( arrays, shape, strides, offsets, fcn ) {\n\tvar xget;\n\tvar mget;\n\tvar yset;\n\tvar x;\n\tvar m;\n\tvar y;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\tm = arrays[ 1 ];\n\tif ( isAccessorArray( m ) ) {\n\t\tmget = accessorGetter( dtype( m ) );\n\t}\n\ty = arrays[ 2 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || mget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tmget = mget || getter( dtype( m ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xget, mget, yset ], fcn ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a strided input array according to elements in a strided mask array and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/mskunary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var mskunary = require( '@stdlib/strided/base/mskunary' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n*\n* mskunary( [ x, m, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var mskunary = require( '@stdlib/strided/base/mskunary' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1 ];\n* var offsets = [ 0, 0, 0 ];\n*\n* mskunary.ndarray( [ x, m, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar resolve = require( './../../../base/dtype-resolve-enum' );\nvar reinterpretComplex64 = require( './../../../base/reinterpret-complex64' );\nvar reinterpretComplex128 = require( './../../../base/reinterpret-complex128' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolve( 'complex64' );\nvar COMPLEX128 = resolve( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a unary function to an input strided array according to a mask strided array.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeMask**: `mask` data type.\n* - **mask**: mask array.\n* - **strideMask**: `mask` stride length.\n* - **dtypeY**: `y` data type.\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type (enumeration constant).\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeMask**: `mask` data type (enumeration constant).\n* - **mask**: mask array.\n* - **strideMask**: `mask` stride length.\n* - **dtypeY**: `y` data type (enumeration constant).\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeMask**: `mask` data type.\n* - **mask**: mask array.\n* - **strideMask**: `mask` stride length.\n* - **dtypeY**: `y` data type.\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* function addon( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 'generic', [ 0, 0 ], 1, 'generic', [ 0, 0 ], 1 );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - `x` data type\n\t* @param {Collection} x - input array\n\t* @param {integer} strideX - `x` stride length\n\t* @param {*} dtypeMask - `mask` data type\n\t* @param {Collection} mask - mask array\n\t* @param {integer} strideMask - `mask` stride length\n\t* @param {*} dtypeY - `y` data type\n\t* @param {Collection} y - destination array\n\t* @param {integer} strideY - `y` stride length\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {Collection} `y`\n\t*/\n\tfunction dispatcher( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY ) {\n\t\tvar viewX;\n\t\tvar viewY;\n\n\t\t// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif ( !isTypedArrayLike( x ) || !isTypedArrayLike( y ) || !isTypedArrayLike( mask ) ) {\n\t\t\tfallback( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY );\n\t\t\treturn y;\n\t\t}\n\t\tdtypeX = resolve( dtypeX );\n\t\tdtypeY = resolve( dtypeY );\n\t\tdtypeMask = resolve( dtypeMask );\n\t\tif ( dtypeX === null || dtypeY === null || dtypeMask === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( x, 0 );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( x, 0 );\n\t\t} else {\n\t\t\tviewX = x;\n\t\t}\n\t\tif ( dtypeY === COMPLEX64 ) {\n\t\t\tviewY = reinterpretComplex64( y, 0 );\n\t\t} else if ( dtypeY === COMPLEX128 ) {\n\t\t\tviewY = reinterpretComplex128( y, 0 );\n\t\t} else {\n\t\t\tviewY = y;\n\t\t}\n\t\taddon( N, dtypeX, viewX, strideX, dtypeMask, mask, strideMask, dtypeY, viewY, strideY );\n\t\treturn y;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar resolve = require( './../../../base/dtype-resolve-enum' );\nvar reinterpretComplex64 = require( './../../../base/reinterpret-complex64' );\nvar reinterpretComplex128 = require( './../../../base/reinterpret-complex128' );\nvar offsetView = require( './../../../base/offset-view' );\nvar minViewBufferIndex = require( './../../../base/min-view-buffer-index' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolve( 'complex64' );\nvar COMPLEX128 = resolve( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a unary function to an input strided array according to a mask strided array using alternative indexing semantics.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, offsetX, dtypeMask, mask, strideMask, offsetMask, dtypeY, y, strideY, offsetY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **offsetX**: starting `x` index.\n* - **dtypeMask**: `mask` data type.\n* - **mask**: mask array.\n* - **strideMask**: `mask` stride length.\n* - **offsetMask**: starting `mask` index.\n* - **dtypeY**: `y` data type.\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n* - **offsetY**: starting `y` index.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type (enumeration constant).\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeMask**: `mask` data type (enumeration constant).\n* - **mask**: mask array.\n* - **strideMask**: `mask` stride length.\n* - **dtypeY**: `y` data type (enumeration constant).\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, offsetX, dtypeMask, mask, strideMask, offsetMask, dtypeY, y, strideY, offsetY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **offsetX**: starting `x` index.\n* - **dtypeMask**: `mask` data type.\n* - **mask**: mask array.\n* - **strideMask**: `mask` stride length.\n* - **offsetMask**: starting `mask` index.\n* - **dtypeY**: `y` data type.\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n* - **offsetY**: starting `y` index.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* function addon( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, offsetX, dtypeMask, mask, strideMask, offsetMask, dtypeY, y, strideY, offsetY ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 0, 'generic', [ 0, 0 ], 1, 0, 'generic', [ 0, 0 ], 1, 0 );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - `x` data type\n\t* @param {Collection} x - input array\n\t* @param {integer} strideX - `x` stride length\n\t* @param {NonNegativeInteger} offsetX - starting `x` index\n\t* @param {*} dtypeMask - `mask` data type\n\t* @param {Collection} mask - mask array\n\t* @param {integer} strideMask - `mask` stride length\n\t* @param {NonNegativeInteger} offsetMask - starting `mask` index\n\t* @param {*} dtypeY - `y` data type\n\t* @param {Collection} y - destination array\n\t* @param {integer} strideY - `y` stride length\n\t* @param {NonNegativeInteger} offsetY - starting `y` index\n\t* @throws {TypeError} fifth argument must be a nonnegative integer\n\t* @throws {TypeError} ninth argument must be a nonnegative integer\n\t* @throws {TypeError} thirteenth argument must be a nonnegative integer\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {Collection} `y`\n\t*/\n\tfunction dispatcher( N, dtypeX, x, strideX, offsetX, dtypeMask, mask, strideMask, offsetMask, dtypeY, y, strideY, offsetY ) { // eslint-disable-line max-params\n\t\tvar viewMask;\n\t\tvar viewX;\n\t\tvar viewY;\n\n\t\t// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif ( !isTypedArrayLike( x ) || !isTypedArrayLike( y ) || !isTypedArrayLike( mask ) ) {\n\t\t\tfallback( N, dtypeX, x, strideX, offsetX, dtypeMask, mask, strideMask, offsetMask, dtypeY, y, strideY, offsetY );\n\t\t\treturn y;\n\t\t}\n\t\tdtypeX = resolve( dtypeX );\n\t\tdtypeY = resolve( dtypeY );\n\t\tdtypeMask = resolve( dtypeMask );\n\t\tif ( dtypeX === null || dtypeY === null || dtypeMask === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetX ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Input array offset must be a nonnegative integer. Value: `%s`.', offsetX ) );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetY ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.', offsetY ) );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetMask ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Mask array offset must be a nonnegative integer. Value: `%s`.', offsetMask ) );\n\t\t}\n\t\toffsetX = minViewBufferIndex( N, strideX, offsetX );\n\t\toffsetY = minViewBufferIndex( N, strideY, offsetY );\n\t\toffsetMask = minViewBufferIndex( N, strideMask, offsetMask );\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( x, offsetX );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( x, offsetX );\n\t\t} else {\n\t\t\tviewX = offsetView( x, offsetX );\n\t\t}\n\t\tif ( dtypeY === COMPLEX64 ) {\n\t\t\tviewY = reinterpretComplex64( y, offsetY );\n\t\t} else if ( dtypeY === COMPLEX128 ) {\n\t\t\tviewY = reinterpretComplex128( y, offsetY );\n\t\t} else {\n\t\t\tviewY = offsetView( y, offsetY );\n\t\t}\n\t\tviewMask = offsetView( mask, offsetMask );\n\n\t\taddon( N, dtypeX, viewX, strideX, dtypeMask, viewMask, strideMask, dtypeY, viewY, strideY );\n\t\treturn y;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Dispatch to a native add-on applying a unary function to an input strided array according to a mask strided array.\n*\n* @module @stdlib/strided/base/mskunary-addon-dispatch\n*\n* @example\n* var dispatch = require( '@stdlib/strided/base/mskunary-addon-dispatch' );\n*\n* function addon( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, dtypeMask, mask, strideMask, dtypeY, y, strideY ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 'generic', [ 0, 0 ], 1, 'generic', [ 0, 0 ], 1 );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar safeCasts = require( '@stdlib/ndarray/safe-casts' );\nvar resolveEnum = require( './../../../base/dtype-resolve-enum' );\nvar resolveStr = require( './../../../base/dtype-resolve-str' );\nvar format = require( '@stdlib/string/format' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns the intersection of two sorted lists.\n*\n* @private\n* @param {ArrayLikeObject} list1 - first sorted list\n* @param {ArrayLikeObject} list2 - second sorted list\n* @returns {ArrayLikeObject} result\n*\n* @example\n* var list1 = [ 'a', 'b', 'c', 'd' ];\n* var list2 = [ 'b', 'd', 'e' ];\n*\n* var out = intersection( list1, list2 );\n* // returns [ 'b', 'd' ]\n*/\nfunction intersection( list1, list2 ) {\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tM = list1.length;\n\tN = list2.length;\n\n\tout = [];\n\tk = 0;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tif ( k >= N ) {\n\t\t\tbreak;\n\t\t}\n\t\tv = list1[ i ];\n\t\tfor ( j = k; j < N; j++ ) {\n\t\t\tif ( v === list2[ j ] ) {\n\t\t\t\tk = j + 1;\n\t\t\t\tout.push( v );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n/**\n* Resolves a list of data types to data type strings.\n*\n* @private\n* @param {ArrayLikeObject} dtypes - list of data types\n* @returns {(StringArray|Error)} data type strings (or an error)\n*\n* @example\n* var out = resolve( [ 1, 2, 3 ] );\n* // returns [...]\n*/\nfunction resolve( dtypes ) {\n\tvar out;\n\tvar dt;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tdt = resolveStr( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Must provide recognized data types. Unable to resolve a data type string. Value: `%s`.', dtypes[ i ] ) );\n\t\t}\n\t\tout.push( dt );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a list of masked unary interface signatures from strided array data types.\n*\n* ## Notes\n*\n* - The function returns a strided array having a stride length of `3` (i.e., every `3` elements define a masked unary interface signature).\n* - For each signature (i.e., set of three consecutive non-overlapping strided array elements), the first element is the input data type, the second element is the mask data type, and the last element is the return data type.\n* - All signatures follow type promotion rules.\n* - The mask array data type is always `uint8`.\n*\n* @param {Array} dtypes1 - list of supported data types for the first argument\n* @param {Array} dtypes2 - list of supported data types for the output argument\n* @param {Options} [options] - options\n* @param {boolean} [options.enums=false] - boolean flag indicating whether to return signatures as a list of enumeration constants\n* @throws {TypeError} must provide recognized data types\n* @returns {Array} strided array containing masked unary interface signatures\n*\n* @example\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes );\n* // e.g., returns [ 'float32', 'uint8', 'float32', ... ]\n*/\nfunction signatures( dtypes1, dtypes2, options ) {\n\tvar casts;\n\tvar opts;\n\tvar tmp;\n\tvar out;\n\tvar dt1;\n\tvar dt2;\n\tvar t1;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 2 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Resolve the list of provided data types to data type strings:\n\tdt1 = resolve( dtypes1 );\n\tif ( dt1 instanceof Error ) {\n\t\tthrow dt1;\n\t}\n\tif ( dtypes2 === dtypes1 ) { // don't do work if we don't need to\n\t\tdt2 = dt1;\n\t} else {\n\t\tdt2 = resolve( dtypes2 );\n\t\tif ( dt2 instanceof Error ) {\n\t\t\tthrow dt2;\n\t\t}\n\t}\n\t// Sort the list of return dtypes:\n\tdt2.sort();\n\n\t// Generate the list of signatures...\n\tM = dt1.length;\n\tout = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tt1 = dt1[ i ];\n\n\t\t// Resolve the list of safe casts for the input dtype:\n\t\tcasts = safeCasts( t1 );\n\t\tif ( casts === null ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Remove safe casts which are not among the supported output dtypes:\n\t\tcasts = intersection( dt2, casts.sort() );\n\n\t\t// Generate signatures for allowed casts...\n\t\tfor ( j = 0; j < casts.length; j++ ) {\n\t\t\tout.push( t1, 'uint8', casts[ j ] );\n\t\t}\n\t}\n\tif ( opts.enums ) {\n\t\ttmp = [];\n\t\tfor ( i = 0; i < out.length; i++ ) {\n\t\t\ttmp.push( resolveEnum( out[ i ] ) );\n\t\t}\n\t\tout = tmp;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = signatures;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a list of masked unary interface signatures from strided array data types.\n*\n* @module @stdlib/strided/base/mskunary-dtype-signatures\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/mskunary-dtype-signatures' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes );\n* // e.g., returns [ 'float32', 'uint8', 'float32', ... ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar resolve = require( './../../../base/dtype-resolve-str' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar wrap = require( '@stdlib/complex/base/cast-return' );\n\n\n// VARIABLES //\n\nvar C64 = 'complex64';\nvar C128 = 'complex128';\nvar CTORS = {\n\t'complex64': Complex64,\n\t'complex128': Complex128\n};\n\n\n// FUNCTIONS //\n\n/**\n* Resolves a callback based on provided dtypes.\n*\n* @private\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {string} t1 - dtype for input argument\n* @param {string} t2 - dtype for return value\n* @returns {Function} callback\n*/\nfunction resolveCallback( table, t1, t2 ) {\n\t// Signature: ?_z\n\tif ( t2 === C128 ) {\n\t\t// c_z or z_z\n\t\tif ( t1 === C64 || t1 === C128 ) {\n\t\t\t// Always perform computation in higher precision:\n\t\t\treturn table[ C128 ];\n\t\t}\n\t\t// d_z (cast the double-precision return value from `d_d` to a complex number)\n\t\treturn wrap( table.default, 1, CTORS[ t2 ] );\n\t}\n\t// Signature: ?_c\n\tif ( t2 === C64 ) {\n\t\t// c_c\n\t\tif ( t1 === C64 ) {\n\t\t\treturn table[ C64 ];\n\t\t}\n\t\t// z_c\n\t\tif ( t1 === C128 ) {\n\t\t\t// Always perform the computation in higher precision:\n\t\t\treturn table[ C128 ];\n\t\t}\n\t\t// d_c (cast the double-precision return value from `d_d` to a complex number)\n\t\treturn wrap( table.default, 1, CTORS[ t2 ] );\n\t}\n\t// Signature: ?_o\n\tif ( t2 === 'generic' ) {\n\t\t// z_o\n\t\tif ( t1 === C128 ) {\n\t\t\treturn table[ C128 ]; // Signature: z_o_as_z_z\n\t\t}\n\t\t// c_o\n\t\tif ( t1 === C64 ) {\n\t\t\treturn table[ C64 ]; // Signature: c_o_as_c_c\n\t\t}\n\t\t// d_o\n\t\treturn table.default; // Signature: d_o_as_d_d\n\t}\n\treturn table.default;\n}\n\n\n// MAIN //\n\n/**\n* Assigns callbacks to masked unary interfaces according to type promotion rules.\n*\n* ## Notes\n*\n* - The function assumes that the provided signature array has the following properties:\n*\n* - a strided array having a stride length of `3` (i.e., every `3` elements define a masked unary interface signature).\n* - for each signature (i.e., set of three consecutive non-overlapping strided array elements), the first element is the input data type, the second element is the mask data type, and the last element is the return data type.\n* - all signatures (excluding the mask data type) follow type promotion rules.\n*\n* - Based on type promotion rules, we can simply use the callback for `float64` (i.e., the assumed \"default\") for all interfaces not involving complex numbers, even for `float32`, as we shouldn't need to explicitly downcast strided array values. The only time we need to return `float32` values is when input arrays are already `float32` or of a type which can be safely represented in `float32` without concern for truncation.\n*\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {ArrayLikeObject} signatures - strided array containing masked unary interface signatures\n* @returns {Array} list of callbacks\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/mskunary-dtype-signatures' );\n* var identity = require( '@stdlib/math/base/special/identity' );\n* var cidentity = require( '@stdlib/math/base/special/cidentity' );\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes );\n* // returns [...]\n*\n* var table = {\n* 'default': identity,\n* 'complex64': cidentityf,\n* 'complex128': cidentity\n* };\n*\n* var list = callbacks( table, sigs );\n* // returns [...]\n*/\nfunction callbacks( table, signatures ) {\n\tvar out;\n\tvar t1;\n\tvar t2;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < signatures.length; i += 3 ) {\n\t\tt1 = resolve( signatures[ i ] );\n\t\tt2 = resolve( signatures[ i+2 ] );\n\t\tout.push( resolveCallback( table, t1, t2 ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = callbacks;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign callbacks to masked unary interfaces according to type promotion rules.\n*\n* @module @stdlib/strided/base/mskunary-signature-callbacks\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/mskunary-dtype-signatures' );\n* var identity = require( '@stdlib/math/base/special/identity' );\n* var cidentity = require( '@stdlib/math/base/special/cidentity' );\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\n* var callbacks = require( '@stdlib/strided/base/mskunary-signature-callbacks' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes );\n* // returns [...]\n*\n* var table = {\n* 'default': identity,\n* 'complex64': cidentityf,\n* 'complex128': cidentity\n* };\n*\n* var list = callbacks( table, sigs );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride length for the output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fill() {\n* return 3.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n*\n* var shape = [ x.length ];\n* var strides = [ 1 ];\n*\n* nullary( [ x ], shape, strides, fill );\n*\n* console.log( x );\n* // => [ 3.0, 3.0, 3.0, 3.0, 3.0 ]\n*/\nfunction nullary( arrays, shape, strides, fcn ) {\n\tvar sx;\n\tvar ix;\n\tvar x;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tx = arrays[ 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tx[ ix ] = fcn();\n\t\tix += sx;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride length for the output array\n* @param {Array} accessors - array-like object containing accessors for the output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fill() {\n* return 3.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value * 2.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n*\n* var shape = [ x.length ];\n* var strides = [ 1 ];\n*\n* nullary( [ x ], shape, strides, [ set ], fill );\n*\n* console.log( x );\n* // => [ 6.0, 6.0, 6.0, 6.0, 6.0 ]\n*/\nfunction nullary( arrays, shape, strides, accessors, fcn ) {\n\tvar xset;\n\tvar sx;\n\tvar ix;\n\tvar x;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tx = arrays[ 0 ];\n\txset = accessors[ 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\txset( x, ix, fcn() );\n\t\tix += sx;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './nullary.js' );\nvar accessors = require( './accessors.js' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride length for the output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fill() {\n* return 3.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n*\n* var shape = [ x.length ];\n* var strides = [ 1 ];\n*\n* nullary( [ x ], shape, strides, fill );\n*\n* console.log( x );\n* // => [ 3.0, 3.0, 3.0, 3.0, 3.0 ]\n*/\nfunction nullary( arrays, shape, strides, fcn ) {\n\tvar xset;\n\tvar x;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txset = accessorSetter( dtype( x ) );\n\t}\n\tif ( xset ) {\n\t\txset = xset || setter( dtype( x ) );\n\t\treturn accessors( arrays, shape, strides, [ xset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride length for the output array\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting index (i.e., index offset) for the output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fill() {\n* return 3.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n*\n* var shape = [ x.length ];\n* var strides = [ 1 ];\n* var offsets = [ 0 ];\n*\n* nullary( [ x ], shape, strides, offsets, fill );\n*\n* console.log( x );\n* // => [ 3.0, 3.0, 3.0, 3.0, 3.0 ]\n*/\nfunction nullary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar ix;\n\tvar x;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tsx = strides[ 0 ];\n\tx = arrays[ 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tx[ ix ] = fcn();\n\t\tix += sx;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride length for the output array\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the output array\n* @param {Array} accessors - array-like object containing accessors for the output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fill() {\n* return 3.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value * 2.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n*\n* var shape = [ x.length ];\n* var strides = [ 1 ];\n* var offsets = [ 0 ];\n*\n* nullary( [ x ], shape, strides, offsets, [ set ], fill );\n*\n* console.log( x );\n* // => [ 6.0, 6.0, 6.0, 6.0, 6.0 ]\n*/\nfunction nullary( arrays, shape, strides, offsets, accessors, fcn ) {\n\tvar xset;\n\tvar sx;\n\tvar ix;\n\tvar x;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tsx = strides[ 0 ];\n\tx = arrays[ 0 ];\n\txset = accessors[ 0 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\txset( x, ix, fcn() );\n\t\tix += sx;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './nullary.ndarray.js' );\nvar accessors = require( './accessors.ndarray.js' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride length for the output array\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fill() {\n* return 3.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n*\n* var shape = [ x.length ];\n* var strides = [ 1 ];\n* var offsets = [ 0 ];\n*\n* nullary( [ x ], shape, strides, offsets, fill );\n*\n* console.log( x );\n* // => [ 3.0, 3.0, 3.0, 3.0, 3.0 ]\n*/\nfunction nullary( arrays, shape, strides, offsets, fcn ) {\n\tvar xset;\n\tvar x;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txset = accessorSetter( dtype( x ) );\n\t}\n\tif ( xset ) {\n\t\txset = xset || setter( dtype( x ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a nullary callback and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/nullary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var nullary = require( '@stdlib/strided/base/nullary' );\n*\n* function fill() {\n* return 3.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n*\n* var shape = [ x.length ];\n* var strides = [ 1 ];\n*\n* nullary( [ x ], shape, strides, fill );\n*\n* console.log( x );\n* // => [ 3.0, 3.0, 3.0, 3.0, 3.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var nullary = require( '@stdlib/strided/base/nullary' );\n*\n* function fill() {\n* return 3.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n*\n* var shape = [ x.length ];\n* var strides = [ 1 ];\n* var offsets = [ 0 ];\n*\n* nullary.ndarray( [ x ], shape, strides, offsets, fill );\n*\n* console.log( x );\n* // => [ 3.0, 3.0, 3.0, 3.0, 3.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar resolve = require( './../../../base/dtype-resolve-enum' );\nvar reinterpretComplex64 = require( './../../../base/reinterpret-complex64' );\nvar reinterpretComplex128 = require( './../../../base/reinterpret-complex128' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolve( 'complex64' );\nvar COMPLEX128 = resolve( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a nullary function.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: output array.\n* - **strideX**: `x` stride length.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type (enumeration constant).\n* - **x**: output array.\n* - **strideX**: `x` stride length.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: output array.\n* - **strideX**: `x` stride length.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* function addon( N, dtypeX, x, strideX ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1 );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - `x` data type\n\t* @param {Collection} x - output array\n\t* @param {integer} strideX - `x` stride length\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {Collection} `x`\n\t*/\n\tfunction dispatcher( N, dtypeX, x, strideX ) {\n\t\tvar viewX;\n\n\t\t// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif ( !isTypedArrayLike( x ) ) {\n\t\t\tfallback( N, dtypeX, x, strideX );\n\t\t\treturn x;\n\t\t}\n\t\tdtypeX = resolve( dtypeX );\n\t\tif ( dtypeX === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( x, 0 );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( x, 0 );\n\t\t} else {\n\t\t\tviewX = x;\n\t\t}\n\t\taddon( N, dtypeX, viewX, strideX );\n\t\treturn x;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar resolve = require( './../../../base/dtype-resolve-enum' );\nvar reinterpretComplex64 = require( './../../../base/reinterpret-complex64' );\nvar reinterpretComplex128 = require( './../../../base/reinterpret-complex128' );\nvar offsetView = require( './../../../base/offset-view' );\nvar minViewBufferIndex = require( './../../../base/min-view-buffer-index' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolve( 'complex64' );\nvar COMPLEX128 = resolve( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a nullary function using alternative indexing semantics.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, offsetX )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: output array.\n* - **strideX**: `x` stride length.\n* - **offsetX**: starting `x` index.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type (enumeration constant).\n* - **x**: output array.\n* - **strideX**: `x` stride length.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, offsetX )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: output array.\n* - **strideX**: `x` stride length.\n* - **offsetX**: starting `x` index.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* function addon( N, dtypeX, x, strideX ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, offsetX ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 0 );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - `x` data type\n\t* @param {Collection} x - output array\n\t* @param {integer} strideX - `x` stride length\n\t* @param {NonNegativeInteger} offsetX - starting `x` index\n\t* @throws {TypeError} fifth argument must be a nonnegative integer\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {Collection} `x`\n\t*/\n\tfunction dispatcher( N, dtypeX, x, strideX, offsetX ) {\n\t\tvar viewX;\n\n\t\t// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif ( !isTypedArrayLike( x ) ) {\n\t\t\tfallback( N, dtypeX, x, strideX, offsetX );\n\t\t\treturn x;\n\t\t}\n\t\tdtypeX = resolve( dtypeX );\n\t\tif ( dtypeX === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetX ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.', offsetX ) );\n\t\t}\n\t\toffsetX = minViewBufferIndex( N, strideX, offsetX );\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( x, offsetX );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( x, offsetX );\n\t\t} else {\n\t\t\tviewX = offsetView( x, offsetX );\n\t\t}\n\t\taddon( N, dtypeX, viewX, strideX );\n\t\treturn x;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Dispatch to a native add-on applying a nullary function.\n*\n* @module @stdlib/strided/base/nullary-addon-dispatch\n*\n* @example\n* var dispatch = require( '@stdlib/strided/base/nullary-addon-dispatch' );\n*\n* function addon( N, dtypeX, x, strideX ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1 );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a quaternary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing four input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - quaternary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function add( x, y, z, w ) {\n* return x + y + z + w;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var u = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1, 1 ];\n*\n* quaternary( [ x, y, z, w, u ], shape, strides, add );\n*\n* console.log( u );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\nfunction quaternary( arrays, shape, strides, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar su;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar iu;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\tvar u;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tsw = strides[ 3 ];\n\tsu = strides[ 4 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( sz < 0 ) {\n\t\tiz = (1-N) * sz;\n\t} else {\n\t\tiz = 0;\n\t}\n\tif ( sw < 0 ) {\n\t\tiw = (1-N) * sw;\n\t} else {\n\t\tiw = 0;\n\t}\n\tif ( su < 0 ) {\n\t\tiu = (1-N) * su;\n\t} else {\n\t\tiu = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tu = arrays[ 4 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tu[ iu ] = fcn( x[ ix ], y[ iy ], z[ iz ], w[ iw ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t\tiw += sw;\n\t\tiu += su;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = quaternary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a quaternary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing four input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - quaternary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function add( x, y, z, w ) {\n* return x + y + z + w;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var u = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1, 1 ];\n* var offsets = [ 0, 0, 0, 0, 0 ];\n*\n* quaternary( [ x, y, z, w, u ], shape, strides, offsets, add );\n*\n* console.log( u );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\nfunction quaternary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar su;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar iu;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\tvar u;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tiw = offsets[ 3 ];\n\tiu = offsets[ 4 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tsw = strides[ 3 ];\n\tsu = strides[ 4 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tu = arrays[ 4 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tu[ iu ] = fcn( x[ ix ], y[ iy ], z[ iz ], w[ iw ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t\tiw += sw;\n\t\tiu += su;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = quaternary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a quaternary callback to strided input array elements and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/quaternary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var quaternary = require( '@stdlib/strided/base/quaternary' );\n*\n* function add( x, y, z, w ) {\n* return x + y + z + w;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var u = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1, 1 ];\n*\n* quaternary( [ x, y, z, w, u ], shape, strides, add );\n*\n* console.log( u );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var quaternary = require( '@stdlib/strided/base/quaternary' );\n*\n* function add( x, y, z, w ) {\n* return x + y + z + w;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var u = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1, 1 ];\n* var offsets = [ 0, 0, 0, 0, 0 ];\n*\n* quaternary.ndarray( [ x, y, z, w, u ], shape, strides, offsets, add );\n*\n* console.log( u );\n* // => [ 4.0, 8.0, 12.0, 16.0, 20.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a quinary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing five input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - quinary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function add( x, y, z, w, u ) {\n* return x + y + z + w + u;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var u = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var v = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1, 1, 1 ];\n*\n* quinary( [ x, y, z, w, u, v ], shape, strides, add );\n*\n* console.log( v );\n* // => [ 5.0, 10.0, 15.0, 20.0, 25.0 ]\n*/\nfunction quinary( arrays, shape, strides, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar su;\n\tvar sv;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar iu;\n\tvar iv;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\tvar u;\n\tvar v;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tsw = strides[ 3 ];\n\tsu = strides[ 4 ];\n\tsv = strides[ 5 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( sz < 0 ) {\n\t\tiz = (1-N) * sz;\n\t} else {\n\t\tiz = 0;\n\t}\n\tif ( sw < 0 ) {\n\t\tiw = (1-N) * sw;\n\t} else {\n\t\tiw = 0;\n\t}\n\tif ( su < 0 ) {\n\t\tiu = (1-N) * su;\n\t} else {\n\t\tiu = 0;\n\t}\n\tif ( sv < 0 ) {\n\t\tiv = (1-N) * sv;\n\t} else {\n\t\tiv = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tu = arrays[ 4 ];\n\tv = arrays[ 5 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv[ iv ] = fcn( x[ ix ], y[ iy ], z[ iz ], w[ iw ], u[ iu ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t\tiw += sw;\n\t\tiu += su;\n\t\tiv += sv;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = quinary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a quinary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing five input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - quinary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function add( x, y, z, w, u ) {\n* return x + y + z + w + u;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var u = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var v = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1, 1, 1 ];\n* var offsets = [ 0, 0, 0, 0, 0, 0 ];\n*\n* quinary( [ x, y, z, w, u, v ], shape, strides, offsets, add );\n*\n* console.log( v );\n* // => [ 5.0, 10.0, 15.0, 20.0, 25.0 ]\n*/\nfunction quinary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar su;\n\tvar sv;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar iu;\n\tvar iv;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\tvar u;\n\tvar v;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tiw = offsets[ 3 ];\n\tiu = offsets[ 4 ];\n\tiv = offsets[ 5 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tsw = strides[ 3 ];\n\tsu = strides[ 4 ];\n\tsv = strides[ 5 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tu = arrays[ 4 ];\n\tv = arrays[ 5 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv[ iv ] = fcn( x[ ix ], y[ iy ], z[ iz ], w[ iw ], u[ iu ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t\tiw += sw;\n\t\tiu += su;\n\t\tiv += sv;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = quinary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a quinary callback to strided input array elements and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/quinary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var quinary = require( '@stdlib/strided/base/quinary' );\n*\n* function add( x, y, z, w, u ) {\n* return x + y + z + w + u;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var u = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var v = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1, 1, 1 ];\n*\n* quinary( [ x, y, z, w, u, v ], shape, strides, add );\n*\n* console.log( v );\n* // => [ 5.0, 10.0, 15.0, 20.0, 25.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var quinary = require( '@stdlib/strided/base/quinary' );\n*\n* function add( x, y, z, w, u ) {\n* return x + y + z + w + u;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var u = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var v = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1, 1, 1 ];\n* var offsets = [ 0, 0, 0, 0, 0, 0 ];\n*\n* quinary.ndarray( [ x, y, z, w, u, v ], shape, strides, offsets, add );\n*\n* console.log( v );\n* // => [ 5.0, 10.0, 15.0, 20.0, 25.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction smap( N, x, strideX, y, strideY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = smap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction smap( N, x, strideX, offsetX, y, strideY, offsetY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = smap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to a single-precision floating-point strided input array and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/smap\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var smap = require( '@stdlib/strided/base/smap' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap( x.length, x, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var smap = require( '@stdlib/strided/base/smap' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( x.length );\n*\n* smap.ndarray( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to single-precision floating-point strided input arrays and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {Float32Array} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply\n* @returns {Float32Array} `z`\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var addf = require( '@stdlib/math/base/ops/addf' );\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float32Array( x.length );\n*\n* smap2( x.length, x, 1, y, 1, z, 1, addf );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction smap2( N, x, strideX, y, strideY, z, strideZ, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( strideZ < 0 ) {\n\t\tiz = (1-N) * strideZ;\n\t} else {\n\t\tiz = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t\tiz += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = smap2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to single-precision floating-point strided input arrays and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Float32Array} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply\n* @returns {Float32Array} `z`\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var addf = require( '@stdlib/math/base/ops/addf' );\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float32Array( x.length );\n*\n* smap2( x.length, x, 1, 0, y, 1, 0, z, 1, 0, addf );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction smap2( N, x, strideX, offsetX, y, strideY, offsetY, z, strideZ, offsetZ, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tiz = offsetZ;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t\tiz += strideZ;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = smap2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary function to single-precision floating-point strided input arrays and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/smap2\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var addf = require( '@stdlib/math/base/ops/addf' );\n* var smap2 = require( '@stdlib/strided/base/smap2' );\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float32Array( x.length );\n*\n* smap2( x.length, x, 1, y, 1, z, 1, addf );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var addf = require( '@stdlib/math/base/ops/addf' );\n* var smap2 = require( '@stdlib/strided/base/smap2' );\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float32Array( x.length );\n*\n* smap2.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, addf );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array according to a strided mask array and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction smskmap( N, x, strideX, mask, strideMask, y, strideY, fcn ) {\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideMask < 0 ) {\n\t\tim = (1-N) * strideMask;\n\t} else {\n\t\tim = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += strideX;\n\t\tim += strideMask;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = smskmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a single-precision floating-point strided input array according to a strided mask array and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {NonNegativeInteger} offsetMask - starting `mask` index\n* @param {Float32Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Float32Array} `y`\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\nfunction smskmap( N, x, strideX, offsetX, mask, strideMask, offsetMask, y, strideY, offsetY, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar im;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tim = offsetMask;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\ty[ iy ] = fcn( x[ ix ] );\n\t\t}\n\t\tix += strideX;\n\t\tim += strideMask;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = smskmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to a single-precision floating-point strided input array according to a strided mask array and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/smskmap\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var smskmap = require( '@stdlib/strided/base/smskmap' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap( x.length, x, 1, m, 1, y, 1, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var smskmap = require( '@stdlib/strided/base/smskmap' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var y = new Float32Array( x.length );\n*\n* smskmap.ndarray( x.length, x, 1, 0, m, 1, 0, y, 1, 0, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 0.0, 40.0, 50.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to single-precision floating-point strided input arrays and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Float32Array} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {Float32Array} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {Function} fcn - binary function to apply\n* @returns {Float32Array} `z`\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var addf = require( '@stdlib/math/base/ops/addf' );\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var z = new Float32Array( x.length );\n*\n* smskmap2( x.length, x, 1, y, 1, m, 1, z, 1, addf );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 0.0, 8.0, 10.0 ]\n*/\nfunction smskmap2( N, x, strideX, y, strideY, mask, strideMask, z, strideZ, fcn ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar im;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( strideZ < 0 ) {\n\t\tiz = (1-N) * strideZ;\n\t} else {\n\t\tiz = 0;\n\t}\n\tif ( strideMask < 0 ) {\n\t\tim = (1-N) * strideMask;\n\t} else {\n\t\tim = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t\tiz += strideZ;\n\t\tim += strideMask;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = smskmap2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary function to single-precision floating-point strided input arrays according to a strided mask array and assigns results to a single-precision floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Float32Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Float32Array} y - input array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Uint8Array} mask - mask array\n* @param {integer} strideMask - `mask` stride length\n* @param {NonNegativeInteger} offsetMask - starting `mask` index\n* @param {Float32Array} z - destination array\n* @param {integer} strideZ - `z` stride length\n* @param {NonNegativeInteger} offsetZ - starting `z` index\n* @param {Function} fcn - binary function to apply\n* @returns {Float32Array} `z`\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var addf = require( '@stdlib/math/base/ops/addf' );\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var z = new Float32Array( x.length );\n*\n* smskmap2( x.length, x, 1, 0, y, 1, 0, m, 1, 0, z, 1, 0, addf );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 0.0, 8.0, 10.0 ]\n*/\nfunction smskmap2( N, x, strideX, offsetX, y, strideY, offsetY, mask, strideMask, offsetMask, z, strideZ, offsetZ, fcn ) { // eslint-disable-line max-len, max-params\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar im;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn z;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tiz = offsetZ;\n\tim = offsetMask;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( mask[ im ] === 0 ) {\n\t\t\tz[ iz ] = fcn( x[ ix ], y[ iy ] );\n\t\t}\n\t\tix += strideX;\n\t\tiy += strideY;\n\t\tiz += strideZ;\n\t\tim += strideMask;\n\t}\n\treturn z;\n}\n\n\n// EXPORTS //\n\nmodule.exports = smskmap2;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary function to single-precision floating-point strided input arrays according to a strided mask array and assign results to a single-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/smskmap2\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var addf = require( '@stdlib/math/base/ops/addf' );\n* var smskmap2 = require( '@stdlib/strided/base/smskmap2' );\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var z = new Float32Array( x.length );\n*\n* smskmap2( x.length, x, 1, y, 1, m, 1, z, 1, addf );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 0.0, 8.0, 10.0 ]\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n* var Uint8Array = require( '@stdlib/array/uint8' );\n* var addf = require( '@stdlib/math/base/ops/addf' );\n* var smskmap2 = require( '@stdlib/strided/base/smskmap2' );\n*\n* var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var m = new Uint8Array( [ 0, 0, 1, 0, 0 ] );\n* var z = new Float32Array( x.length );\n*\n* smskmap2.ndarray( x.length, x, 1, 0, y, 1, 0, m, 1, 0, z, 1, 0, addf );\n*\n* console.log( z );\n* // => [ 2.0, 4.0, 0.0, 8.0, 10.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing three input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1 ];\n*\n* ternary( [ x, y, z, w ], shape, strides, add );\n*\n* console.log( w );\n* // => [ 3.0, 6.0, 9.0, 12.0, 15.0 ]\n*/\nfunction ternary( arrays, shape, strides, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tsw = strides[ 3 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tif ( sz < 0 ) {\n\t\tiz = (1-N) * sz;\n\t} else {\n\t\tiz = 0;\n\t}\n\tif ( sw < 0 ) {\n\t\tiw = (1-N) * sw;\n\t} else {\n\t\tiw = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tw[ iw ] = fcn( x[ ix ], y[ iy ], z[ iz ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t\tiw += sw;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to strided input array elements and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing three input arrays and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1 ];\n* var offsets = [ 0, 0, 0, 0 ];\n*\n* ternary( [ x, y, z, w ], shape, strides, offsets, add );\n*\n* console.log( w );\n* // => [ 3.0, 6.0, 9.0, 12.0, 15.0 ]\n*/\nfunction ternary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tiz = offsets[ 2 ];\n\tiw = offsets[ 3 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tsz = strides[ 2 ];\n\tsw = strides[ 3 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tw[ iw ] = fcn( x[ ix ], y[ iy ], z[ iz ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t\tiz += sz;\n\t\tiw += sw;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to strided input array elements and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/ternary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var ternary = require( '@stdlib/strided/base/ternary' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1 ];\n*\n* ternary( [ x, y, z, w ], shape, strides, add );\n*\n* console.log( w );\n* // => [ 3.0, 6.0, 9.0, 12.0, 15.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var ternary = require( '@stdlib/strided/base/ternary' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var z = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var w = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1, 1, 1 ];\n* var offsets = [ 0, 0, 0, 0 ];\n*\n* ternary.ndarray( [ x, y, z, w ], shape, strides, offsets, add );\n*\n* console.log( w );\n* // => [ 3.0, 6.0, 9.0, 12.0, 15.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, [ get, set ], scale );\n*\n* console.log( y );\n* // => [ 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*/\nfunction unary( arrays, shape, strides, accessors, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\txget = accessors[ 0 ];\n\tyset = accessors[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tyset( y, iy, fcn( xget( x, ix ) ) );\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './unary.js' );\nvar accessors = require( './accessors.js' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar x;\n\tvar y;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, [ xget, yset ], fcn );\n\t}\n\treturn strided( arrays, shape, strides, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, fcn ) {\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = fcn( x[ ix ] );\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function get( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function set( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, [ get, set ], scale );\n*\n* console.log( y );\n* // => [ 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, accessors, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\txget = accessors[ 0 ];\n\tyset = accessors[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tyset( y, iy, fcn( xget( x, ix ) ) );\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './unary.ndarray.js' );\nvar accessors = require( './accessors.ndarray.js' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a strided input array and assigns results to elements in a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\nfunction unary( arrays, shape, strides, offsets, fcn ) {\n\tvar xget;\n\tvar yset;\n\tvar x;\n\tvar y;\n\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xget, yset ], fcn ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a strided input array and assign results to elements in a strided output array.\n*\n* @module @stdlib/strided/base/unary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var unary = require( '@stdlib/strided/base/unary' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unary( [ x, y ], shape, strides, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var unary = require( '@stdlib/strided/base/unary' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var y = new Float64Array( x.length );\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unary.ndarray( [ x, y ], shape, strides, offsets, scale );\n*\n* console.log( y );\n* // => [ 10.0, 20.0, 30.0, 40.0, 50.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar resolve = require( './../../../base/dtype-resolve-enum' );\nvar reinterpretComplex64 = require( './../../../base/reinterpret-complex64' );\nvar reinterpretComplex128 = require( './../../../base/reinterpret-complex128' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolve( 'complex64' );\nvar COMPLEX128 = resolve( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a unary function to an input strided array.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeY, y, strideY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeY**: `y` data type.\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeY, y, strideY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type (enumeration constant).\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeY**: `y` data type (enumeration constant).\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeY, y, strideY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeY**: `y` data type.\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* function addon( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 'generic', [ 0, 0 ], 1 );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - `x` data type\n\t* @param {Collection} x - input array\n\t* @param {integer} strideX - `x` stride length\n\t* @param {*} dtypeY - `y` data type\n\t* @param {Collection} y - destination array\n\t* @param {integer} strideY - `y` stride length\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {Collection} `y`\n\t*/\n\tfunction dispatcher( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n\t\tvar viewX;\n\t\tvar viewY;\n\n\t\t// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif ( !isTypedArrayLike( x ) || !isTypedArrayLike( y ) ) {\n\t\t\tfallback( N, dtypeX, x, strideX, dtypeY, y, strideY );\n\t\t\treturn y;\n\t\t}\n\t\tdtypeX = resolve( dtypeX );\n\t\tdtypeY = resolve( dtypeY );\n\t\tif ( dtypeX === null || dtypeY === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( x, 0 );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( x, 0 );\n\t\t} else {\n\t\t\tviewX = x;\n\t\t}\n\t\tif ( dtypeY === COMPLEX64 ) {\n\t\t\tviewY = reinterpretComplex64( y, 0 );\n\t\t} else if ( dtypeY === COMPLEX128 ) {\n\t\t\tviewY = reinterpretComplex128( y, 0 );\n\t\t} else {\n\t\t\tviewY = y;\n\t\t}\n\t\taddon( N, dtypeX, viewX, strideX, dtypeY, viewY, strideY );\n\t\treturn y;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar resolve = require( './../../../base/dtype-resolve-enum' );\nvar reinterpretComplex64 = require( './../../../base/reinterpret-complex64' );\nvar reinterpretComplex128 = require( './../../../base/reinterpret-complex128' );\nvar offsetView = require( './../../../base/offset-view' );\nvar minViewBufferIndex = require( './../../../base/min-view-buffer-index' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolve( 'complex64' );\nvar COMPLEX128 = resolve( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a unary function to an input strided array using alternative indexing semantics.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **offsetX**: starting `x` index.\n* - **dtypeY**: `y` data type.\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n* - **offsetY**: starting `y` index.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, dtypeY, y, strideY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type (enumeration constant).\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **dtypeY**: `y` data type (enumeration constant).\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY )\n* ```\n*\n* where\n*\n* - **N**: number of indexed elements.\n* - **dtypeX**: `x` data type.\n* - **x**: input array.\n* - **strideX**: `x` stride length.\n* - **offsetX**: starting `x` index.\n* - **dtypeY**: `y` data type.\n* - **y**: output array.\n* - **strideY**: `y` stride length.\n* - **offsetY**: starting `y` index.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* function addon( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 0, 'generic', [ 0, 0 ], 1, 0 );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - `x` data type\n\t* @param {Collection} x - input array\n\t* @param {integer} strideX - `x` stride length\n\t* @param {NonNegativeInteger} offsetX - starting `x` index\n\t* @param {*} dtypeY - `y` data type\n\t* @param {Collection} y - destination array\n\t* @param {integer} strideY - `y` stride length\n\t* @param {NonNegativeInteger} offsetY - starting `y` index\n\t* @throws {TypeError} fifth argument must be a nonnegative integer\n\t* @throws {TypeError} ninth argument must be a nonnegative integer\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {Collection} `y`\n\t*/\n\tfunction dispatcher( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ) { // eslint-disable-line max-len\n\t\tvar viewX;\n\t\tvar viewY;\n\n\t\t// WARNING: we assume that, if we're provided something resembling a typed array, we're provided a typed array; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif ( !isTypedArrayLike( x ) || !isTypedArrayLike( y ) ) {\n\t\t\tfallback( N, dtypeX, x, strideX, offsetX, dtypeY, y, strideY, offsetY ); // eslint-disable-line max-len\n\t\t\treturn y;\n\t\t}\n\t\tdtypeX = resolve( dtypeX );\n\t\tdtypeY = resolve( dtypeY );\n\t\tif ( dtypeX === null || dtypeY === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetX ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Input array offset must be a nonnegative integer. Value: `%s`.', offsetX ) );\n\t\t}\n\t\tif ( !isNonNegativeInteger( offsetY ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.', offsetY ) );\n\t\t}\n\t\toffsetX = minViewBufferIndex( N, strideX, offsetX );\n\t\toffsetY = minViewBufferIndex( N, strideY, offsetY );\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( x, offsetX );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( x, offsetX );\n\t\t} else {\n\t\t\tviewX = offsetView( x, offsetX );\n\t\t}\n\t\tif ( dtypeY === COMPLEX64 ) {\n\t\t\tviewY = reinterpretComplex64( y, offsetY );\n\t\t} else if ( dtypeY === COMPLEX128 ) {\n\t\t\tviewY = reinterpretComplex128( y, offsetY );\n\t\t} else {\n\t\t\tviewY = offsetView( y, offsetY );\n\t\t}\n\t\taddon( N, dtypeX, viewX, strideX, dtypeY, viewY, strideY );\n\t\treturn y;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Dispatch to a native add-on applying a unary function to an input strided array.\n*\n* @module @stdlib/strided/base/unary-addon-dispatch\n*\n* @example\n* var dispatch = require( '@stdlib/strided/base/unary-addon-dispatch' );\n*\n* function addon( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( N, dtypeX, x, strideX, dtypeY, y, strideY ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with strided array arguments:\n* f( 2, 'generic', [ 1, 2 ], 1, 'generic', [ 0, 0 ], 1 );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unaryBy( [ x, y ], shape, strides, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction unaryBy( arrays, shape, strides, fcn, clbk, thisArg ) {\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar v;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, x[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\ty[ iy ] = fcn( v );\n\t\t}\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function yset( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unaryBy( [ x, y ], shape, strides, [ xget, yset ], abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction unaryBy( arrays, shape, strides, accessors, fcn, clbk, thisArg ) {\n\tvar xget;\n\tvar yset;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar v;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tif ( sx < 0 ) {\n\t\tix = (1-N) * sx;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( sy < 0 ) {\n\t\tiy = (1-N) * sy;\n\t} else {\n\t\tiy = 0;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\txget = accessors[ 0 ];\n\tyset = accessors[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, xget( x, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tyset( y, iy, fcn( v ) );\n\t\t}\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './unary.js' );\nvar accessors = require( './accessors.js' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unaryBy( [ x, y ], shape, strides, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction unaryBy( arrays, shape, strides, fcn, clbk ) {\n\tvar thisArg;\n\tvar xget;\n\tvar yset;\n\tvar x;\n\tvar y;\n\n\tif ( arguments.length > 5 ) {\n\t\tthisArg = arguments[ 5 ];\n\t}\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, [ xget, yset ], fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unaryBy( [ x, y ], shape, strides, offsets, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction unaryBy( arrays, shape, strides, offsets, fcn, clbk, thisArg ) {\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar v;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, x[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\ty[ iy ] = fcn( v );\n\t\t}\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Array} accessors - array-like object containing accessors for the input and output arrays\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v;\n* }\n*\n* function xget( buf, idx ) {\n* return buf[ idx ] * 2.0;\n* }\n*\n* function yset( buf, idx, value ) {\n* buf[ idx ] = value;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unaryBy( [ x, y ], shape, strides, offsets, [ xget, yset ], abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction unaryBy( arrays, shape, strides, offsets, accessors, fcn, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar xget;\n\tvar yset;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar x;\n\tvar y;\n\tvar N;\n\tvar v;\n\tvar i;\n\n\tN = shape[ 0 ];\n\tif ( N <= 0 ) {\n\t\treturn;\n\t}\n\tix = offsets[ 0 ];\n\tiy = offsets[ 1 ];\n\tsx = strides[ 0 ];\n\tsy = strides[ 1 ];\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\txget = accessors[ 0 ];\n\tyset = accessors[ 1 ];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = clbk.call( thisArg, xget( x, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tyset( y, iy, fcn( v ) );\n\t\t}\n\t\tix += sx;\n\t\tiy += sy;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar dtype = require( '@stdlib/array/dtype' );\nvar strided = require( './unary.ndarray.js' );\nvar accessors = require( './accessors.ndarray.js' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a strided input array according to a callback function and assigns results to a strided output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {NonNegativeIntegerArray} shape - array-like object containing a single element, the number of indexed elements\n* @param {IntegerArray} strides - array-like object containing the stride lengths for the input and output arrays\n* @param {NonNegativeIntegerArray} offsets - array-like object containing the starting indices (i.e., index offsets) for the input and output arrays\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unaryBy( [ x, y ], shape, strides, offsets, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\nfunction unaryBy( arrays, shape, strides, offsets, fcn, clbk ) {\n\tvar thisArg;\n\tvar xget;\n\tvar yset;\n\tvar x;\n\tvar y;\n\n\tif ( arguments.length > 6 ) {\n\t\tthisArg = arguments[ 6 ];\n\t}\n\tx = arrays[ 0 ];\n\tif ( isAccessorArray( x ) ) {\n\t\txget = accessorGetter( dtype( x ) );\n\t}\n\ty = arrays[ 1 ];\n\tif ( isAccessorArray( y ) ) {\n\t\tyset = accessorSetter( dtype( y ) );\n\t}\n\tif ( xget || yset ) {\n\t\txget = xget || getter( dtype( x ) );\n\t\tyset = yset || setter( dtype( y ) );\n\t\treturn accessors( arrays, shape, strides, offsets, [ xget, yset ], fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t}\n\treturn strided( arrays, shape, strides, offsets, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to each element retrieved from a strided input array according to a callback function and assign results to a strided output array.\n*\n* @module @stdlib/strided/base/unary-by\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var unaryBy = require( '@stdlib/strided/base/unary-by' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n*\n* unaryBy( [ x, y ], shape, strides, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*\n* @example\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var unaryBy = require( '@stdlib/strided/base/unary-by' );\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\n* var y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n*\n* var shape = [ x.length ];\n* var strides = [ 1, 1 ];\n* var offsets = [ 0, 0 ];\n*\n* unaryBy.ndarray( [ x, y ], shape, strides, offsets, abs, accessor );\n*\n* console.log( y );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar safeCasts = require( '@stdlib/ndarray/safe-casts' );\nvar resolveEnum = require( './../../../base/dtype-resolve-enum' );\nvar resolveStr = require( './../../../base/dtype-resolve-str' );\nvar format = require( '@stdlib/string/format' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns the intersection of two sorted lists.\n*\n* @private\n* @param {ArrayLikeObject} list1 - first sorted list\n* @param {ArrayLikeObject} list2 - second sorted list\n* @returns {ArrayLikeObject} result\n*\n* @example\n* var list1 = [ 'a', 'b', 'c', 'd' ];\n* var list2 = [ 'b', 'd', 'e' ];\n*\n* var out = intersection( list1, list2 );\n* // returns [ 'b', 'd' ]\n*/\nfunction intersection( list1, list2 ) {\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tM = list1.length;\n\tN = list2.length;\n\n\tout = [];\n\tk = 0;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tif ( k >= N ) {\n\t\t\tbreak;\n\t\t}\n\t\tv = list1[ i ];\n\t\tfor ( j = k; j < N; j++ ) {\n\t\t\tif ( v === list2[ j ] ) {\n\t\t\t\tk = j + 1;\n\t\t\t\tout.push( v );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n/**\n* Resolves a list of data types to data type strings.\n*\n* @private\n* @param {ArrayLikeObject} dtypes - list of data types\n* @returns {(StringArray|Error)} data type strings (or an error)\n*\n* @example\n* var out = resolve( [ 1, 2, 3 ] );\n* // returns [...]\n*/\nfunction resolve( dtypes ) {\n\tvar out;\n\tvar dt;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tdt = resolveStr( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Must provide recognized data types. Unable to resolve a data type string. Value: `%s`.', dtypes[ i ] ) );\n\t\t}\n\t\tout.push( dt );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a list of unary interface signatures from strided array data types.\n*\n* ## Notes\n*\n* - The function returns a strided array having a stride length of `2` (i.e., every `2` elements define a unary interface signature).\n* - For each signature (i.e., set of two consecutive non-overlapping strided array elements), the first element is the input data type and the second element is the return data type.\n* - All signatures follow type promotion rules.\n*\n* @param {Array} dtypes1 - list of supported data types for the first argument\n* @param {Array} dtypes2 - list of supported data types for the output argument\n* @param {Options} [options] - options\n* @param {boolean} [options.enums=false] - boolean flag indicating whether to return signatures as a list of enumeration constants\n* @throws {TypeError} must provide recognized data types\n* @returns {Array} strided array containing unary interface signatures\n*\n* @example\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes );\n* // e.g., returns [ 'float32', 'float32', ... ]\n*/\nfunction signatures( dtypes1, dtypes2, options ) {\n\tvar casts;\n\tvar opts;\n\tvar tmp;\n\tvar out;\n\tvar dt1;\n\tvar dt2;\n\tvar t1;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 2 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Resolve the list of provided data types to data type strings:\n\tdt1 = resolve( dtypes1 );\n\tif ( dt1 instanceof Error ) {\n\t\tthrow dt1;\n\t}\n\tif ( dtypes2 === dtypes1 ) { // don't do work if we don't need to\n\t\tdt2 = dt1;\n\t} else {\n\t\tdt2 = resolve( dtypes2 );\n\t\tif ( dt2 instanceof Error ) {\n\t\t\tthrow dt2;\n\t\t}\n\t}\n\t// Sort the list of return dtypes:\n\tdt2.sort();\n\n\t// Generate the list of signatures...\n\tM = dt1.length;\n\tout = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tt1 = dt1[ i ];\n\n\t\t// Resolve the list of safe casts for the input dtype:\n\t\tcasts = safeCasts( t1 );\n\t\tif ( casts === null ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Remove safe casts which are not among the supported output dtypes:\n\t\tcasts = intersection( dt2, casts.sort() );\n\n\t\t// Generate signatures for allowed casts...\n\t\tfor ( j = 0; j < casts.length; j++ ) {\n\t\t\tout.push( t1, casts[ j ] );\n\t\t}\n\t}\n\tif ( opts.enums ) {\n\t\ttmp = [];\n\t\tfor ( i = 0; i < out.length; i++ ) {\n\t\t\ttmp.push( resolveEnum( out[ i ] ) );\n\t\t}\n\t\tout = tmp;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = signatures;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a list of unary interface signatures from strided array data types.\n*\n* @module @stdlib/strided/base/unary-dtype-signatures\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/unary-dtype-signatures' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes );\n* // e.g., returns [ 'float32', 'float32', ... ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar resolve = require( './../../../base/dtype-resolve-str' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar wrap = require( '@stdlib/complex/base/cast-return' );\n\n\n// VARIABLES //\n\nvar C64 = 'complex64';\nvar C128 = 'complex128';\nvar CTORS = {\n\t'complex64': Complex64,\n\t'complex128': Complex128\n};\n\n\n// FUNCTIONS //\n\n/**\n* Resolves a callback based on provided dtypes.\n*\n* @private\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {string} t1 - dtype for input argument\n* @param {string} t2 - dtype for return value\n* @returns {Function} callback\n*/\nfunction resolveCallback( table, t1, t2 ) {\n\t// Signature: ?_z\n\tif ( t2 === C128 ) {\n\t\t// c_z or z_z\n\t\tif ( t1 === C64 || t1 === C128 ) {\n\t\t\t// Always perform computation in higher precision:\n\t\t\treturn table[ C128 ];\n\t\t}\n\t\t// d_z (cast the double-precision return value from `d_d` to a complex number)\n\t\treturn wrap( table.default, 1, CTORS[ t2 ] );\n\t}\n\t// Signature: ?_c\n\tif ( t2 === C64 ) {\n\t\t// c_c\n\t\tif ( t1 === C64 ) {\n\t\t\treturn table[ C64 ];\n\t\t}\n\t\t// z_c\n\t\tif ( t1 === C128 ) {\n\t\t\t// Always perform the computation in higher precision:\n\t\t\treturn table[ C128 ];\n\t\t}\n\t\t// d_c (cast the double-precision return value from `d_d` to a complex number)\n\t\treturn wrap( table.default, 1, CTORS[ t2 ] );\n\t}\n\t// Signature: ?_o\n\tif ( t2 === 'generic' ) {\n\t\t// z_o\n\t\tif ( t1 === C128 ) {\n\t\t\treturn table[ C128 ]; // Signature: z_o_as_z_z\n\t\t}\n\t\t// c_o\n\t\tif ( t1 === C64 ) {\n\t\t\treturn table[ C64 ]; // Signature: c_o_as_c_c\n\t\t}\n\t\t// d_o\n\t\treturn table.default; // Signature: d_o_as_d_d\n\t}\n\treturn table.default;\n}\n\n\n// MAIN //\n\n/**\n* Assigns callbacks to unary interfaces according to type promotion rules.\n*\n* ## Notes\n*\n* - The function assumes that the provided signature array has the following properties:\n*\n* - a strided array having a stride length of `2` (i.e., every `2` elements define a unary interface signature).\n* - for each signature (i.e., set of two consecutive non-overlapping strided array elements), the first element is the input data type and the second element is the return data type.\n* - all signatures follow type promotion rules.\n*\n* - Based on type promotion rules, we can simply use the callback for `float64` (i.e., the assumed \"default\") for all interfaces not involving complex numbers, even for `float32`, as we shouldn't need to explicitly downcast strided array values. The only time we need to return `float32` values is when input arrays are already `float32` or of a type which can be safely represented in `float32` without concern for truncation.\n*\n* @param {Object} table - callback table\n* @param {Function} table.default - default callback\n* @param {Function} table.complex64 - callback for single-precision complex floating-point numbers\n* @param {Function} table.complex128 - callback for double-precision complex floating-point numbers\n* @param {ArrayLikeObject} signatures - strided array containing unary interface signatures\n* @returns {Array} list of callbacks\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/unary-dtype-signatures' );\n* var identity = require( '@stdlib/math/base/special/identity' );\n* var cidentity = require( '@stdlib/math/base/special/cidentity' );\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes );\n* // returns [...]\n*\n* var table = {\n* 'default': identity,\n* 'complex64': cidentityf,\n* 'complex128': cidentity\n* };\n*\n* var list = callbacks( table, sigs );\n* // returns [...]\n*/\nfunction callbacks( table, signatures ) {\n\tvar out;\n\tvar t1;\n\tvar t2;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < signatures.length; i += 2 ) {\n\t\tt1 = resolve( signatures[ i ] );\n\t\tt2 = resolve( signatures[ i+1 ] );\n\t\tout.push( resolveCallback( table, t1, t2 ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = callbacks;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign callbacks to unary interfaces according to type promotion rules.\n*\n* @module @stdlib/strided/base/unary-signature-callbacks\n*\n* @example\n* var signatures = require( '@stdlib/strided/base/unary-dtype-signatures' );\n* var identity = require( '@stdlib/math/base/special/identity' );\n* var cidentity = require( '@stdlib/math/base/special/cidentity' );\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\n* var callbacks = require( '@stdlib/strided/base/unary-signature-callbacks' );\n*\n* var dtypes = [\n* 'float64',\n* 'float32',\n* 'int32',\n* 'uint8'\n* ];\n*\n* var sigs = signatures( dtypes, dtypes );\n* // returns [...]\n*\n* var table = {\n* 'default': identity,\n* 'complex64': cidentityf,\n* 'complex128': cidentity\n* };\n*\n* var list = callbacks( table, sigs );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision complex floating-point strided input array and assigns results to a double-precision complex floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Complex128Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Complex128Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {Function} fcn - unary function to apply\n* @returns {Complex128Array} `y`\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n* var Complex128 = require( '@stdlib/complex/float64' );\n*\n* function scale( x ) {\n* var re = real( x );\n* var im = imag( x );\n* return new Complex128( re*10.0, im*10.0 );\n* }\n*\n* var x = new Complex128Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0 ] );\n* var y = new Complex128Array( x.length );\n*\n* zmap( x.length, x, 1, y, 1, scale );\n*\n* var v = y.get( 0 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 10.0\n*/\nfunction zmap( N, x, strideX, y, strideY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty.set( fcn( x.get( ix ) ), iy );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = zmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to a double-precision complex floating-point strided input array and assigns results to a double-precision complex floating-point strided output array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {Complex128Array} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Complex128Array} y - destination array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @param {Function} fcn - unary function to apply\n* @returns {Complex128Array} `y`\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n* var Complex128 = require( '@stdlib/complex/float64' );\n*\n* function scale( x ) {\n* var re = real( x );\n* var im = imag( x );\n* return new Complex128( re*10.0, im*10.0 );\n* }\n*\n* var x = new Complex128Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0 ] );\n* var y = new Complex128Array( x.length );\n*\n* zmap( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* var v = y.get( 0 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 10.0\n*/\nfunction zmap( N, x, strideX, offsetX, y, strideY, offsetY, fcn ) {\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty.set( fcn( x.get( ix ) ), iy );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = zmap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to a double-precision floating-point strided input array and assign results to a double-precision floating-point strided output array.\n*\n* @module @stdlib/strided/base/zmap\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n* var Complex128 = require( '@stdlib/complex/float64' );\n* var zmap = require( '@stdlib/strided/base/zmap' );\n*\n* function scale( x ) {\n* var re = real( x );\n* var im = imag( x );\n* return new Complex128( re*10.0, im*10.0 );\n* }\n*\n* var x = new Complex128Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0 ] );\n* var y = new Complex128Array( x.length );\n*\n* zmap( x.length, x, 1, y, 1, scale );\n*\n* var v = y.get( 0 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 10.0\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n* var Complex128 = require( '@stdlib/complex/float64' );\n* var zmap = require( '@stdlib/strided/base/zmap' );\n*\n* function scale( x ) {\n* var re = real( x );\n* var im = imag( x );\n* return new Complex128( re*10.0, im*10.0 );\n* }\n*\n* var x = new Complex128Array( [ 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0 ] );\n* var y = new Complex128Array( x.length );\n*\n* zmap.ndarray( x.length, x, 1, 0, y, 1, 0, scale );\n*\n* var v = y.get( 0 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 10.0\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar ndarray = require( './ndarray.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: function-object\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name binary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/binary}\n*/\nsetReadOnly( ns, 'binary', require( './../../base/binary' ) );\n\n/**\n* @name binaryAddonDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/binary-addon-dispatch}\n*/\nsetReadOnly( ns, 'binaryAddonDispatch', require( './../../base/binary-addon-dispatch' ) );\n\n/**\n* @name binaryDtypeSignatures\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/binary-dtype-signatures}\n*/\nsetReadOnly( ns, 'binaryDtypeSignatures', require( './../../base/binary-dtype-signatures' ) );\n\n/**\n* @name binarySignatureCallbacks\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/binary-signature-callbacks}\n*/\nsetReadOnly( ns, 'binarySignatureCallbacks', require( './../../base/binary-signature-callbacks' ) );\n\n/**\n* @name cmap\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/cmap}\n*/\nsetReadOnly( ns, 'cmap', require( './../../base/cmap' ) );\n\n/**\n* @name dmap\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/dmap}\n*/\nsetReadOnly( ns, 'dmap', require( './../../base/dmap' ) );\n\n/**\n* @name dmap2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/dmap2}\n*/\nsetReadOnly( ns, 'dmap2', require( './../../base/dmap2' ) );\n\n/**\n* @name dmskmap\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/dmskmap}\n*/\nsetReadOnly( ns, 'dmskmap', require( './../../base/dmskmap' ) );\n\n/**\n* @name dmskmap2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/dmskmap2}\n*/\nsetReadOnly( ns, 'dmskmap2', require( './../../base/dmskmap2' ) );\n\n/**\n* @name dtypeEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/dtype-enum2str}\n*/\nsetReadOnly( ns, 'dtypeEnum2Str', require( './../../base/dtype-enum2str' ) );\n\n/**\n* @name dtypeResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/dtype-resolve-enum}\n*/\nsetReadOnly( ns, 'dtypeResolveEnum', require( './../../base/dtype-resolve-enum' ) );\n\n/**\n* @name dtypeResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/dtype-resolve-str}\n*/\nsetReadOnly( ns, 'dtypeResolveStr', require( './../../base/dtype-resolve-str' ) );\n\n/**\n* @name dtypeStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/dtype-str2enum}\n*/\nsetReadOnly( ns, 'dtypeStr2Enum', require( './../../base/dtype-str2enum' ) );\n\n/**\n* @name mapBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/map-by}\n*/\nsetReadOnly( ns, 'mapBy', require( './../../base/map-by' ) );\n\n/**\n* @name mapBy2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/map-by2}\n*/\nsetReadOnly( ns, 'mapBy2', require( './../../base/map-by2' ) );\n\n/**\n* @name maxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/max-view-buffer-index}\n*/\nsetReadOnly( ns, 'maxViewBufferIndex', require( './../../base/max-view-buffer-index' ) );\n\n/**\n* @name metaDataProps\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/meta-data-props}\n*/\nsetReadOnly( ns, 'metaDataProps', require( './../../base/meta-data-props' ) );\n\n/**\n* @name minViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/min-view-buffer-index}\n*/\nsetReadOnly( ns, 'minViewBufferIndex', require( './../../base/min-view-buffer-index' ) );\n\n/**\n* @name mskunary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/mskunary}\n*/\nsetReadOnly( ns, 'mskunary', require( './../../base/mskunary' ) );\n\n/**\n* @name mskunaryAddonDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/mskunary-addon-dispatch}\n*/\nsetReadOnly( ns, 'mskunaryAddonDispatch', require( './../../base/mskunary-addon-dispatch' ) );\n\n/**\n* @name mskunaryDtypeSignatures\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/mskunary-dtype-signatures}\n*/\nsetReadOnly( ns, 'mskunaryDtypeSignatures', require( './../../base/mskunary-dtype-signatures' ) );\n\n/**\n* @name mskunarySignatureCallbacks\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/mskunary-signature-callbacks}\n*/\nsetReadOnly( ns, 'mskunarySignatureCallbacks', require( './../../base/mskunary-signature-callbacks' ) );\n\n/**\n* @name nullary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/nullary}\n*/\nsetReadOnly( ns, 'nullary', require( './../../base/nullary' ) );\n\n/**\n* @name nullaryAddonDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/nullary-addon-dispatch}\n*/\nsetReadOnly( ns, 'nullaryAddonDispatch', require( './../../base/nullary-addon-dispatch' ) );\n\n/**\n* @name offsetView\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/offset-view}\n*/\nsetReadOnly( ns, 'offsetView', require( './../../base/offset-view' ) );\n\n/**\n* @name quaternary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/quaternary}\n*/\nsetReadOnly( ns, 'quaternary', require( './../../base/quaternary' ) );\n\n/**\n* @name quinary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/quinary}\n*/\nsetReadOnly( ns, 'quinary', require( './../../base/quinary' ) );\n\n/**\n* @name reinterpretComplex64\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/reinterpret-complex64}\n*/\nsetReadOnly( ns, 'reinterpretComplex64', require( './../../base/reinterpret-complex64' ) );\n\n/**\n* @name reinterpretComplex128\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/reinterpret-complex128}\n*/\nsetReadOnly( ns, 'reinterpretComplex128', require( './../../base/reinterpret-complex128' ) );\n\n/**\n* @name smap\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/smap}\n*/\nsetReadOnly( ns, 'smap', require( './../../base/smap' ) );\n\n/**\n* @name smap2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/smap2}\n*/\nsetReadOnly( ns, 'smap2', require( './../../base/smap2' ) );\n\n/**\n* @name smskmap\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/smskmap}\n*/\nsetReadOnly( ns, 'smskmap', require( './../../base/smskmap' ) );\n\n/**\n* @name smskmap2\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/smskmap2}\n*/\nsetReadOnly( ns, 'smskmap2', require( './../../base/smskmap2' ) );\n\n/**\n* @name ternary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/ternary}\n*/\nsetReadOnly( ns, 'ternary', require( './../../base/ternary' ) );\n\n/**\n* @name unary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/unary}\n*/\nsetReadOnly( ns, 'unary', require( './../../base/unary' ) );\n\n/**\n* @name unaryAddonDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/unary-addon-dispatch}\n*/\nsetReadOnly( ns, 'unaryAddonDispatch', require( './../../base/unary-addon-dispatch' ) );\n\n/**\n* @name unaryBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/unary-by}\n*/\nsetReadOnly( ns, 'unaryBy', require( './../../base/unary-by' ) );\n\n/**\n* @name unaryDtypeSignatures\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/unary-dtype-signatures}\n*/\nsetReadOnly( ns, 'unaryDtypeSignatures', require( './../../base/unary-dtype-signatures' ) );\n\n/**\n* @name unarySignatureCallbacks\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/unary-signature-callbacks}\n*/\nsetReadOnly( ns, 'unarySignatureCallbacks', require( './../../base/unary-signature-callbacks' ) );\n\n/**\n* @name zmap\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/base/zmap}\n*/\nsetReadOnly( ns, 'zmap', require( './../../base/zmap' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the first row index at which a given one-dimensional array of types can be found in a two-dimensional reference array of types (or `-1` if not found).\n*\n* ## Notes\n*\n* - The intended use case for this function is for type dispatch (i.e., given a set of array data types, find a matching interface according the interface's accepted array data types).\n* - The function assumes that `x` is stored in row-major order.\n* - The function assumes that the number of indexed elements in `y` equals the number of columns in `x`.\n* - The function returns a row index. To convert to a linear index, multiply `strideX1` by the return value.\n*\n* @private\n* @param {NonNegativeInteger} N - number of rows in `x` (size of first dimension)\n* @param {NonNegativeInteger} M - number of columns in `x` (size of second dimension)\n* @param {ArrayLikeObject} x - input two-dimensional reference array\n* @param {integer} strideX1 - `x` stride length along first dimension\n* @param {integer} strideX2 - `x` stride length along second dimension\n* @param {NonNegativeInteger} offsetX - `x` starting index\n* @param {ArrayLikeObject} y - search array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - `y` starting index\n* @returns {integer} row index (if found) and `-1` otherwise\n*\n* @example\n* // Define a reference array to search:\n* var types = [\n* 'float64', 'float64', 'float64',\n* 'float32', 'float32', 'float32',\n* 'uint32', 'uint32', 'float64',\n* 'int32', 'int32', 'float64',\n* 'uint16', 'uint16', 'float64',\n* 'int16', 'int16', 'float64',\n* 'uint8', 'uint8', 'float64',\n* 'int8', 'int8', 'float64'\n* ];\n*\n* // Define reference array dimensions:\n* var N = 8; // rows\n* var M = 3; // columns\n*\n* // Define a search array:\n* y1 = [\n* 'float32', 'float32', 'float32',\n* ];\n*\n* // Find the list of types:\n* var r1 = indexOfTypes( N, M, types, M, 1, 0, y1, 1, 0 );\n* // returns 1\n*\n// Define a search array:\n* y2 = [\n* 'float32', 'float32', 'float64',\n* ];\n*\n* // Find the list of types:\n* var r2 = indexOfTypes( N, M, types, M, 1, 0, y2, 1, 0 );\n* // returns -1\n*/\nfunction indexOfTypes( N, M, x, strideX1, strideX2, offsetX, y, strideY, offsetY ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tvar j;\n\n\t// Search for the first row which matches `y`...\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tiy = offsetY;\n\t\tfor ( j = 0; j < M; j++ ) {\n\t\t\tif ( x[ ix+(j*strideX2) ] !== y[ iy ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tiy += strideY;\n\t\t}\n\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\tif ( j === M ) {\n\t\t\treturn i;\n\t\t}\n\t\tix += strideX1;\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nmodule.exports = indexOfTypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isPositiveInteger = require( '@stdlib/assert/is-positive-integer' );\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isFunctionArray = require( '@stdlib/assert/is-function-array' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\nvar abs = require( '@stdlib/math/base/special/abs' );\nvar indexOfTypes = require( './index_of_types.js' );\n\n\n// MAIN //\n\n/**\n* Returns a strided array function interface which performs multiple dispatch.\n*\n* @param {(FunctionArray|Function)} fcns - list of strided array functions\n* @param {Collection} types - one-dimensional list of strided array argument data types\n* @param {(Collection|null)} data - strided array function data (e.g., callbacks)\n* @param {PositiveInteger} nargs - total number of strided array function interface arguments (including data types, strides, and offsets)\n* @param {NonNegativeInteger} nin - number of input strided arrays\n* @param {NonNegativeInteger} nout - number of output strided arrays\n* @throws {TypeError} first argument must be either a function or an array of functions\n* @throws {TypeError} second argument must be an an array-like object\n* @throws {TypeError} third argument must be an array-like object or `null`\n* @throws {Error} third and first arguments must have the same number of elements\n* @throws {TypeError} fourth argument must be a positive integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} sixth argument must be a nonnegative integer\n* @throws {Error} fourth argument must be compatible with the specified number of input and output arrays\n* @throws {Error} number of types must match the number of functions times the total number of array arguments for each function\n* @throws {Error} interface must accept at least one strided input and/or output array\n* @returns {Function} strided array function interface\n*\n* @example\n* var unary = require( '@stdlib/strided/base/unary' );\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var strided = dispatch( unary, types, data, 7, 1, 1 );\n*\n* // ...\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* strided( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dispatch( fcns, types, data, nargs, nin, nout ) {\n\tvar strideArgs;\n\tvar hasOffsets;\n\tvar narrays;\n\tvar nfcns;\n\tvar iout;\n\tvar fcn;\n\n\tif ( isFunction( fcns ) ) {\n\t\tfcn = fcns;\n\t} else if ( !isFunctionArray( fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a function or an array of functions. Value: `%s`.', fcns ) );\n\t}\n\tif ( !isCollection( types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', types ) );\n\t}\n\tif ( !isCollection( data ) && data !== null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object or null. Value: `%s`.', data ) );\n\t}\n\tif ( !isPositiveInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a positive integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tnarrays = nin + nout;\n\tif ( narrays === 0 ) {\n\t\tthrow new Error( 'invalid arguments. Interface must accept at least one strided input and/or output array. Based on the provided arguments, `nin+nout` equals `0`.' );\n\t}\n\tif ( fcn ) {\n\t\tnfcns = types.length / narrays;\n\t\tif ( !isInteger( nfcns ) ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.' );\n\t\t}\n\t} else {\n\t\tnfcns = fcns.length;\n\t\tif ( types.length !== nfcns*narrays ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each strided input and output array for each provided strided array function.' );\n\t\t}\n\t}\n\tif ( data && data.length !== nfcns ) {\n\t\tthrow new Error( 'invalid argument. The third argument must have the same number of elements as the first argument.' );\n\t}\n\t// Determine whether the strided array interface includes offsets:\n\tif ( (narrays*3)+1 === nargs ) {\n\t\thasOffsets = false;\n\t} else if ( (narrays*4)+1 === nargs ) {\n\t\thasOffsets = true;\n\t} else {\n\t\tthrow new Error( 'invalid argument. Fourth argument is incompatible with the number of strided input and output arrays.' );\n\t}\n\t// Determine the \"stride\" for accessing related arguments:\n\tif ( hasOffsets ) {\n\t\tstrideArgs = 4;\n\t} else {\n\t\tstrideArgs = 3;\n\t}\n\t// Compute the index of the first output strided array argument:\n\tiout = ( nin*strideArgs ) + 1;\n\n\treturn dispatcher;\n\n\t/**\n\t* Strided array function interface which performs multiple dispatch.\n\t*\n\t* @private\n\t* @param {integer} N - number of indexed elements\n\t* @param {*} dtypeX - data type for `x`\n\t* @param {Collection} x - strided array\n\t* @param {integer} strideX - index increment for `x`\n\t* @param {...(Collection|integer|NonNegativeInteger)} args - array arguments (data types, arrays, strides, and offsets)\n\t* @throws {Error} insufficient arguments\n\t* @throws {Error} too many arguments\n\t* @throws {TypeError} first argument must be an integer\n\t* @throws {TypeError} input array strides must be integers\n\t* @throws {TypeError} output array strides must be integers\n\t* @throws {TypeError} input array offsets must be nonnegative integers\n\t* @throws {TypeError} output array offsets must be nonnegative integers\n\t* @throws {TypeError} input array arguments must be array-like objects\n\t* @throws {TypeError} output array arguments must be array-like objects\n\t* @throws {RangeError} input array arguments must have sufficient elements based on the associated stride and the number of indexed elements\n\t* @throws {RangeError} output array arguments must have sufficient elements based on the associated stride and the number of indexed elements\n\t* @throws {TypeError} unable to resolve a strided array function supporting the provided array argument data types\n\t* @returns {(Collection|Array|void)} destination array(s)\n\t*/\n\tfunction dispatcher() {\n\t\tvar strides;\n\t\tvar offsets;\n\t\tvar arrays;\n\t\tvar dtypes;\n\t\tvar shape;\n\t\tvar argc;\n\t\tvar idx;\n\t\tvar N;\n\t\tvar v;\n\t\tvar f;\n\t\tvar i;\n\t\tvar j;\n\n\t\targc = arguments.length;\n\t\tif ( argc !== nargs ) {\n\t\t\tif ( argc < nargs ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Insufficient arguments.' );\n\t\t\t}\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t\tN = arguments[ 0 ];\n\t\tif ( !isInteger( N ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', N ) );\n\t\t}\n\t\tshape = [ N ];\n\n\t\t// data types for both input and output strided arrays are every `strideArgs` arguments beginning from the second argument...\n\t\tdtypes = [];\n\t\tfor ( i = 1; i < nargs; i += strideArgs ) {\n\t\t\tdtypes.push( arguments[ i ] );\n\t\t}\n\n\t\t// Strides for both input and output strided arrays are every `strideArgs` arguments beginning from the fourth argument...\n\t\tstrides = [];\n\t\tfor ( i = 3; i < nargs; i += strideArgs ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isInteger( v ) ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array stride must be an integer. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array stride must be an integer. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tstrides.push( v );\n\t\t}\n\t\tif ( hasOffsets ) {\n\t\t\t// Offsets for both input and output strided arrays are every `strideArgs` arguments beginning from the fifth argument...\n\t\t\toffsets = [];\n\t\t\tfor ( i = 4; i < nargs; i += strideArgs ) {\n\t\t\t\tv = arguments[ i ];\n\t\t\t\tif ( !isNonNegativeInteger( v ) ) {\n\t\t\t\t\tif ( i < iout ) {\n\t\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array offset must be a nonnegative integer. Value: `%s`.', v ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array offset must be a nonnegative integer. Value: `%s`.', v ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\toffsets.push( v );\n\t\t\t}\n\t\t}\n\t\t// Input and output strided arrays are every `strideArgs` arguments beginning from the third argument...\n\t\tarrays = [];\n\t\tfor ( i = 2; i < nargs; i += strideArgs ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isCollection( v ) ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array must be an array-like object. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array must be an array-like object. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tj = (i-2) / strideArgs;\n\t\t\tif ( hasOffsets ) {\n\t\t\t\tidx = offsets[ j ] + ( (N-1)*strides[j] );\n\t\t\t\tif ( N > 0 && (idx < 0 || idx >= v.length) ) {\n\t\t\t\t\tif ( i < iout ) {\n\t\t\t\t\t\tthrow new RangeError( 'invalid argument. Input array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new RangeError( 'invalid argument. Output array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( (N-1)*abs(strides[j]) >= v.length ) {\n\t\t\t\tif ( i < iout ) {\n\t\t\t\t\tthrow new RangeError( 'invalid argument. Input array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new RangeError( 'invalid argument. Output array has insufficient elements based on the associated stride and the number of indexed elements.' );\n\t\t\t\t}\n\t\t\t}\n\t\t\tarrays.push( v );\n\t\t}\n\t\t// Resolve the strided array function satisfying the input array types:\n\t\tidx = indexOfTypes( nfcns, narrays, types, narrays, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\n\t\t// Check whether we were able to successfully resolve a strided array function:\n\t\tif ( idx < 0 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve a strided array function supporting the provided array argument data types.' );\n\t\t}\n\t\t// Retrieve the strided array function:\n\t\tif ( fcn ) {\n\t\t\tf = fcn;\n\t\t} else {\n\t\t\tf = fcns[ idx ];\n\t\t}\n\t\t// Evaluate the strided array function:\n\t\tif ( data ) {\n\t\t\tif ( hasOffsets ) {\n\t\t\t\tf( arrays, shape, strides, offsets, data[ idx ] );\n\t\t\t} else {\n\t\t\t\tf( arrays, shape, strides, data[ idx ] );\n\t\t\t}\n\t\t} else if ( hasOffsets ) {\n\t\t\tf( arrays, shape, strides, offsets );\n\t\t} else {\n\t\t\tf( arrays, shape, strides );\n\t\t}\n\t\tif ( nout === 1 ) {\n\t\t\treturn arrays[ narrays-1 ];\n\t\t}\n\t\tif ( nout === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\treturn arrays.slice( nin );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a strided array function interface which performs multiple dispatch.\n*\n* @module @stdlib/strided/dispatch\n*\n* @example\n* var dispatch = require( '@stdlib/strided/dispatch' );\n* var unary = require( '@stdlib/strided/base/unary' );\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var strided = dispatch( unary, types, data, 7, 1, 1 );\n*\n* // ...\n*\n* var x = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var y = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* strided( x.length, 'float64', x, 1, 'float64', y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: common, napi\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace strided\n*/\nvar strided = {};\n\n/**\n* @name base\n* @memberof strided\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/strided/base}\n*/\nsetReadOnly( strided, 'base', require( './../base' ) );\n\n/**\n* @name dispatch\n* @memberof strided\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/dispatch}\n*/\nsetReadOnly( strided, 'dispatch', require( './../dispatch' ) );\n\n/**\n* @name dtypes\n* @memberof strided\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/strided/dtypes}\n*/\nsetReadOnly( strided, 'dtypes', require( './../dtypes' ) );\n\n\n// EXPORTS //\n\nmodule.exports = strided;\n"], + "mappings": "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", + "names": ["require_binary", "__commonJSMin", "exports", "module", "binary", "arrays", "shape", "strides", "fcn", "sx", "sy", "sz", "ix", "iy", "iz", "x", "y", "z", "N", "i", "require_accessors", "__commonJSMin", "exports", "module", "binary", "arrays", "shape", "strides", "accessors", "fcn", "xget", "yget", "zset", "sx", "sy", "sz", "ix", "iy", "iz", "x", "y", "z", "N", "i", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "binary", "arrays", "shape", "strides", "fcn", "xget", "yget", "zset", "x", "y", "z", "require_binary_ndarray", "__commonJSMin", "exports", "module", "binary", "arrays", "shape", "strides", "offsets", "fcn", "sx", "sy", "sz", "ix", "iy", "iz", "x", "y", "z", "N", "i", "require_accessors_ndarray", "__commonJSMin", "exports", "module", "binary", "arrays", "shape", "strides", "offsets", "accessors", "fcn", "xget", "yget", "zset", "sx", "sy", "sz", "ix", "iy", "iz", "y", "z", "N", "i", "require_ndarray", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "binary", "arrays", "shape", "strides", "offsets", "fcn", "xget", "yget", "zset", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_enum", "__commonJSMin", "exports", "module", "ndtypes", "dt", "enumeration", "require_assign", "__commonJSMin", "exports", "module", "setReadOnly", "objectKeys", "assign", "target", "source", "keys", "k", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "enumeration", "assign", "require_main", "__commonJSMin", "exports", "module", "objectInverse", "enumeration", "hash", "enum2str", "dtype", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enumeration", "ENUM", "str2enum", "dtype", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "Float32Array", "reinterpret", "x", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "Float64Array", "reinterpret", "x", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isFunction", "isTypedArrayLike", "resolve", "reinterpretComplex64", "reinterpretComplex128", "format", "COMPLEX64", "COMPLEX128", "dispatch", "addon", "fallback", "dispatcher", "N", "dtypeX", "x", "strideX", "dtypeY", "y", "strideY", "dtypeZ", "z", "strideZ", "viewX", "viewY", "viewZ", "require_main", "__commonJSMin", "exports", "module", "offsetView", "x", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "minViewBufferIndex", "N", "stride", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ndarray", "__commonJSMin", "exports", "module", "isFunction", "isTypedArrayLike", "isNonNegativeInteger", "resolve", "reinterpretComplex64", "reinterpretComplex128", "offsetView", "minViewBufferIndex", "format", "COMPLEX64", "COMPLEX128", "dispatch", "addon", "fallback", "dispatcher", "N", "dtypeX", "x", "strideX", "offsetX", "dtypeY", "y", "strideY", "offsetY", "dtypeZ", "z", "strideZ", "offsetZ", "viewX", "viewY", "viewZ", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "promotionRules", "safeCasts", "resolveEnum", "resolveStr", "format", "intersection", "list1", "list2", "out", "M", "N", "v", "i", "j", "k", "resolve", "dtypes", "dt", "contains", "arr", "value", "signatures", "dtypes1", "dtypes2", "dtypes3", "options", "cache", "casts", "opts", "tmp", "dt1", "dt2", "dt3", "t1", "t2", "t3", "t4", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "resolve", "Complex64", "Complex128", "wrap", "C64", "C128", "CTORS", "resolveCallback", "table", "t1", "t2", "t3", "callbacks", "signatures", "out", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "cmap", "N", "x", "strideX", "y", "strideY", "fcn", "ix", "iy", "i", "require_ndarray", "__commonJSMin", "exports", "module", "cmap", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "fcn", "ix", "iy", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "dmap", "N", "x", "strideX", "y", "strideY", "fcn", "ix", "iy", "i", "require_ndarray", "__commonJSMin", "exports", "module", "dmap", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "fcn", "ix", "iy", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "dmap2", "N", "x", "strideX", "y", "strideY", "z", "strideZ", "fcn", "ix", "iy", "iz", "i", "require_ndarray", "__commonJSMin", "exports", "module", "dmap2", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "z", "strideZ", "offsetZ", "fcn", "ix", "iy", "iz", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "dmskmap", "N", "x", "strideX", "mask", "strideMask", "y", "strideY", "fcn", "ix", "im", "iy", "i", "require_ndarray", "__commonJSMin", "exports", "module", "dmskmap", "N", "x", "strideX", "offsetX", "mask", "strideMask", "offsetMask", "y", "strideY", "offsetY", "fcn", "ix", "im", "iy", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "dmskmap2", "N", "x", "strideX", "y", "strideY", "mask", "strideMask", "z", "strideZ", "fcn", "ix", "iy", "iz", "im", "i", "require_ndarray", "__commonJSMin", "exports", "module", "dmskmap2", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "mask", "strideMask", "offsetMask", "z", "strideZ", "offsetZ", "fcn", "ix", "iy", "iz", "im", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_map", "__commonJSMin", "exports", "module", "mapBy", "N", "x", "strideX", "y", "strideY", "fcn", "clbk", "thisArg", "ix", "iy", "v", "i", "require_accessors", "__commonJSMin", "exports", "module", "mapBy", "N", "x", "strideX", "xget", "y", "strideY", "yset", "fcn", "clbk", "thisArg", "ix", "iy", "v", "i", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "mapBy", "N", "x", "strideX", "y", "strideY", "fcn", "clbk", "thisArg", "xget", "yset", "require_map_ndarray", "__commonJSMin", "exports", "module", "mapBy", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "fcn", "clbk", "thisArg", "ix", "iy", "v", "i", "require_accessors_ndarray", "__commonJSMin", "exports", "module", "mapBy", "N", "x", "strideX", "offsetX", "xget", "y", "strideY", "offsetY", "yset", "fcn", "clbk", "thisArg", "ix", "iy", "v", "i", "require_ndarray", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "mapBy", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "fcn", "clbk", "thisArg", "xget", "yset", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_map", "__commonJSMin", "exports", "module", "mapBy2", "N", "x", "strideX", "y", "strideY", "z", "strideZ", "fcn", "clbk", "thisArg", "args", "o", "a", "v", "i", "require_accessors", "__commonJSMin", "exports", "module", "mapBy2", "N", "x", "strideX", "xget", "y", "strideY", "yget", "z", "strideZ", "zset", "fcn", "clbk", "thisArg", "args", "o", "a", "v", "i", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "mapBy2", "N", "x", "strideX", "y", "strideY", "z", "strideZ", "fcn", "clbk", "thisArg", "xget", "yget", "zset", "require_map_ndarray", "__commonJSMin", "exports", "module", "mapBy2", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "z", "strideZ", "offsetZ", "fcn", "clbk", "thisArg", "args", "o", "a", "v", "i", "require_accessors_ndarray", "__commonJSMin", "exports", "module", "mapBy2", "N", "x", "strideX", "offsetX", "xget", "y", "strideY", "offsetY", "yget", "z", "strideZ", "offsetZ", "zset", "fcn", "clbk", "thisArg", "args", "o", "a", "v", "i", "require_ndarray", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "mapBy2", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "z", "strideZ", "offsetZ", "fcn", "clbk", "thisArg", "xget", "yget", "zset", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "maxViewBufferIndex", "N", "stride", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "setReadOnlyAccessor", "dtypes2signatures", "setProps", "meta", "dtypes", "obj", "bool", "types", "require_lib", "__commonJSMin", "exports", "module", "main", "require_unary", "__commonJSMin", "exports", "module", "mskunary", "arrays", "shape", "strides", "fcn", "sx", "sm", "sy", "ix", "im", "iy", "x", "m", "y", "N", "i", "require_accessors", "__commonJSMin", "exports", "module", "mskunary", "arrays", "shape", "strides", "accessors", "fcn", "xget", "mget", "yset", "sx", "sm", "sy", "ix", "im", "iy", "x", "m", "y", "N", "i", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "mskunary", "arrays", "shape", "strides", "fcn", "xget", "mget", "yset", "x", "m", "y", "require_unary_ndarray", "__commonJSMin", "exports", "module", "mskunary", "arrays", "shape", "strides", "offsets", "fcn", "sx", "sm", "sy", "ix", "im", "iy", "x", "y", "N", "i", "require_accessors_ndarray", "__commonJSMin", "exports", "module", "mskunary", "arrays", "shape", "strides", "offsets", "accessors", "fcn", "xget", "mget", "yset", "sx", "sm", "sy", "ix", "im", "iy", "m", "y", "N", "i", "require_ndarray", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "mskunary", "arrays", "shape", "strides", "offsets", "fcn", "xget", "mget", "yset", "x", "m", "y", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "isFunction", "isTypedArrayLike", "resolve", "reinterpretComplex64", "reinterpretComplex128", "format", "COMPLEX64", "COMPLEX128", "dispatch", "addon", "fallback", "dispatcher", "N", "dtypeX", "x", "strideX", "dtypeMask", "mask", "strideMask", "dtypeY", "y", "strideY", "viewX", "viewY", "require_ndarray", "__commonJSMin", "exports", "module", "isFunction", "isTypedArrayLike", "isNonNegativeInteger", "resolve", "reinterpretComplex64", "reinterpretComplex128", "offsetView", "minViewBufferIndex", "format", "COMPLEX64", "COMPLEX128", "dispatch", "addon", "fallback", "dispatcher", "N", "dtypeX", "x", "strideX", "offsetX", "dtypeMask", "mask", "strideMask", "offsetMask", "dtypeY", "y", "strideY", "offsetY", "viewMask", "viewX", "viewY", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "safeCasts", "resolveEnum", "resolveStr", "format", "intersection", "list1", "list2", "out", "M", "N", "v", "i", "j", "k", "resolve", "dtypes", "dt", "signatures", "dtypes1", "dtypes2", "options", "casts", "opts", "tmp", "dt1", "dt2", "t1", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "resolve", "Complex64", "Complex128", "wrap", "C64", "C128", "CTORS", "resolveCallback", "table", "t1", "t2", "callbacks", "signatures", "out", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_nullary", "__commonJSMin", "exports", "module", "nullary", "arrays", "shape", "strides", "fcn", "sx", "ix", "x", "N", "i", "require_accessors", "__commonJSMin", "exports", "module", "nullary", "arrays", "shape", "strides", "accessors", "fcn", "xset", "sx", "ix", "x", "N", "i", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorSetter", "setter", "dtype", "strided", "accessors", "nullary", "arrays", "shape", "strides", "fcn", "xset", "x", "require_nullary_ndarray", "__commonJSMin", "exports", "module", "nullary", "arrays", "shape", "strides", "offsets", "fcn", "sx", "ix", "x", "N", "i", "require_accessors_ndarray", "__commonJSMin", "exports", "module", "nullary", "arrays", "shape", "strides", "offsets", "accessors", "fcn", "xset", "sx", "ix", "x", "N", "i", "require_ndarray", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorSetter", "setter", "dtype", "strided", "accessors", "nullary", "arrays", "shape", "strides", "offsets", "fcn", "xset", "x", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "isFunction", "isTypedArrayLike", "resolve", "reinterpretComplex64", "reinterpretComplex128", "format", "COMPLEX64", "COMPLEX128", "dispatch", "addon", "fallback", "dispatcher", "N", "dtypeX", "x", "strideX", "viewX", "require_ndarray", "__commonJSMin", "exports", "module", "isFunction", "isTypedArrayLike", "isNonNegativeInteger", "resolve", "reinterpretComplex64", "reinterpretComplex128", "offsetView", "minViewBufferIndex", "format", "COMPLEX64", "COMPLEX128", "dispatch", "addon", "fallback", "dispatcher", "N", "dtypeX", "x", "strideX", "offsetX", "viewX", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "quaternary", "arrays", "shape", "strides", "fcn", "sx", "sy", "sz", "sw", "su", "ix", "iy", "iz", "iw", "iu", "x", "y", "z", "w", "u", "N", "i", "require_ndarray", "__commonJSMin", "exports", "module", "quaternary", "arrays", "shape", "strides", "offsets", "fcn", "sx", "sy", "sz", "sw", "su", "ix", "iy", "iz", "iw", "iu", "y", "z", "w", "u", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "quinary", "arrays", "shape", "strides", "fcn", "sx", "sy", "sz", "sw", "su", "sv", "ix", "iy", "iz", "iw", "iu", "iv", "x", "y", "z", "w", "u", "v", "N", "i", "require_ndarray", "__commonJSMin", "exports", "module", "quinary", "arrays", "shape", "strides", "offsets", "fcn", "sx", "sy", "sz", "sw", "su", "sv", "ix", "iy", "iz", "iw", "iu", "iv", "x", "y", "z", "w", "u", "v", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "smap", "N", "x", "strideX", "y", "strideY", "fcn", "ix", "iy", "i", "require_ndarray", "__commonJSMin", "exports", "module", "smap", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "fcn", "ix", "iy", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "smap2", "N", "x", "strideX", "y", "strideY", "z", "strideZ", "fcn", "ix", "iy", "iz", "i", "require_ndarray", "__commonJSMin", "exports", "module", "smap2", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "z", "strideZ", "offsetZ", "fcn", "ix", "iy", "iz", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "smskmap", "N", "x", "strideX", "mask", "strideMask", "y", "strideY", "fcn", "ix", "im", "iy", "i", "require_ndarray", "__commonJSMin", "exports", "module", "smskmap", "N", "x", "strideX", "offsetX", "mask", "strideMask", "offsetMask", "y", "strideY", "offsetY", "fcn", "ix", "im", "iy", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "smskmap2", "N", "x", "strideX", "y", "strideY", "mask", "strideMask", "z", "strideZ", "fcn", "ix", "iy", "iz", "im", "i", "require_ndarray", "__commonJSMin", "exports", "module", "smskmap2", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "mask", "strideMask", "offsetMask", "z", "strideZ", "offsetZ", "fcn", "ix", "iy", "iz", "im", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "ternary", "arrays", "shape", "strides", "fcn", "sx", "sy", "sz", "sw", "ix", "iy", "iz", "iw", "x", "y", "z", "w", "N", "i", "require_ndarray", "__commonJSMin", "exports", "module", "ternary", "arrays", "shape", "strides", "offsets", "fcn", "sx", "sy", "sz", "sw", "ix", "iy", "iz", "iw", "x", "y", "z", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_unary", "__commonJSMin", "exports", "module", "unary", "arrays", "shape", "strides", "fcn", "sx", "sy", "ix", "iy", "x", "y", "N", "i", "require_accessors", "__commonJSMin", "exports", "module", "unary", "arrays", "shape", "strides", "accessors", "fcn", "xget", "yset", "sx", "sy", "ix", "iy", "x", "y", "N", "i", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "unary", "arrays", "shape", "strides", "fcn", "xget", "yset", "x", "y", "require_unary_ndarray", "__commonJSMin", "exports", "module", "unary", "arrays", "shape", "strides", "offsets", "fcn", "sx", "sy", "ix", "iy", "x", "y", "N", "i", "require_accessors_ndarray", "__commonJSMin", "exports", "module", "unary", "arrays", "shape", "strides", "offsets", "accessors", "fcn", "xget", "yset", "sx", "sy", "ix", "iy", "x", "y", "N", "i", "require_ndarray", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "unary", "arrays", "shape", "strides", "offsets", "fcn", "xget", "yset", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "isFunction", "isTypedArrayLike", "resolve", "reinterpretComplex64", "reinterpretComplex128", "format", "COMPLEX64", "COMPLEX128", "dispatch", "addon", "fallback", "dispatcher", "N", "dtypeX", "x", "strideX", "dtypeY", "y", "strideY", "viewX", "viewY", "require_ndarray", "__commonJSMin", "exports", "module", "isFunction", "isTypedArrayLike", "isNonNegativeInteger", "resolve", "reinterpretComplex64", "reinterpretComplex128", "offsetView", "minViewBufferIndex", "format", "COMPLEX64", "COMPLEX128", "dispatch", "addon", "fallback", "dispatcher", "N", "dtypeX", "x", "strideX", "offsetX", "dtypeY", "y", "strideY", "offsetY", "viewX", "viewY", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_unary", "__commonJSMin", "exports", "module", "unaryBy", "arrays", "shape", "strides", "fcn", "clbk", "thisArg", "sx", "sy", "ix", "iy", "x", "y", "N", "v", "i", "require_accessors", "__commonJSMin", "exports", "module", "unaryBy", "arrays", "shape", "strides", "accessors", "fcn", "clbk", "thisArg", "xget", "yset", "sx", "sy", "ix", "iy", "x", "y", "N", "v", "i", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "unaryBy", "arrays", "shape", "strides", "fcn", "clbk", "thisArg", "xget", "yset", "x", "y", "require_unary_ndarray", "__commonJSMin", "exports", "module", "unaryBy", "arrays", "shape", "strides", "offsets", "fcn", "clbk", "thisArg", "sx", "sy", "ix", "iy", "x", "y", "N", "v", "i", "require_accessors_ndarray", "__commonJSMin", "exports", "module", "unaryBy", "arrays", "shape", "strides", "offsets", "accessors", "fcn", "clbk", "thisArg", "xget", "yset", "sx", "sy", "ix", "iy", "x", "y", "N", "v", "i", "require_ndarray", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "dtype", "strided", "accessors", "unaryBy", "arrays", "shape", "strides", "offsets", "fcn", "clbk", "thisArg", "xget", "yset", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_main", "__commonJSMin", "exports", "module", "safeCasts", "resolveEnum", "resolveStr", "format", "intersection", "list1", "list2", "out", "M", "N", "v", "i", "j", "k", "resolve", "dtypes", "dt", "signatures", "dtypes1", "dtypes2", "options", "casts", "opts", "tmp", "dt1", "dt2", "t1", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "resolve", "Complex64", "Complex128", "wrap", "C64", "C128", "CTORS", "resolveCallback", "table", "t1", "t2", "callbacks", "signatures", "out", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "zmap", "N", "x", "strideX", "y", "strideY", "fcn", "ix", "iy", "i", "require_ndarray", "__commonJSMin", "exports", "module", "zmap", "N", "x", "strideX", "offsetX", "y", "strideY", "offsetY", "fcn", "ix", "iy", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "ndarray", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_index_of_types", "__commonJSMin", "exports", "module", "indexOfTypes", "N", "M", "x", "strideX1", "strideX2", "offsetX", "y", "strideY", "offsetY", "ix", "iy", "i", "j", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isPositiveInteger", "isInteger", "isFunctionArray", "isFunction", "isCollection", "format", "abs", "indexOfTypes", "dispatch", "fcns", "types", "data", "nargs", "nin", "nout", "strideArgs", "hasOffsets", "narrays", "nfcns", "iout", "fcn", "dispatcher", "strides", "offsets", "arrays", "dtypes", "shape", "argc", "idx", "N", "v", "f", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "setReadOnly", "strided"] +} diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts index f455d99b..7133f142 100644 --- a/docs/types/index.d.ts +++ b/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /* tslint:disable:max-line-length */ /* tslint:disable:max-file-line-count */ diff --git a/dtypes/docs/types/index.d.ts b/dtypes/docs/types/index.d.ts index 0e0521c9..557cf3be 100644 --- a/dtypes/docs/types/index.d.ts +++ b/dtypes/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Returns a list of strided array data types. diff --git a/napi/addon-arguments/docs/types/index.d.ts b/napi/addon-arguments/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/napi/addon-arguments/docs/types/index.d.ts +++ b/napi/addon-arguments/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/binary/docs/types/index.d.ts b/napi/binary/docs/types/index.d.ts index 3c7541c9..915ac95f 100644 --- a/napi/binary/docs/types/index.d.ts +++ b/napi/binary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/cmap/docs/types/index.d.ts b/napi/cmap/docs/types/index.d.ts index 3c7541c9..915ac95f 100644 --- a/napi/cmap/docs/types/index.d.ts +++ b/napi/cmap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/dmap/docs/types/index.d.ts b/napi/dmap/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/napi/dmap/docs/types/index.d.ts +++ b/napi/dmap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/dmap2/docs/types/index.d.ts b/napi/dmap2/docs/types/index.d.ts index 3c7541c9..915ac95f 100644 --- a/napi/dmap2/docs/types/index.d.ts +++ b/napi/dmap2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/dmskmap/docs/types/index.d.ts b/napi/dmskmap/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/napi/dmskmap/docs/types/index.d.ts +++ b/napi/dmskmap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/dmskmap2/docs/types/index.d.ts b/napi/dmskmap2/docs/types/index.d.ts index 3c7541c9..915ac95f 100644 --- a/napi/dmskmap2/docs/types/index.d.ts +++ b/napi/dmskmap2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/docs/types/index.d.ts b/napi/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/napi/docs/types/index.d.ts +++ b/napi/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/mskunary/docs/types/index.d.ts b/napi/mskunary/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/napi/mskunary/docs/types/index.d.ts +++ b/napi/mskunary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/nullary/docs/types/index.d.ts b/napi/nullary/docs/types/index.d.ts index 51de91b3..2efb8dc5 100644 --- a/napi/nullary/docs/types/index.d.ts +++ b/napi/nullary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/smap/docs/types/index.d.ts b/napi/smap/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/napi/smap/docs/types/index.d.ts +++ b/napi/smap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/smap2/docs/types/index.d.ts b/napi/smap2/docs/types/index.d.ts index 3c7541c9..915ac95f 100644 --- a/napi/smap2/docs/types/index.d.ts +++ b/napi/smap2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/smskmap/docs/types/index.d.ts b/napi/smskmap/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/napi/smskmap/docs/types/index.d.ts +++ b/napi/smskmap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/smskmap2/docs/types/index.d.ts b/napi/smskmap2/docs/types/index.d.ts index 3c7541c9..915ac95f 100644 --- a/napi/smskmap2/docs/types/index.d.ts +++ b/napi/smskmap2/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/unary/docs/types/index.d.ts b/napi/unary/docs/types/index.d.ts index 436d0f39..380dde4e 100644 --- a/napi/unary/docs/types/index.d.ts +++ b/napi/unary/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs. diff --git a/napi/zmap/docs/types/index.d.ts b/napi/zmap/docs/types/index.d.ts index 3c7541c9..915ac95f 100644 --- a/napi/zmap/docs/types/index.d.ts +++ b/napi/zmap/docs/types/index.d.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -// TypeScript Version: 2.0 +// TypeScript Version: 4.1 /** * Absolute file path for the directory containing header files for C APIs.