20
20
21
21
/// <reference types="@stdlib/types"/>
22
22
23
- import { Collection } from '@stdlib/types/object ' ;
23
+ import { Collection , ArrayLike } from '@stdlib/types/array ' ;
24
24
25
25
/**
26
26
* Returns accessed values.
@@ -35,7 +35,7 @@ type Nullary = () => ArrayLike<number> | void;
35
35
* @param values - array element values
36
36
* @returns accessed values
37
37
*/
38
- type Unary = ( values : Array < number > ) => ArrayLike < number > | void ;
38
+ type Unary < T , U > = ( values : [ T , U ] ) => ArrayLike < number > | void ;
39
39
40
40
/**
41
41
* Returns accessed values.
@@ -44,7 +44,7 @@ type Unary = ( values: Array<number> ) => ArrayLike<number> | void;
44
44
* @param idx - iteration index
45
45
* @returns accessed values
46
46
*/
47
- type Binary = ( values : Array < number > , idx : number ) => ArrayLike < number > | void ; // tslint-disable-line max-line-length
47
+ type Binary < T , U > = ( values : [ T , U ] , idx : number ) => ArrayLike < number > | void ;
48
48
49
49
/**
50
50
* Returns accessed values.
@@ -54,7 +54,7 @@ type Binary = ( values: Array<number>, idx: number ) => ArrayLike<number> | void
54
54
* @param indices - strided indices (offset + idx*stride)
55
55
* @returns accessed values
56
56
*/
57
- type Ternary = ( values : Array < number > , idx : number , indices : Array < number > ) => ArrayLike < number > | void ; // tslint-disable-line max-line-length
57
+ type Ternary < T , U > = ( values : [ T , U ] , idx : number , indices : Array < number > ) => ArrayLike < number > | void ;
58
58
59
59
/**
60
60
* Returns accessed values.
@@ -65,7 +65,7 @@ type Ternary = ( values: Array<number>, idx: number, indices: Array<number> ) =>
65
65
* @param arrays - input and output arrays
66
66
* @returns accessed values
67
67
*/
68
- type Quaternary = ( values : Array < number > , idx : number , indices : Array < number > , arrays : Array < Collection > ) => ArrayLike < number > | void ; // tslint-disable-line max-line-length
68
+ type Quaternary < T , U , V > = ( values : [ T , U ] , idx : number , indices : Array < number > , arrays : [ Collection < T > , Collection < U > , Collection < V > ] ) => ArrayLike < number > | void ;
69
69
70
70
/**
71
71
* Returns accessed values.
@@ -76,7 +76,7 @@ type Quaternary = ( values: Array<number>, idx: number, indices: Array<number>,
76
76
* @param arrays - input and output arrays
77
77
* @returns accessed values
78
78
*/
79
- type Callback = Nullary | Unary | Binary | Ternary | Quaternary ;
79
+ type Callback < T , U , V > = Nullary | Unary < T , U > | Binary < T , U > | Ternary < T , U > | Quaternary < T , U , V > ;
80
80
81
81
/**
82
82
* Interface describing `mulBy`.
@@ -108,7 +108,7 @@ interface Routine {
108
108
* mulBy( x.length, x, 1, y, 1, z, 1, accessor );
109
109
* // z => [ 11.0, 24.0, 39.0, 56.0, 75.0 ]
110
110
*/
111
- ( N : number , x : Collection , strideX : number , y : Collection , strideY : number , z : Collection , strideZ : number , clbk : Callback , thisArg ?: any ) : Collection ; // tslint:disable-line:max-line-length
111
+ < T = unknown , U = unknown , V = unknown > ( N : number , x : Collection < T > , strideX : number , y : Collection < U > , strideY : number , z : Collection < V > , strideZ : number , clbk : Callback < T , U , V > , thisArg ?: ThisParameterType < Callback < T , U , V > > ) : Collection < V | number > ;
112
112
113
113
/**
114
114
* Performs element-wise multiplication of two strided arrays via a callback function and assigns each result to an element in an output strided array using alternative indexing semantics.
@@ -139,7 +139,7 @@ interface Routine {
139
139
* mulBy.ndarray( x.length, x, 1, 0, y, 1, 0, z, 1, 0, accessor );
140
140
* // z => [ 11.0, 24.0, 39.0, 56.0, 75.0 ]
141
141
*/
142
- ndarray ( N : number , x : Collection , strideX : number , offsetX : number , y : Collection , strideY : number , offsetY : number , z : Collection , strideZ : number , offsetZ : number , clbk : Callback , thisArg ?: any ) : Collection ; // tslint:disable-line:max-line-length
142
+ ndarray < T = unknown , U = unknown , V = unknown > ( N : number , x : Collection < T > , strideX : number , offsetX : number , y : Collection < U > , strideY : number , offsetY : number , z : Collection < V > , strideZ : number , offsetZ : number , clbk : Callback < T , U , V > , thisArg ?: ThisParameterType < Callback < T , U , V > > ) : Collection < V | number > ;
143
143
}
144
144
145
145
/**
0 commit comments