@@ -24,7 +24,7 @@ var bench = require( '@stdlib/bench' );
2424var isndarrayLike = require ( '@stdlib/assert/is-ndarray-like' ) ;
2525var zeros = require ( '@stdlib/ndarray/zeros' ) ;
2626var pkg = require ( './../package.json' ) . name ;
27- var concat = require ( './../lib' ) ;
27+ var concat = require ( './../lib/assign.js ' ) ;
2828
2929
3030// MAIN //
@@ -37,14 +37,44 @@ bench( pkg+'::1d', function benchmark( b ) {
3737
3838 /* eslint-disable object-curly-newline */
3939
40+ values = [
41+ zeros ( [ 2 ] , { 'dtype' : 'float64' } ) ,
42+ zeros ( [ 2 ] , { 'dtype' : 'float64' } ) ,
43+ zeros ( [ 2 ] , { 'dtype' : 'float64' } ) ,
44+ zeros ( [ 2 ] , { 'dtype' : 'float64' } )
45+ ] ;
46+ out = zeros ( [ 8 ] , { 'dtype' : 'float64' } ) ;
47+
48+ b . tic ( ) ;
49+ for ( i = 0 ; i < b . iterations ; i ++ ) {
50+ v = concat ( values , out , - 1 ) ;
51+ if ( typeof v !== 'object' ) {
52+ b . fail ( 'should return an ndarray' ) ;
53+ }
54+ }
55+ b . toc ( ) ;
56+ if ( ! isndarrayLike ( v ) ) {
57+ b . fail ( 'should return an ndarray' ) ;
58+ }
59+ b . pass ( 'benchmark finished' ) ;
60+ b . end ( ) ;
61+ } ) ;
62+
63+ bench ( pkg + '::1d:mostly-safe-casts' , function benchmark ( b ) {
64+ var values ;
65+ var out ;
66+ var v ;
67+ var i ;
68+
69+ /* eslint-disable object-curly-newline */
70+
4071 values = [
4172 zeros ( [ 2 ] , { 'dtype' : 'float64' } ) ,
4273 zeros ( [ 2 ] , { 'dtype' : 'float32' } ) ,
4374 zeros ( [ 2 ] , { 'dtype' : 'int32' } ) ,
44- zeros ( [ 2 ] , { 'dtype' : 'complex128' } ) ,
4575 zeros ( [ 2 ] , { 'dtype' : 'generic' } )
4676 ] ;
47- out = zeros ( [ 10 ] , { 'dtype' : 'float64 ' } ) ;
77+ out = zeros ( [ 8 ] , { 'dtype' : 'generic ' } ) ;
4878
4979 b . tic ( ) ;
5080 for ( i = 0 ; i < b . iterations ; i ++ ) {
@@ -69,14 +99,44 @@ bench( pkg+'::2d', function benchmark( b ) {
6999
70100 /* eslint-disable object-curly-newline */
71101
102+ values = [
103+ zeros ( [ 2 , 2 ] , { 'dtype' : 'float64' } ) ,
104+ zeros ( [ 2 , 2 ] , { 'dtype' : 'float64' } ) ,
105+ zeros ( [ 2 , 2 ] , { 'dtype' : 'float64' } ) ,
106+ zeros ( [ 2 , 2 ] , { 'dtype' : 'float64' } )
107+ ] ;
108+ out = zeros ( [ 2 , 8 ] , { 'dtype' : 'float64' } ) ;
109+
110+ b . tic ( ) ;
111+ for ( i = 0 ; i < b . iterations ; i ++ ) {
112+ v = concat ( values , out , - 1 ) ;
113+ if ( typeof v !== 'object' ) {
114+ b . fail ( 'should return an ndarray' ) ;
115+ }
116+ }
117+ b . toc ( ) ;
118+ if ( ! isndarrayLike ( v ) ) {
119+ b . fail ( 'should return an ndarray' ) ;
120+ }
121+ b . pass ( 'benchmark finished' ) ;
122+ b . end ( ) ;
123+ } ) ;
124+
125+ bench ( pkg + '::2d:mostly-safe-casts' , function benchmark ( b ) {
126+ var values ;
127+ var out ;
128+ var v ;
129+ var i ;
130+
131+ /* eslint-disable object-curly-newline */
132+
72133 values = [
73134 zeros ( [ 2 , 2 ] , { 'dtype' : 'float64' } ) ,
74135 zeros ( [ 2 , 2 ] , { 'dtype' : 'float32' } ) ,
75136 zeros ( [ 2 , 2 ] , { 'dtype' : 'int32' } ) ,
76- zeros ( [ 2 , 2 ] , { 'dtype' : 'complex128' } ) ,
77137 zeros ( [ 2 , 2 ] , { 'dtype' : 'generic' } )
78138 ] ;
79- out = zeros ( [ 2 , 10 ] , { 'dtype' : 'float64 ' } ) ;
139+ out = zeros ( [ 2 , 8 ] , { 'dtype' : 'generic ' } ) ;
80140
81141 b . tic ( ) ;
82142 for ( i = 0 ; i < b . iterations ; i ++ ) {
@@ -101,14 +161,44 @@ bench( pkg+'::3d', function benchmark( b ) {
101161
102162 /* eslint-disable object-curly-newline */
103163
164+ values = [
165+ zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
166+ zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
167+ zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
168+ zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'float64' } )
169+ ] ;
170+ out = zeros ( [ 2 , 2 , 8 ] , { 'dtype' : 'float64' } ) ;
171+
172+ b . tic ( ) ;
173+ for ( i = 0 ; i < b . iterations ; i ++ ) {
174+ v = concat ( values , out , - 1 ) ;
175+ if ( typeof v !== 'object' ) {
176+ b . fail ( 'should return an ndarray' ) ;
177+ }
178+ }
179+ b . toc ( ) ;
180+ if ( ! isndarrayLike ( v ) ) {
181+ b . fail ( 'should return an ndarray' ) ;
182+ }
183+ b . pass ( 'benchmark finished' ) ;
184+ b . end ( ) ;
185+ } ) ;
186+
187+ bench ( pkg + '::3d:mostly-safe-casts' , function benchmark ( b ) {
188+ var values ;
189+ var out ;
190+ var v ;
191+ var i ;
192+
193+ /* eslint-disable object-curly-newline */
194+
104195 values = [
105196 zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
106197 zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'float32' } ) ,
107198 zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'int32' } ) ,
108- zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'complex128' } ) ,
109199 zeros ( [ 2 , 2 , 2 ] , { 'dtype' : 'generic' } )
110200 ] ;
111- out = zeros ( [ 2 , 2 , 10 ] , { 'dtype' : 'float64 ' } ) ;
201+ out = zeros ( [ 2 , 2 , 8 ] , { 'dtype' : 'generic ' } ) ;
112202
113203 b . tic ( ) ;
114204 for ( i = 0 ; i < b . iterations ; i ++ ) {
@@ -133,14 +223,44 @@ bench( pkg+'::4d', function benchmark( b ) {
133223
134224 /* eslint-disable object-curly-newline */
135225
226+ values = [
227+ zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
228+ zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
229+ zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
230+ zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } )
231+ ] ;
232+ out = zeros ( [ 2 , 2 , 2 , 8 ] , { 'dtype' : 'float64' } ) ;
233+
234+ b . tic ( ) ;
235+ for ( i = 0 ; i < b . iterations ; i ++ ) {
236+ v = concat ( values , out , - 1 ) ;
237+ if ( typeof v !== 'object' ) {
238+ b . fail ( 'should return an ndarray' ) ;
239+ }
240+ }
241+ b . toc ( ) ;
242+ if ( ! isndarrayLike ( v ) ) {
243+ b . fail ( 'should return an ndarray' ) ;
244+ }
245+ b . pass ( 'benchmark finished' ) ;
246+ b . end ( ) ;
247+ } ) ;
248+
249+ bench ( pkg + '::4d:mostly-safe-casts' , function benchmark ( b ) {
250+ var values ;
251+ var out ;
252+ var v ;
253+ var i ;
254+
255+ /* eslint-disable object-curly-newline */
256+
136257 values = [
137258 zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
138259 zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'float32' } ) ,
139260 zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'int32' } ) ,
140- zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'complex128' } ) ,
141261 zeros ( [ 2 , 2 , 2 , 2 ] , { 'dtype' : 'generic' } )
142262 ] ;
143- out = zeros ( [ 2 , 2 , 2 , 10 ] , { 'dtype' : 'float64 ' } ) ;
263+ out = zeros ( [ 2 , 2 , 2 , 8 ] , { 'dtype' : 'generic ' } ) ;
144264
145265 b . tic ( ) ;
146266 for ( i = 0 ; i < b . iterations ; i ++ ) {
@@ -165,14 +285,44 @@ bench( pkg+'::5d', function benchmark( b ) {
165285
166286 /* eslint-disable object-curly-newline */
167287
288+ values = [
289+ zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
290+ zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
291+ zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
292+ zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } )
293+ ] ;
294+ out = zeros ( [ 2 , 2 , 2 , 2 , 8 ] , { 'dtype' : 'float64' } ) ;
295+
296+ b . tic ( ) ;
297+ for ( i = 0 ; i < b . iterations ; i ++ ) {
298+ v = concat ( values , out , - 1 ) ;
299+ if ( typeof v !== 'object' ) {
300+ b . fail ( 'should return an ndarray' ) ;
301+ }
302+ }
303+ b . toc ( ) ;
304+ if ( ! isndarrayLike ( v ) ) {
305+ b . fail ( 'should return an ndarray' ) ;
306+ }
307+ b . pass ( 'benchmark finished' ) ;
308+ b . end ( ) ;
309+ } ) ;
310+
311+ bench ( pkg + '::5d:mostly-safe-casts' , function benchmark ( b ) {
312+ var values ;
313+ var out ;
314+ var v ;
315+ var i ;
316+
317+ /* eslint-disable object-curly-newline */
318+
168319 values = [
169320 zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'float64' } ) ,
170321 zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'float32' } ) ,
171322 zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'int32' } ) ,
172- zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'complex128' } ) ,
173323 zeros ( [ 2 , 2 , 2 , 2 , 2 ] , { 'dtype' : 'generic' } )
174324 ] ;
175- out = zeros ( [ 2 , 2 , 2 , 2 , 10 ] , { 'dtype' : 'float64 ' } ) ;
325+ out = zeros ( [ 2 , 2 , 2 , 2 , 8 ] , { 'dtype' : 'generic ' } ) ;
176326
177327 b . tic ( ) ;
178328 for ( i = 0 ; i < b . iterations ; i ++ ) {
0 commit comments