mirror of
https://github.com/gpujs/gpu.js.git
synced 2026-01-18 16:04:10 +00:00
Merge branch 'develop' into refed-textures
This commit is contained in:
commit
bcae4ba2bb
113
README.md
113
README.md
@ -37,6 +37,12 @@ Matrix multiplication (perform matrix multiplication on 2 matrices of size 512 x
|
||||
</script>
|
||||
```
|
||||
|
||||
## CDN
|
||||
```
|
||||
https://unpkg.com/gpu.js@latest/dist/gpu-browser.min.js
|
||||
https://cdn.jsdelivr.net/npm/gpu.js@latest/dist/gpu-browser.min.js
|
||||
```
|
||||
|
||||
## Node
|
||||
```js
|
||||
const { GPU } = require('gpu.js');
|
||||
@ -71,6 +77,7 @@ const c = multiplyMatrix(a, b) as number[][];
|
||||
|
||||
NOTE: documentation is slightly out of date for the upcoming release of v2. We will fix it! In the mean time, if you'd like to assist (PLEASE) let us know.
|
||||
|
||||
* [Demos](#demos)
|
||||
* [Installation](#installation)
|
||||
* [`GPU` Settings](#gpu-settings)
|
||||
* [`gpu.createKernel` Settings](#gpucreatekernel-settings)
|
||||
@ -106,6 +113,31 @@ NOTE: documentation is slightly out of date for the upcoming release of v2. We
|
||||
* [Terms Explained](#terms-explained)
|
||||
* [License](#license)
|
||||
|
||||
## Demos
|
||||
GPU.js in the wild, all around the net. Add yours here!
|
||||
* [Temperature interpolation using GPU.js](https://observablehq.com/@rveciana/temperature-interpolation-using-gpu-js)
|
||||
* [Julia Set Fractal using GPU.js](https://observablehq.com/@ukabuer/julia-set-fractal-using-gpu-js)
|
||||
* [Hello, gpu.js v2](https://observablehq.com/@fil/hello-gpu-js-v2)
|
||||
* [Basic gpu.js canvas example](https://observablehq.com/@rveciana/basic-gpu-js-canvas-example)
|
||||
* [Raster projection with GPU.js](https://observablehq.com/@fil/raster-projection-with-gpu-js)
|
||||
* [GPU.js Example: Slow Fade](https://observablehq.com/@robertleeplummerjr/gpu-js-example-slow-fade)
|
||||
* [GPU.JS CA Proof of Concept](https://observablehq.com/@alexlamb/gpu-js-ca-proof-of-concept)
|
||||
* [Image Convolution using GPU.js](https://observablehq.com/@ukabuer/image-convolution-using-gpu-js)
|
||||
* [Leaflet + gpu.js canvas](https://observablehq.com/@rveciana/leaflet-gpu-js-canvas)
|
||||
* [Image to GPU.js](https://observablehq.com/@fil/image-to-gpu)
|
||||
* [GPU Accelerated Heatmap using gpu.js](https://observablehq.com/@tracyhenry/gpu-accelerated-heatmap-using-gpu-js)
|
||||
* [Dijkstra’s algorithm in gpu.js](https://observablehq.com/@fil/dijkstras-algorithm-in-gpu-js)
|
||||
* [Voronoi with gpu.js](https://observablehq.com/@fil/voronoi-with-gpu-js)
|
||||
* [The gpu.js loop](https://observablehq.com/@fil/the-gpu-js-loop)
|
||||
* [GPU.js Example: Mandelbrot Set](https://observablehq.com/@robertleeplummerjr/gpu-js-example-mandelbrot-set)
|
||||
* [GPU.js Example: Mandelbulb](https://observablehq.com/@robertleeplummerjr/gpu-js-example-mandelbulb)
|
||||
* [Inverse of the distance with gpu.js](https://observablehq.com/@rveciana/inverse-of-the-distance-with-gpu-js)
|
||||
* [gpu.js laser detection v2](https://observablehq.com/@robertleeplummerjr/gpu-js-laser-detection-v2)
|
||||
* [GPU.js Canvas](https://observablehq.com/@hubgit/gpu-js-canvas)
|
||||
* [Video Convolution using GPU.js](https://observablehq.com/@robertleeplummerjr/video-convolution-using-gpu-js)
|
||||
* [GPU Rock Paper Scissors](https://observablehq.com/@alexlamb/gpu-rock-paper-scissors)
|
||||
* [Shaded relief with gpujs and d3js](https://observablehq.com/@rveciana/shaded-relief-with-gpujs-and-d3js/2)
|
||||
|
||||
## Installation
|
||||
On Linux, ensure you have the correct header files installed: `sudo apt install mesa-common-dev libxi-dev` (adjust for your distribution)
|
||||
|
||||
@ -437,11 +469,13 @@ const kernel = gpu.createKernel(function(image) {
|
||||
.setGraphical(true)
|
||||
.setOutput([100, 100]);
|
||||
|
||||
const image = new document.createElement('img');
|
||||
const image = document.createElement('img');
|
||||
image.src = 'my/image/source.png';
|
||||
image.onload = () => {
|
||||
kernel(image);
|
||||
// Result: colorful image
|
||||
|
||||
document.getElementsByTagName('body')[0].appendChild(kernel.canvas);
|
||||
};
|
||||
```
|
||||
|
||||
@ -455,13 +489,13 @@ const kernel = gpu.createKernel(function(image) {
|
||||
.setGraphical(true)
|
||||
.setOutput([100, 100]);
|
||||
|
||||
const image1 = new document.createElement('img');
|
||||
const image1 = document.createElement('img');
|
||||
image1.src = 'my/image/source1.png';
|
||||
image1.onload = onload;
|
||||
const image2 = new document.createElement('img');
|
||||
const image2 = document.createElement('img');
|
||||
image2.src = 'my/image/source2.png';
|
||||
image2.onload = onload;
|
||||
const image3 = new document.createElement('img');
|
||||
const image3 = document.createElement('img');
|
||||
image3.src = 'my/image/source3.png';
|
||||
image3.onload = onload;
|
||||
const totalImages = 3;
|
||||
@ -471,6 +505,8 @@ function onload() {
|
||||
if (loadedImages === totalImages) {
|
||||
kernel([image1, image2, image3]);
|
||||
// Result: colorful image composed of many images
|
||||
|
||||
document.getElementsByTagName('body')[0].appendChild(kernel.canvas);
|
||||
}
|
||||
};
|
||||
```
|
||||
@ -947,6 +983,75 @@ To assist with mostly unit tests, but perhaps in scenarios outside of GPU.js, th
|
||||
|
||||
## Typescript Typings
|
||||
Typescript is supported! Typings can be found [here](src/index.d.ts)!
|
||||
For strongly typed kernels:
|
||||
```ts
|
||||
import { GPU, IKernelFunctionThis } from './src';
|
||||
const gpu = new GPU();
|
||||
|
||||
function kernelFunction(this: IKernelFunctionThis): number {
|
||||
return 1 + this.thread.x;
|
||||
}
|
||||
|
||||
const kernelMap = gpu.createKernel<typeof kernelFunction>(kernelFunction)
|
||||
.setOutput([3,3,3]);
|
||||
|
||||
const result = kernelMap();
|
||||
|
||||
console.log(result as number[][][]);
|
||||
```
|
||||
|
||||
For strongly typed mapped kernels:
|
||||
```ts
|
||||
import { GPU, Texture, IKernelFunctionThis } from './src';
|
||||
const gpu = new GPU();
|
||||
|
||||
function kernelFunction(this: IKernelFunctionThis): [number, number] {
|
||||
return [1, 1];
|
||||
}
|
||||
|
||||
function subKernel(): [number, number] {
|
||||
return [1, 1];
|
||||
}
|
||||
|
||||
const kernelMap = gpu.createKernelMap<typeof kernelFunction>({
|
||||
test: subKernel,
|
||||
}, kernelFunction)
|
||||
.setOutput([1])
|
||||
.setPipeline(true);
|
||||
|
||||
const result = kernelMap();
|
||||
|
||||
console.log((result.test as Texture).toArray() as [number, number][]);
|
||||
```
|
||||
|
||||
For extending constants:
|
||||
```ts
|
||||
import { GPU, IKernelFunctionThis } from './src';
|
||||
const gpu = new GPU();
|
||||
|
||||
interface IConstants {
|
||||
screen: [number, number];
|
||||
}
|
||||
|
||||
type This = {
|
||||
constants: IConstants
|
||||
} & IKernelFunctionThis;
|
||||
|
||||
function kernelFunction(this: This): number {
|
||||
const { screen } = this.constants;
|
||||
return 1 + screen[0];
|
||||
}
|
||||
|
||||
const kernelMap = gpu.createKernel<typeof kernelFunction>(kernelFunction)
|
||||
.setOutput([3,3,3])
|
||||
.setConstants<IConstants>({
|
||||
screen: [1, 1]
|
||||
});
|
||||
|
||||
const result = kernelMap();
|
||||
|
||||
console.log(result as number[][][]);
|
||||
```
|
||||
|
||||
## Destructured Assignments **New in V2!**
|
||||
Destructured Objects and Arrays work in GPU.js.
|
||||
|
||||
6
dist/gpu-browser-core.js
vendored
6
dist/gpu-browser-core.js
vendored
@ -4,8 +4,8 @@
|
||||
*
|
||||
* GPU Accelerated JavaScript
|
||||
*
|
||||
* @version 2.3.0
|
||||
* @date Tue Nov 26 2019 09:51:10 GMT-0500 (Eastern Standard Time)
|
||||
* @version 2.3.1
|
||||
* @date Tue Dec 17 2019 09:39:34 GMT-0500 (Eastern Standard Time)
|
||||
*
|
||||
* @license MIT
|
||||
* The MIT License
|
||||
@ -13389,7 +13389,7 @@ const utils = {
|
||||
|
||||
getVariableType(value, strictIntegers) {
|
||||
if (utils.isArray(value)) {
|
||||
if (value[0].nodeName === 'IMG') {
|
||||
if (value.length > 0 && value[0].nodeName === 'IMG') {
|
||||
return 'HTMLImageArray';
|
||||
}
|
||||
return 'Array';
|
||||
|
||||
6
dist/gpu-browser-core.min.js
vendored
6
dist/gpu-browser-core.min.js
vendored
File diff suppressed because one or more lines are too long
6
dist/gpu-browser.js
vendored
6
dist/gpu-browser.js
vendored
@ -4,8 +4,8 @@
|
||||
*
|
||||
* GPU Accelerated JavaScript
|
||||
*
|
||||
* @version 2.3.0
|
||||
* @date Tue Nov 26 2019 09:51:10 GMT-0500 (Eastern Standard Time)
|
||||
* @version 2.3.1
|
||||
* @date Tue Dec 17 2019 09:39:34 GMT-0500 (Eastern Standard Time)
|
||||
*
|
||||
* @license MIT
|
||||
* The MIT License
|
||||
@ -17823,7 +17823,7 @@ const utils = {
|
||||
|
||||
getVariableType(value, strictIntegers) {
|
||||
if (utils.isArray(value)) {
|
||||
if (value[0].nodeName === 'IMG') {
|
||||
if (value.length > 0 && value[0].nodeName === 'IMG') {
|
||||
return 'HTMLImageArray';
|
||||
}
|
||||
return 'Array';
|
||||
|
||||
6
dist/gpu-browser.min.js
vendored
6
dist/gpu-browser.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gpu.js",
|
||||
"version": "2.3.0",
|
||||
"version": "2.3.1",
|
||||
"description": "GPU Accelerated JavaScript",
|
||||
"engines": {
|
||||
"node": ">=8.0.0"
|
||||
|
||||
254
src/index.d.ts
vendored
254
src/index.d.ts
vendored
@ -13,9 +13,58 @@ export class GPU {
|
||||
nativeFunctions: IGPUNativeFunction[];
|
||||
addFunction(kernel: KernelFunction, settings?: IGPUFunctionSettings): this;
|
||||
addNativeFunction(name: string, source: string): this;
|
||||
combineKernels(...kernels: Function[]): KernelFunction;
|
||||
combineKernels(...kernels: KernelFunction[]): IKernelRunShortcut;
|
||||
combineKernels<KF extends KernelFunction>(...kernels: KF[]):
|
||||
((...args: Parameters<KF>) =>
|
||||
ReturnType<KF>[]
|
||||
| ReturnType<KF>[][]
|
||||
| ReturnType<KF>[][][]
|
||||
| Texture
|
||||
| void
|
||||
)
|
||||
& IKernelRunShortcutBase;
|
||||
createKernel(kernel: KernelFunction, settings?: IGPUKernelSettings): IKernelRunShortcut;
|
||||
createKernelMap(subKernels: Object | Array<Function>, rootKernel: Function, settings?: IGPUKernelSettings): IKernelRunShortcut;
|
||||
createKernel<KF extends KernelFunction>(kernel: KF, settings?: IGPUKernelSettings):
|
||||
((...args: Parameters<KF>) =>
|
||||
ReturnType<KF>[]
|
||||
| ReturnType<KF>[][]
|
||||
| ReturnType<KF>[][][]
|
||||
| Texture
|
||||
| void
|
||||
)
|
||||
& IKernelRunShortcutBase;
|
||||
createKernelMap(
|
||||
subKernels: {
|
||||
[targetLocation: string]: KernelFunction
|
||||
}
|
||||
| KernelFunction[],
|
||||
rootKernel: KernelFunction,
|
||||
settings?: IGPUKernelSettings): ((() => IMappedKernelResult) & IKernelRunShortcut);
|
||||
// this needs further refined
|
||||
createKernelMap<KF extends KernelFunction>(
|
||||
subKernels: {
|
||||
[targetLocation: string]: KF
|
||||
}
|
||||
| KF[],
|
||||
rootKernel: KF,
|
||||
settings?: IGPUKernelSettings
|
||||
):
|
||||
((...args: Parameters<KF>) => {
|
||||
result?:
|
||||
ReturnType<KF>[]
|
||||
| ReturnType<KF>[][]
|
||||
| ReturnType<KF>[][][]
|
||||
| Texture
|
||||
| void;
|
||||
[targetLocation: string]:
|
||||
ReturnType<KF>[]
|
||||
| ReturnType<KF>[][]
|
||||
| ReturnType<KF>[][][]
|
||||
| Texture
|
||||
| void
|
||||
}
|
||||
)
|
||||
& IKernelRunShortcutBase;
|
||||
destroy(): void;
|
||||
Kernel: typeof Kernel;
|
||||
mode: string;
|
||||
@ -33,6 +82,11 @@ export interface IGPUNativeFunction extends IGPUFunctionSettings {
|
||||
settings: object;
|
||||
}
|
||||
|
||||
export interface IMappedKernelResult {
|
||||
result?: KernelVariable;
|
||||
[targetLocation: string]: KernelVariable
|
||||
}
|
||||
|
||||
export interface INativeFunctionList {
|
||||
[functionName: string]: string
|
||||
}
|
||||
@ -119,73 +173,11 @@ export abstract class Kernel {
|
||||
getPixels(flip?: boolean): Uint8ClampedArray[];
|
||||
prependString(value: string): void;
|
||||
hasPrependString(value: string): boolean;
|
||||
constructor(kernel: KernelFunction|IJSON, settings?: IDirectKernelSettings);
|
||||
constructor(kernel: KernelFunction|IJSON|string, settings?: IDirectKernelSettings);
|
||||
onRequestSwitchKernel?: Kernel;
|
||||
build(
|
||||
arg1?: KernelVariable,
|
||||
arg2?: KernelVariable,
|
||||
arg3?: KernelVariable,
|
||||
arg4?: KernelVariable,
|
||||
arg5?: KernelVariable,
|
||||
arg6?: KernelVariable,
|
||||
arg7?: KernelVariable,
|
||||
arg8?: KernelVariable,
|
||||
arg9?: KernelVariable,
|
||||
arg10?: KernelVariable,
|
||||
arg11?: KernelVariable,
|
||||
arg12?: KernelVariable,
|
||||
arg13?: KernelVariable,
|
||||
arg14?: KernelVariable,
|
||||
arg15?: KernelVariable,
|
||||
arg16?: KernelVariable,
|
||||
arg17?: KernelVariable,
|
||||
arg18?: KernelVariable,
|
||||
arg19?: KernelVariable,
|
||||
arg20?: KernelVariable): void;
|
||||
run(
|
||||
arg1?: KernelVariable,
|
||||
arg2?: KernelVariable,
|
||||
arg3?: KernelVariable,
|
||||
arg4?: KernelVariable,
|
||||
arg5?: KernelVariable,
|
||||
arg6?: KernelVariable,
|
||||
arg7?: KernelVariable,
|
||||
arg8?: KernelVariable,
|
||||
arg9?: KernelVariable,
|
||||
arg10?: KernelVariable,
|
||||
arg11?: KernelVariable,
|
||||
arg12?: KernelVariable,
|
||||
arg13?: KernelVariable,
|
||||
arg14?: KernelVariable,
|
||||
arg15?: KernelVariable,
|
||||
arg16?: KernelVariable,
|
||||
arg17?: KernelVariable,
|
||||
arg18?: KernelVariable,
|
||||
arg19?: KernelVariable,
|
||||
arg20?: KernelVariable
|
||||
): KernelVariable;
|
||||
toString(
|
||||
arg1?: KernelVariable,
|
||||
arg2?: KernelVariable,
|
||||
arg3?: KernelVariable,
|
||||
arg4?: KernelVariable,
|
||||
arg5?: KernelVariable,
|
||||
arg6?: KernelVariable,
|
||||
arg7?: KernelVariable,
|
||||
arg8?: KernelVariable,
|
||||
arg9?: KernelVariable,
|
||||
arg10?: KernelVariable,
|
||||
arg11?: KernelVariable,
|
||||
arg12?: KernelVariable,
|
||||
arg13?: KernelVariable,
|
||||
arg14?: KernelVariable,
|
||||
arg15?: KernelVariable,
|
||||
arg16?: KernelVariable,
|
||||
arg17?: KernelVariable,
|
||||
arg18?: KernelVariable,
|
||||
arg19?: KernelVariable,
|
||||
arg20?: KernelVariable
|
||||
): string;
|
||||
build(...args: KernelVariable[]): void;
|
||||
run(...args: KernelVariable[]): KernelVariable;
|
||||
toString(...args: KernelVariable[]): string;
|
||||
toJSON(): IJSON;
|
||||
setOutput(flag: number[]): this;
|
||||
setWarnVarUsage(flag: boolean): this;
|
||||
@ -194,7 +186,8 @@ export abstract class Kernel {
|
||||
setDebug(flag: boolean): this;
|
||||
setGraphical(flag: boolean): this;
|
||||
setLoopMaxIterations(flag: number): this;
|
||||
setConstants(flag: object): this;
|
||||
setConstants(flag: IConstants): this;
|
||||
setConstants<T>(flag: T & IConstants): this;
|
||||
setConstantTypes(flag: IKernelValueTypes): this;
|
||||
setDynamicOutput(flag: boolean): this;
|
||||
setDynamicArguments(flag: boolean): this;
|
||||
@ -332,30 +325,14 @@ export interface ITypesList {
|
||||
[typeName: string]: GPUVariableType
|
||||
}
|
||||
|
||||
export interface IKernelRunShortcut extends Kernel {
|
||||
export interface IKernelRunShortcutBase extends Kernel {
|
||||
kernel: Kernel;
|
||||
(
|
||||
arg1?: KernelVariable,
|
||||
arg2?: KernelVariable,
|
||||
arg3?: KernelVariable,
|
||||
arg4?: KernelVariable,
|
||||
arg5?: KernelVariable,
|
||||
arg6?: KernelVariable,
|
||||
arg7?: KernelVariable,
|
||||
arg8?: KernelVariable,
|
||||
arg9?: KernelVariable,
|
||||
arg10?: KernelVariable,
|
||||
arg11?: KernelVariable,
|
||||
arg12?: KernelVariable,
|
||||
arg13?: KernelVariable,
|
||||
arg14?: KernelVariable,
|
||||
arg15?: KernelVariable,
|
||||
arg16?: KernelVariable,
|
||||
arg17?: KernelVariable,
|
||||
arg18?: KernelVariable,
|
||||
arg19?: KernelVariable,
|
||||
arg20?: KernelVariable
|
||||
): KernelOutput;
|
||||
exec(): Promise<KernelOutput>;
|
||||
}
|
||||
|
||||
export interface IKernelRunShortcut extends IKernelRunShortcutBase {
|
||||
kernel: Kernel;
|
||||
(...args: KernelVariable[]): KernelOutput;
|
||||
exec(): Promise<KernelOutput>;
|
||||
}
|
||||
|
||||
@ -388,9 +365,6 @@ export interface IKernelFunctionThis {
|
||||
export type KernelVariable =
|
||||
boolean
|
||||
| number
|
||||
| number[]
|
||||
| number[][]
|
||||
| number[][][]
|
||||
| Texture
|
||||
| Input
|
||||
| HTMLImageElement
|
||||
@ -398,36 +372,52 @@ export type KernelVariable =
|
||||
| HTMLImageElement[]
|
||||
| KernelOutput;
|
||||
|
||||
export type ThreadKernelVariable = boolean | number | number[] | number[][] | number[][][];
|
||||
export type KernelFunction = ((
|
||||
this: IKernelFunctionThis,
|
||||
arg1?: ThreadKernelVariable,
|
||||
arg2?: ThreadKernelVariable,
|
||||
arg3?: ThreadKernelVariable,
|
||||
arg4?: ThreadKernelVariable,
|
||||
arg5?: ThreadKernelVariable,
|
||||
arg6?: ThreadKernelVariable,
|
||||
arg7?: ThreadKernelVariable,
|
||||
arg8?: ThreadKernelVariable,
|
||||
arg9?: ThreadKernelVariable,
|
||||
arg10?: ThreadKernelVariable,
|
||||
arg11?: ThreadKernelVariable,
|
||||
arg12?: ThreadKernelVariable,
|
||||
arg13?: ThreadKernelVariable,
|
||||
arg14?: ThreadKernelVariable,
|
||||
arg15?: ThreadKernelVariable,
|
||||
arg16?: ThreadKernelVariable,
|
||||
arg17?: ThreadKernelVariable,
|
||||
arg18?: ThreadKernelVariable,
|
||||
arg19?: ThreadKernelVariable,
|
||||
arg20?: ThreadKernelVariable,
|
||||
) => KernelOutput) | object | string;
|
||||
|
||||
export type KernelOutput = void
|
||||
export type ThreadKernelVariable
|
||||
= boolean
|
||||
| number
|
||||
| number[]
|
||||
| number[][]
|
||||
| number[][][]
|
||||
| number[][][][]
|
||||
|
||||
| [number, number]
|
||||
| [number, number][]
|
||||
| [number, number][][]
|
||||
| [number, number][][][]
|
||||
|
||||
| [number, number, number]
|
||||
| [number, number, number][]
|
||||
| [number, number, number][][]
|
||||
| [number, number, number][][][]
|
||||
|
||||
| [number, number, number, number]
|
||||
| [number, number, number, number][]
|
||||
| [number, number, number, number][][]
|
||||
| [number, number, number, number][][][]
|
||||
;
|
||||
|
||||
export type KernelFunction = ((
|
||||
this: IKernelFunctionThis,
|
||||
...args: ThreadKernelVariable[]
|
||||
) => KernelOutput);
|
||||
|
||||
export type KernelOutput = void
|
||||
| number
|
||||
| number[]
|
||||
| number[][]
|
||||
| number[][][]
|
||||
|
||||
| [number, number][]
|
||||
| [number, number, number][]
|
||||
| [number, number, number, number][]
|
||||
|
||||
| [number, number][][]
|
||||
| [number, number, number][][]
|
||||
| [number, number, number, number][][]
|
||||
|
||||
| [number, number][][][]
|
||||
| [number, number, number][][][]
|
||||
| [number, number, number, number][][][]
|
||||
|
||||
| Texture;
|
||||
|
||||
export interface IFunction {
|
||||
@ -516,7 +506,23 @@ export class Texture {
|
||||
kernel: Kernel;
|
||||
}
|
||||
|
||||
export type TextureArrayOutput = number[] | number[][] | number[][][] | number[][][][];
|
||||
export type TextureArrayOutput
|
||||
= number[]
|
||||
| number[][]
|
||||
| number[][][]
|
||||
|
||||
| [number, number][]
|
||||
| [number, number][][]
|
||||
| [number, number][][][]
|
||||
|
||||
| [number, number, number][]
|
||||
| [number, number, number][][]
|
||||
| [number, number, number][][][]
|
||||
|
||||
| [number, number, number, number][]
|
||||
| [number, number, number, number][][]
|
||||
| [number, number, number, number][][][]
|
||||
;
|
||||
|
||||
export interface IPlugin {
|
||||
source: string;
|
||||
@ -538,7 +544,7 @@ export class Input {
|
||||
|
||||
export type input = (value: number[], size: OutputDimensions) => Input;
|
||||
|
||||
export function alias(name: string, source: KernelFunction):KernelFunction;
|
||||
export function alias(name: string, source: KernelFunction): KernelFunction;
|
||||
|
||||
export class KernelValue {
|
||||
constructor(value: KernelValue, settings: IKernelValueSettings);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user