@types/cwise-compiler
Version:
TypeScript definitions for cwise-compiler
47 lines (43 loc) • 1.28 kB
TypeScript
import { CompiledRoutine } from "cwise-parser";
import { NdArray } from "ndarray";
declare namespace cwise_compiler {
interface BlockIndice {
blockIndices: number;
}
interface OffsetArg {
offset: number[];
array: number;
}
type ArgType = "array" | "offset" | "shape" | "scalar" | "index" | BlockIndice | OffsetArg;
interface UserArgs {
args: ArgType[];
pre: CompiledRoutine;
body: CompiledRoutine;
post: CompiledRoutine;
debug: boolean;
funcName: string;
blockSize: number;
printCode?: boolean | undefined;
}
interface Procedure {
argTypes: ArgType[];
shimArgs: string[];
arrayArgs: number[];
arrayBlockIndices: number[];
scalarArgs: number[];
offsetArgs: OffsetArg[];
offsetArgIndex: number[];
indexArgs: number[];
shapeArgs: number[];
funcName: string;
pre: CompiledRoutine;
body: CompiledRoutine;
post: CompiledRoutine;
debug: boolean;
blockSize?: number | undefined;
}
}
declare function cwise_compiler(
user_args: cwise_compiler.UserArgs,
): (a: NdArray, b: NdArray, ...args: NdArray[]) => NdArray;
export = cwise_compiler;