diff --git a/ndarray/base/coverage.ndjson b/ndarray/base/coverage.ndjson index 143903d8b..da0916b30 100644 --- a/ndarray/base/coverage.ndjson +++ b/ndarray/base/coverage.ndjson @@ -13,3 +13,4 @@ [739,739,100,1,1,100,0,0,100,739,739,100,"be83095aaf7d0dec724ac1d42135459f33ca38af","2023-10-14 14:42:45 -0700"] [748,748,100,1,1,100,0,0,100,748,748,100,"b390e0bdfc5f184568b70ddd3d9b4a9cd92dbf9e","2023-10-14 22:14:40 -0700"] [757,757,100,1,1,100,0,0,100,757,757,100,"013beaa9f51f64fb56a25ab95dc85a0f849dc1ad","2023-10-15 00:55:53 -0700"] +[766,766,100,1,1,100,0,0,100,766,766,100,"2934e576d314c60fc6198228d33282a1ab4f76c1","2023-10-15 01:14:57 -0700"] diff --git a/ndarray/base/flipud/coverage.ndjson b/ndarray/base/flipud/coverage.ndjson new file mode 100644 index 000000000..f61bb68d5 --- /dev/null +++ b/ndarray/base/flipud/coverage.ndjson @@ -0,0 +1 @@ +[146,146,100,7,7,100,1,1,100,146,146,100,"2934e576d314c60fc6198228d33282a1ab4f76c1","2023-10-15 01:14:57 -0700"] diff --git a/ndarray/base/flipud/index.html b/ndarray/base/flipud/index.html new file mode 100644 index 000000000..2b36642c3 --- /dev/null +++ b/ndarray/base/flipud/index.html @@ -0,0 +1,131 @@ + + + + +
++ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+ ++ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 | 1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x + | /** +* @license Apache-2.0 +* +* Copyright (c) 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. +*/ + +'use strict'; + +/** +* Return a view of an input ndarray in which the order of elements along the second-to-last dimension is reversed. +* +* @module @stdlib/ndarray/base/flipud +* +* @example +* var ndarray = require( '@stdlib/ndarray/ctor' ); +* var ndarray2array = require( '@stdlib/ndarray/to-array' ); +* var flipud = require( '@stdlib/ndarray/base/flipud' ); +* +* var buffer = [ 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( 'generic', buffer, shape, strides, offset, 'row-major' ); +* // returns <ndarray> +* +* var sh = x.shape; +* // returns [ 3, 2 ] +* +* var arr = ndarray2array( x ); +* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] +* +* var y = flipud( x, false ); +* // returns <ndarray> +* +* sh = y.shape; +* // returns [ 3, 2 ] +* +* arr = ndarray2array( y ); +* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ] +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; + |
+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 | 1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +11x +11x +11x +11x +11x +4x +4x +4x +7x +11x +3x +3x +3x +4x +11x +1x +1x +1x +1x +1x + | /** +* @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. +*/ + +'use strict'; + +// MODULES // + +var MultiSlice = require( '@stdlib/slice/multi' ); +var reverseDimension = require( '@stdlib/ndarray/base/reverse-dimension' ); +var slice = require( '@stdlib/ndarray/base/slice' ); +var ndims = require( '@stdlib/ndarray/base/ndims' ); + + +// MAIN // + +/** +* Returns a view of an input ndarray in which the order of elements along the second-to-last dimension is reversed. +* +* @param {ndarray} x - input array +* @param {boolean} writable - boolean indicating whether a returned array should be writable +* @returns {ndarray} ndarray view +* +* @example +* var ndarray = require( '@stdlib/ndarray/ctor' ); +* var ndarray2array = require( '@stdlib/ndarray/to-array' ); +* +* var buffer = [ 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( 'generic', buffer, shape, strides, offset, 'row-major' ); +* // returns <ndarray> +* +* var sh = x.shape; +* // returns [ 3, 2 ] +* +* var arr = ndarray2array( x ); +* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] +* +* var y = flipud( x, false ); +* // returns <ndarray> +* +* sh = y.shape; +* // returns [ 3, 2 ] +* +* arr = ndarray2array( y ); +* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ] +*/ +function flipud( x, writable ) { + var N = ndims( x ); + + // Check whether we were provided a zero-dimensional array... + if ( N === 0 ) { + // Nothing to reverse, so just return a new view: + return slice( x, new MultiSlice(), true, writable ); + } + // Check whether we were provided a one-dimensional array... + if ( N === 1 ) { + // No second-to-last dimension to reverse, so just return a new view: + return slice( x, new MultiSlice( null ), true, writable ); + } + return reverseDimension( x, -2, writable ); +} + + +// EXPORTS // + +module.exports = flipud; + |