20
20
21
21
/// <reference types="@stdlib/types"/>
22
22
23
- import { Collection } from '@stdlib/types/object ' ;
23
+ import { Collection } from '@stdlib/types/array ' ;
24
24
25
25
/**
26
26
* Add-on function.
@@ -41,7 +41,7 @@ import { Collection } from '@stdlib/types/object';
41
41
* // Call into native add-on...
42
42
* }
43
43
*/
44
- type AddonFcn = ( N : number , dtypeX : number , x : Collection , strideX : number , dtypeY : number , y : Collection , strideY : number , dtypeZ : number , z : Collection , strideZ : number ) => any ; // tslint:disable-line:max-line-length
44
+ type AddonFcn < T , U , V , W > = ( N : number , dtypeX : number , x : Collection < T > , strideX : number , dtypeY : number , y : Collection < U > , strideY : number , dtypeZ : number , z : Collection < V > , strideZ : number ) => W ;
45
45
46
46
/**
47
47
* Fallback function.
@@ -62,7 +62,7 @@ type AddonFcn = ( N: number, dtypeX: number, x: Collection, strideX: number, dty
62
62
* // Fallback JavaScript implementation...
63
63
* }
64
64
*/
65
- type FallbackFcn = ( N : number , dtypeX : any , x : Collection , strideX : number , dtypeY : any , y : Collection , strideY : number , dtypeZ : any , z : Collection , strideZ : number ) => any ; // tslint:disable-line:max-line-length
65
+ type FallbackFcn < T , U , V , W > = ( N : number , dtypeX : any , x : Collection < T > , strideX : number , dtypeY : any , y : Collection < U > , strideY : number , dtypeZ : any , z : Collection < V > , strideZ : number ) => W ;
66
66
67
67
/**
68
68
* Fallback function supporting alternative indexing semantics.
@@ -86,7 +86,7 @@ type FallbackFcn = ( N: number, dtypeX: any, x: Collection, strideX: number, dty
86
86
* // Fallback JavaScript implementation...
87
87
* }
88
88
*/
89
- type FallbackFcnWithOffsets = ( N : number , dtypeX : any , x : Collection , strideX : number , offsetX : number , dtypeY : any , y : Collection , strideY : number , offsetY : number , dtypeZ : any , z : Collection , strideZ : number , offsetZ : number ) => any ; // tslint:disable-line:max-line-length
89
+ type FallbackFcnWithOffsets < T , U , V , W > = ( N : number , dtypeX : any , x : Collection < T > , strideX : number , offsetX : number , dtypeY : any , y : Collection < U > , strideY : number , offsetY : number , dtypeZ : any , z : Collection < V > , strideZ : number , offsetZ : number ) => W ;
90
90
91
91
/**
92
92
* Dispatches to a native add-on.
@@ -103,7 +103,7 @@ type FallbackFcnWithOffsets = ( N: number, dtypeX: any, x: Collection, strideX:
103
103
* @param strideZ - `z` stride length
104
104
* @returns `z`
105
105
*/
106
- type Dispatcher = ( N : number , dtypeX : any , x : Collection , strideX : number , dtypeY : any , y : Collection , strideY : number , dtypeZ : any , z : Collection , strideZ : number ) => Collection ; // tslint:disable-line:max-line-length
106
+ type Dispatcher < T , U , V > = ( N : number , dtypeX : any , x : Collection < T > , strideX : number , dtypeY : any , y : Collection < U > , strideY : number , dtypeZ : any , z : Collection < V > , strideZ : number ) => Collection < V > ;
107
107
108
108
/**
109
109
* Dispatches to a native add-on.
@@ -123,7 +123,7 @@ type Dispatcher = ( N: number, dtypeX: any, x: Collection, strideX: number, dtyp
123
123
* @param offsetZ - starting `z` index
124
124
* @returns `z`
125
125
*/
126
- type DispatcherWithOffsets = ( N : number , dtypeX : any , x : Collection , strideX : number , offsetX : number , dtypeY : any , y : Collection , strideY : number , offsetY : number , dtypeZ : any , z : Collection , strideZ : number , offsetZ : number ) => Collection ; // tslint:disable-line:max-line-length
126
+ type DispatcherWithOffsets < T , U , V > = ( N : number , dtypeX : any , x : Collection < T > , strideX : number , offsetX : number , dtypeY : any , y : Collection < U > , strideY : number , offsetY : number , dtypeZ : any , z : Collection < V > , strideZ : number , offsetZ : number ) => Collection < V > ;
127
127
128
128
/**
129
129
* Interface for creating a native add-on dispatcher.
@@ -153,7 +153,7 @@ interface Dispatch {
153
153
* // Invoke the dispatch function with strided array arguments:
154
154
* f( 2, 'generic', [ 1, 2 ], 1, 'generic', [ 3, 4 ], 1, 'generic', [ 0, 0 ], 1 );
155
155
*/
156
- ( addon : AddonFcn , fallback : FallbackFcn ) : Dispatcher ;
156
+ < T = unknown , U = unknown , V = unknown , W = unknown > ( addon : AddonFcn < T , U , V , W > , fallback : FallbackFcn < T , U , V , W > ) : Dispatcher < T , U , V > ;
157
157
158
158
/**
159
159
* Returns a function which dispatches to a native add-on applying a binary function to two input strided arrays using alternative indexing semantics.
@@ -179,7 +179,7 @@ interface Dispatch {
179
179
* // Invoke the dispatch function with strided array arguments:
180
180
* f( 2, 'generic', [ 1, 2 ], 1, 0, 'generic', [ 3, 4 ], 1, 0, 'generic', [ 0, 0 ], 1, 0 );
181
181
*/
182
- ndarray ( addon : AddonFcn , fallback : FallbackFcnWithOffsets ) : DispatcherWithOffsets ; // tslint:disable-line:max-line-length
182
+ ndarray < T = unknown , U = unknown , V = unknown , W = unknown > ( addon : AddonFcn < T , U , V , W > , fallback : FallbackFcnWithOffsets < T , U , V , W > ) : DispatcherWithOffsets < T , U , V > ;
183
183
}
184
184
185
185
/**
0 commit comments