/* * @license Apache-2.0 * * Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // TypeScript Version: 4.1 /// import { ndarray } from '@stdlib/types/ndarray'; /** * Interface defining function options. */ interface Options { /** * Dimension along which to perform the operation. Default: `-1`. * * ## Notes * * - If provided an integer less than zero, the dimension index is resolved relative to the last dimension, with the last dimension corresponding to the value `-1`. */ dim?: number; } /** * Returns an array containing a read-only truncated view of an input ndarray and a read-only view of the first element(s) along a specified dimension. * * ## Notes * * - The input array must have one or more dimensions. * * @param x - input array * @param options - function options * @param options.dim - dimension along which to perform the operation * @returns a list of ndarrays * * @example * var Float64Array = require( '@stdlib/array/float64' ); * var ndarray = require( '@stdlib/ndarray/ctor' ); * var ndarray2array = require( '@stdlib/ndarray/to-array' ); * * var buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); * var shape = [ 3, 2 ]; * var strides = [ 2, 1 ]; * var offset = 0; * * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); * // returns * * var arr = ndarray2array( x ); * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] * * var y = shift( x ); * // returns [ , ] * * arr = ndarray2array( y[ 0 ] ); * // returns [ [ 2.0 ], [ 4.0 ], [ 6.0 ] ] * * arr = ndarray2array( y[ 1 ] ); * // returns [ [ 1.0 ], [ 3.0 ], [ 5.0 ] ] */ declare function shift( x: T, options?: Options ): [ T, T ]; // EXPORTS // export = shift;