UNPKG

@stdlib/array

Version:
108 lines (93 loc) 2.4 kB
/* * @license Apache-2.0 * * Copyright (c) 2023 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // TypeScript Version: 4.1 /// <reference types="@stdlib/types"/> import { Array1D, Array2D, Array3D } from '@stdlib/types/array'; import { Shape1D, Shape2D, Shape3D } from '@stdlib/types/ndarray'; /** * Unary callback. * * @param value - array element * @returns result */ type Unary<T, U> = ( value: T ) => U; /** * Input array. */ type InputArray<T> = Array1D<T> | Array2D<T> | Array3D<T>; /** * Input array shape. */ type InputArrayShape = Shape1D | Shape2D | Shape3D; /** * Output array. */ type OutputArray<T> = Array3D<T>; /** * Output array shape. */ type OutputArrayShape = Shape3D; /** * Input and output arrays. */ type InOutArrays<T, U> = [ InputArray<T>, OutputArray<U> ]; /** * Input and output array shapes. */ type InOutShapes = [ InputArrayShape, OutputArrayShape ]; /** * Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a three-dimensional nested output array. * * ## Notes * * - The input array shape must be broadcast compatible with the output array shape. * * @param arrays - array containing one input nested array and one output nested array * @param shapes - array shapes * @param fcn - unary callback * * @example * var ones3d = require( '@stdlib/array/base/ones3d' ); * var zeros3d = require( '@stdlib/array/base/zeros3d' ); * * function scale( x ) { * return x * 10.0; * } * * var shapes = [ * [ 1, 1, 2 ], * [ 1, 2, 2 ] * ]; * * var x = ones3d( shapes[ 0 ] ); * var y = zeros3d( shapes[ 1 ] ); * * bunary3d( [ x, y ], shapes, scale ); * * console.log( y ); * // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] */ declare function bunary3d<T = unknown, U = unknown>( arrays: InOutArrays<T, U>, shapes: InOutShapes, fcn: Unary<T, U> ): void; // EXPORTS // export = bunary3d;