@holgerengels/compute-engine
Version:
Symbolic computing and numeric evaluations for JavaScript and Node.js
48 lines (47 loc) • 2.17 kB
TypeScript
/* 0.26.0-alpha2 */
import type { IComputeEngine, FunctionDefinition, BoxedFunctionDefinition, RuntimeScope } from '../public';
import type { BoxedExpression, CollectionHandlers, CompiledExpression, EvaluateOptions, Sign } from './public';
import { Type } from '../../common/type/types';
import { OneOf } from '../../common/one-of';
export declare class _BoxedFunctionDefinition implements BoxedFunctionDefinition {
engine: IComputeEngine;
scope: RuntimeScope;
name: string;
description?: string | string[];
wikidata?: string;
threadable: boolean;
associative: boolean;
commutative: boolean;
commutativeOrder: ((a: BoxedExpression, b: BoxedExpression) => number) | undefined;
idempotent: boolean;
involution: boolean;
pure: boolean;
complexity: number;
hold: boolean;
signature: Type;
inferredSignature: boolean;
type?: (ops: ReadonlyArray<BoxedExpression>, options: {
engine: IComputeEngine;
}) => Type | undefined;
sgn?: (ops: ReadonlyArray<BoxedExpression>, options: {
engine: IComputeEngine;
}) => Sign | undefined;
eq?: (a: BoxedExpression, b: BoxedExpression) => boolean | undefined;
neq?: (a: BoxedExpression, b: BoxedExpression) => boolean | undefined;
even?: (ops: ReadonlyArray<BoxedExpression>, options: {
engine: IComputeEngine;
}) => boolean | undefined;
canonical?: (ops: ReadonlyArray<BoxedExpression>, options: {
engine: IComputeEngine;
}) => BoxedExpression | null;
evaluate?: (ops: ReadonlyArray<BoxedExpression>, options: EvaluateOptions & {
engine: IComputeEngine;
}) => BoxedExpression | undefined;
evalDimension?: (ops: ReadonlyArray<BoxedExpression>, options: {
engine: IComputeEngine;
}) => BoxedExpression;
compile?: (expr: BoxedExpression) => CompiledExpression;
collection?: Partial<CollectionHandlers>;
constructor(ce: IComputeEngine, name: string, def: FunctionDefinition);
reset(): void;
}
export declare function makeFunctionDefinition(engine: IComputeEngine, name: string, def: OneOf<[FunctionDefinition | BoxedFunctionDefinition]>): BoxedFunctionDefinition;