Skip to content

Commit 449a5ce

Browse files
committed
Auto-generated commit
1 parent 596adaf commit 449a5ce

File tree

8 files changed

+435
-3
lines changed

8 files changed

+435
-3
lines changed

README.md

+47
Original file line numberDiff line numberDiff line change
@@ -2081,6 +2081,53 @@ im = imagf( z );
20812081
// returns 6.0
20822082
```
20832083

2084+
<a name="method-to-reversed"></a>
2085+
2086+
#### Complex64Array.prototype.toReversed()
2087+
2088+
Returns a new typed array containing the elements in reversed order.
2089+
2090+
```javascript
2091+
var realf = require( '@stdlib/complex-realf' );
2092+
var imagf = require( '@stdlib/complex-imagf' );
2093+
2094+
var arr = new Complex64Array( 3 );
2095+
2096+
arr.set( [ 1.0, 1.0 ], 0 );
2097+
arr.set( [ 2.0, 2.0 ], 1 );
2098+
arr.set( [ 3.0, 3.0 ], 2 );
2099+
2100+
var out = arr.toReversed();
2101+
// returns <Complex64Array>
2102+
2103+
var z = out.get( 0 );
2104+
// returns <Complex64>
2105+
2106+
var re = realf( z );
2107+
// returns 3.0
2108+
2109+
var im = imagf( z );
2110+
// returns 3.0
2111+
2112+
z = out.get( 1 );
2113+
// returns <Complex64>
2114+
2115+
re = realf( z );
2116+
// returns 2.0
2117+
2118+
im = imagf( z );
2119+
// returns 2.0
2120+
2121+
z = out.get( 2 );
2122+
// returns <Complex64>
2123+
2124+
re = realf( z );
2125+
// returns 1.0
2126+
2127+
im = imagf( z );
2128+
// returns 1.0
2129+
```
2130+
20842131
<a name="method-to-string"></a>
20852132

20862133
#### Complex64Array.prototype.toString()

benchmark/benchmark.to_reversed.js

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* @license Apache-2.0
3+
*
4+
* Copyright (c) 2023 The Stdlib Authors.
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
19+
'use strict';
20+
21+
// MODULES //
22+
23+
var bench = require( '@stdlib/bench-harness' );
24+
var isComplex64Array = require( '@stdlib/assert-is-complex64array' );
25+
var pkg = require( './../package.json' ).name;
26+
var Complex64Array = require( './../lib' );
27+
28+
29+
// MAIN //
30+
31+
bench( pkg+':toReversed', function benchmark( b ) {
32+
var out;
33+
var arr;
34+
var i;
35+
36+
arr = new Complex64Array( [ 1, 2, 3, 4, 5, 6 ] );
37+
38+
b.tic();
39+
for ( i = 0; i < b.iterations; i++ ) {
40+
out = arr.toReversed();
41+
if ( typeof out !== 'object' ) {
42+
b.fail( 'should return an object' );
43+
}
44+
}
45+
b.toc();
46+
if ( !isComplex64Array( out ) ) {
47+
b.fail( 'should return a Complex64Array' );
48+
}
49+
b.pass( 'benchmark finished' );
50+
b.end();
51+
});
+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
/**
2+
* @license Apache-2.0
3+
*
4+
* Copyright (c) 2023 The Stdlib Authors.
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
19+
'use strict';
20+
21+
// MODULES //
22+
23+
var bench = require( '@stdlib/bench-harness' );
24+
var isComplex64Array = require( '@stdlib/assert-is-complex64array' );
25+
var pow = require( '@stdlib/math-base-special-pow' );
26+
var Complex64 = require( '@stdlib/complex-float32' );
27+
var pkg = require( './../package.json' ).name;
28+
var Complex64Array = require( './../lib' );
29+
30+
31+
// FUNCTIONS //
32+
33+
/**
34+
* Creates a benchmark function.
35+
*
36+
* @private
37+
* @param {PositiveInteger} len - array length
38+
* @returns {Function} benchmark function
39+
*/
40+
function createBenchmark( len ) {
41+
var arr;
42+
var i;
43+
44+
arr = [];
45+
for ( i = 0; i < len; i++ ) {
46+
arr.push( new Complex64( i, i ) );
47+
}
48+
arr = new Complex64Array( arr );
49+
50+
return benchmark;
51+
52+
/**
53+
* Benchmark function.
54+
*
55+
* @private
56+
* @param {Benchmark} b - benchmark instance
57+
*/
58+
function benchmark( b ) {
59+
var out;
60+
var i;
61+
62+
b.tic();
63+
for ( i = 0; i < b.iterations; i++ ) {
64+
out = arr.toReversed();
65+
if ( typeof out !== 'object' ) {
66+
b.fail( 'should return an object' );
67+
}
68+
}
69+
b.toc();
70+
if ( !isComplex64Array( out ) ) {
71+
b.fail( 'should return a Complex64Array' );
72+
}
73+
b.pass( 'benchmark finished' );
74+
b.end();
75+
}
76+
}
77+
78+
79+
// MAIN //
80+
81+
/**
82+
* Main execution sequence.
83+
*
84+
* @private
85+
*/
86+
function main() {
87+
var len;
88+
var min;
89+
var max;
90+
var f;
91+
var i;
92+
93+
min = 1; // 10^min
94+
max = 6; // 10^max
95+
96+
for ( i = min; i <= max; i++ ) {
97+
len = pow( 10, i );
98+
f = createBenchmark( len );
99+
bench( pkg+':toReversed:len='+len, f );
100+
}
101+
}
102+
103+
main();

dist/index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/types/index.d.ts

+47
Original file line numberDiff line numberDiff line change
@@ -1085,6 +1085,53 @@ declare class Complex64Array implements Complex64ArrayInterface {
10851085
*/
10861086
subarray( begin?: number, end?: number ): Complex64Array;
10871087

1088+
/**
1089+
* Returns a new typed array containing the elements in reversed order.
1090+
*
1091+
* @returns reversed array
1092+
*
1093+
* @example
1094+
* var realf = require( '@stdlib/complex-realf' );
1095+
* var imagf = require( '@stdlib/complex-imagf' );
1096+
*
1097+
* var arr = new Complex64Array( 3 );
1098+
*
1099+
* arr.set( [ 1.0, 1.0 ], 0 );
1100+
* arr.set( [ 2.0, 2.0 ], 1 );
1101+
* arr.set( [ 3.0, 3.0 ], 2 );
1102+
*
1103+
* var out = arr.toReversed();
1104+
* // returns <Complex64Array>
1105+
*
1106+
* var z = out.get( 0 );
1107+
* // returns <Complex64>
1108+
*
1109+
* var re = realf( z );
1110+
* // returns 3.0
1111+
*
1112+
* var im = imagf( z );
1113+
* // returns 3.0
1114+
*
1115+
* z = out.get( 1 );
1116+
* // returns <Complex64>
1117+
*
1118+
* re = realf( z );
1119+
* // returns 2.0
1120+
*
1121+
* im = imagf( z );
1122+
* // returns 2.0
1123+
*
1124+
* z = out.get( 2 );
1125+
* // returns <Complex64>
1126+
*
1127+
* re = realf( z );
1128+
* // returns 1.0
1129+
*
1130+
* im = imagf( z );
1131+
* // returns 1.0
1132+
*/
1133+
toReversed(): Complex64Array;
1134+
10881135
/**
10891136
* Serializes an array as a string.
10901137
*

lib/main.js

+71
Original file line numberDiff line numberDiff line change
@@ -2295,6 +2295,77 @@ setReadOnly( Complex64Array.prototype, 'subarray', function subarray( begin, end
22952295
return new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );
22962296
});
22972297

2298+
/**
2299+
* Returns a new typed array containing the elements in reversed order.
2300+
*
2301+
* @name toReversed
2302+
* @memberof Complex64Array.prototype
2303+
* @type {Function}
2304+
* @throws {TypeError} `this` must be a complex number array
2305+
* @returns {Complex64Array} reversed array
2306+
*
2307+
* @example
2308+
* var realf = require( '@stdlib/complex-realf' );
2309+
* var imagf = require( '@stdlib/complex-imagf' );
2310+
*
2311+
* var arr = new Complex64Array( 3 );
2312+
*
2313+
* arr.set( [ 1.0, 1.0 ], 0 );
2314+
* arr.set( [ 2.0, 2.0 ], 1 );
2315+
* arr.set( [ 3.0, 3.0 ], 2 );
2316+
*
2317+
* var out = arr.toReversed();
2318+
* // returns <Complex64Array>
2319+
*
2320+
* var z = out.get( 0 );
2321+
* // returns <Complex64>
2322+
*
2323+
* var re = realf( z );
2324+
* // returns 3.0
2325+
*
2326+
* var im = imagf( z );
2327+
* // returns 3.0
2328+
*
2329+
* z = out.get( 1 );
2330+
* // returns <Complex64>
2331+
*
2332+
* re = realf( z );
2333+
* // returns 2.0
2334+
*
2335+
* im = imagf( z );
2336+
* // returns 2.0
2337+
*
2338+
* z = out.get( 2 );
2339+
* // returns <Complex64>
2340+
*
2341+
* re = realf( z );
2342+
* // returns 1.0
2343+
*
2344+
* im = imagf( z );
2345+
* // returns 1.0
2346+
*/
2347+
setReadOnly( Complex64Array.prototype, 'toReversed', function toReversed() {
2348+
var outbuf;
2349+
var out;
2350+
var len;
2351+
var buf;
2352+
var i;
2353+
var j;
2354+
if ( !isComplexArray( this ) ) {
2355+
throw new TypeError( 'invalid invocation. `this` is not a complex number array.' );
2356+
}
2357+
len = this._length;
2358+
out = new this.constructor( len );
2359+
buf = this._buffer;
2360+
outbuf = out._buffer; // eslint-disable-line no-underscore-dangle
2361+
for ( i = 0; i < len; i++ ) {
2362+
j = len - i - 1;
2363+
outbuf[ (2*i) ] = buf[ (2*j) ];
2364+
outbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];
2365+
}
2366+
return out;
2367+
});
2368+
22982369
/**
22992370
* Serializes an array as a string.
23002371
*

0 commit comments

Comments
 (0)