@cortex-js/compute-engine 0.60.0 → 0.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compile.esm.js +1270 -25
- package/dist/compile.min.esm.js +324 -78
- package/dist/compile.min.umd.cjs +324 -78
- package/dist/compile.umd.cjs +1270 -25
- package/dist/compute-engine.esm.js +867 -26
- package/dist/compute-engine.min.esm.js +329 -83
- package/dist/compute-engine.min.umd.cjs +329 -83
- package/dist/compute-engine.umd.cjs +867 -26
- package/dist/core.esm.js +855 -24
- package/dist/core.min.esm.js +330 -84
- package/dist/core.min.umd.cjs +330 -84
- package/dist/core.umd.cjs +855 -24
- package/dist/identities.esm.js +2 -2
- package/dist/identities.min.esm.js +2 -2
- package/dist/identities.min.umd.cjs +2 -2
- package/dist/identities.umd.cjs +2 -2
- package/dist/integration-rules.esm.js +2 -2
- package/dist/integration-rules.min.esm.js +2 -2
- package/dist/integration-rules.min.umd.cjs +2 -2
- package/dist/integration-rules.umd.cjs +2 -2
- package/dist/interval.esm.js +2 -2
- package/dist/interval.min.esm.js +2 -2
- package/dist/interval.min.umd.cjs +2 -2
- package/dist/interval.umd.cjs +2 -2
- package/dist/latex-syntax.esm.js +2 -2
- package/dist/latex-syntax.min.esm.js +2 -2
- package/dist/latex-syntax.min.umd.cjs +2 -2
- package/dist/latex-syntax.umd.cjs +2 -2
- package/dist/math-json.esm.js +2 -2
- package/dist/math-json.min.esm.js +2 -2
- package/dist/math-json.min.umd.cjs +2 -2
- package/dist/math-json.umd.cjs +2 -2
- package/dist/numerics.esm.js +2 -2
- package/dist/numerics.min.esm.js +2 -2
- package/dist/numerics.min.umd.cjs +2 -2
- package/dist/numerics.umd.cjs +2 -2
- package/dist/types/big-decimal/big-decimal.d.ts +1 -1
- package/dist/types/big-decimal/index.d.ts +1 -1
- package/dist/types/big-decimal/transcendentals.d.ts +1 -1
- package/dist/types/big-decimal/utils.d.ts +1 -1
- package/dist/types/common/ansi-codes.d.ts +1 -1
- package/dist/types/common/configuration-change.d.ts +1 -1
- package/dist/types/common/fuzzy-string-match.d.ts +1 -1
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/interruptible.d.ts +1 -1
- package/dist/types/common/one-of.d.ts +1 -1
- package/dist/types/common/signals.d.ts +1 -1
- package/dist/types/common/type/ast-nodes.d.ts +1 -1
- package/dist/types/common/type/boxed-type.d.ts +1 -1
- package/dist/types/common/type/lexer.d.ts +1 -1
- package/dist/types/common/type/parse.d.ts +1 -1
- package/dist/types/common/type/parser.d.ts +1 -1
- package/dist/types/common/type/primitive.d.ts +1 -1
- package/dist/types/common/type/reduce.d.ts +1 -1
- package/dist/types/common/type/serialize.d.ts +1 -1
- package/dist/types/common/type/subtype.d.ts +1 -1
- package/dist/types/common/type/type-builder.d.ts +1 -1
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +1 -1
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compile.d.ts +2 -1
- package/dist/types/compute-engine/assume.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constraint-subject.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/exp-to-trig.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/multivariate-gcd.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/multivariate-poly.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rule-index.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
- package/dist/types/compute-engine/collection-utils.d.ts +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +79 -1
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
- package/dist/types/compute-engine/compilation/constant-folding.d.ts +1 -1
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +2 -2
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +7 -1
- package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +49 -0
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +30 -2
- package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +54 -2
- package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
- package/dist/types/compute-engine/cost-function.d.ts +1 -1
- package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
- package/dist/types/compute-engine/engine-cache.d.ts +1 -1
- package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
- package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
- package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
- package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
- package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
- package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
- package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
- package/dist/types/compute-engine/engine-runtime-state.d.ts +1 -1
- package/dist/types/compute-engine/engine-scope.d.ts +1 -1
- package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
- package/dist/types/compute-engine/engine-simplification-rules.d.ts +1 -1
- package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
- package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/free-functions.d.ts +1 -1
- package/dist/types/compute-engine/function-properties/index.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/loader.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/types.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +10 -1
- package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
- package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
- package/dist/types/compute-engine/interval/index.d.ts +1 -1
- package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
- package/dist/types/compute-engine/interval/types.d.ts +1 -1
- package/dist/types/compute-engine/interval/util.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-colors.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
- package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/calculus.d.ts +1 -1
- package/dist/types/compute-engine/library/collections.d.ts +1 -1
- package/dist/types/compute-engine/library/colors.d.ts +1 -1
- package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
- package/dist/types/compute-engine/library/complex.d.ts +1 -1
- package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
- package/dist/types/compute-engine/library/core.d.ts +1 -1
- package/dist/types/compute-engine/library/fractals.d.ts +1 -1
- package/dist/types/compute-engine/library/library.d.ts +1 -1
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
- package/dist/types/compute-engine/library/logic.d.ts +1 -1
- package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
- package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
- package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/sets.d.ts +1 -1
- package/dist/types/compute-engine/library/special-functions.d.ts +1 -1
- package/dist/types/compute-engine/library/statistics.d.ts +1 -1
- package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
- package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/library/units.d.ts +1 -1
- package/dist/types/compute-engine/library/utils.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bernoulli.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/complex-esm-augment.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
- package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
- package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
- package/dist/types/compute-engine/numerics/oscillatory-quadrature.d.ts +1 -1
- package/dist/types/compute-engine/numerics/polynomial-roots.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/random.d.ts +1 -1
- package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- package/dist/types/compute-engine/numerics/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/oeis.d.ts +1 -1
- package/dist/types/compute-engine/rubi/compile.d.ts +1 -1
- package/dist/types/compute-engine/rubi/driver.d.ts +1 -1
- package/dist/types/compute-engine/rubi/loader.d.ts +1 -1
- package/dist/types/compute-engine/rubi/match.d.ts +1 -1
- package/dist/types/compute-engine/rubi/normal-form.d.ts +1 -1
- package/dist/types/compute-engine/rubi/rubi-utils.d.ts +1 -1
- package/dist/types/compute-engine/rubi/types.d.ts +1 -1
- package/dist/types/compute-engine/sequence.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/limit.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/residue.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
- package/dist/types/compute-engine/types-definitions.d.ts +1 -1
- package/dist/types/compute-engine/types-engine.d.ts +11 -1
- package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-expression.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types.d.ts +1 -1
- package/dist/types/compute-engine.d.ts +1 -1
- package/dist/types/core.d.ts +1 -1
- package/dist/types/identities.d.ts +1 -1
- package/dist/types/integration-rules.d.ts +1 -1
- package/dist/types/interval.d.ts +1 -1
- package/dist/types/latex-syntax.d.ts +2 -2
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +1 -1
- package/dist/types/math-json/utils.d.ts +1 -1
- package/dist/types/math-json.d.ts +2 -2
- package/dist/types/numerics.d.ts +1 -1
- package/package.json +1 -1
package/dist/types/compile.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export { compile } from './compute-engine/compilation/compile-expression';
|
|
3
3
|
export { JavaScriptTarget } from './compute-engine/compilation/javascript-target';
|
|
4
4
|
export { GPUShaderTarget } from './compute-engine/compilation/gpu-target';
|
|
@@ -6,5 +6,6 @@ export { GLSLTarget } from './compute-engine/compilation/glsl-target';
|
|
|
6
6
|
export { WGSLTarget } from './compute-engine/compilation/wgsl-target';
|
|
7
7
|
export { PythonTarget } from './compute-engine/compilation/python-target';
|
|
8
8
|
export { IntervalJavaScriptTarget } from './compute-engine/compilation/interval-javascript-target';
|
|
9
|
+
export { IntervalGLSLTarget } from './compute-engine/compilation/interval-glsl-target';
|
|
9
10
|
export { BaseCompiler } from './compute-engine/compilation/base-compiler';
|
|
10
11
|
export type { CompileTarget, CompiledOperators, CompiledFunctions, CompilationOptions, CompilationResult, ExecutableTarget, ComplexResult, CompiledRunner, ExpressionRunner, LambdaRunner, LanguageTarget, TargetSource, CompiledFunction, } from './compute-engine/compilation/types';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import { BigDecimal } from '../../big-decimal';
|
|
3
3
|
import type { Expression } from '../global-types';
|
|
4
4
|
export declare function apply(expr: Expression, fn: (x: number) => number | Complex, bigFn?: (x: BigDecimal) => BigDecimal | Complex | number, complexFn?: (x: Complex) => number | Complex): Expression | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import type { SimplifyOptions, ReplaceOptions, PatternMatchOptions, Expression, BoxedBaseDefinition, BoxedOperatorDefinition, BoxedRuleSet, BoxedSubstitution, CanonicalOptions, EvaluateOptions, IComputeEngine as ComputeEngine, Metadata, Rule, Sign, Substitution, Scope, BoxedValueDefinition, ExpressionInput, FunctionInterface } from '../global-types';
|
|
3
3
|
import { Type } from '../../common/type/types';
|
|
4
4
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
3
3
|
import type { OperatorDefinition, Expression, BoxedOperatorDefinition, CollectionHandlers, CompiledExpression, EvaluateOptions, IComputeEngine as ComputeEngine, Scope, Sign } from '../global-types';
|
|
4
4
|
export declare class _BoxedOperatorDefinition implements BoxedOperatorDefinition {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import type { IComputeEngine as ComputeEngine, TensorDataType, Metadata, BoxedBaseDefinition, BoxedOperatorDefinition, BoxedSubstitution, EvaluateOptions, Expression, SimplifyOptions, PatternMatchOptions, Tensor, TensorInterface } from '../global-types';
|
|
3
3
|
import { BoxedType } from '../../common/type/boxed-type';
|
|
4
4
|
import { NumericValue } from '../numeric-value/types';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare function canonicalForm(expr: Expression, forms: CanonicalOptions, scope?: Scope): Expression;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare function choose(n: number, k: number): number;
|
|
3
3
|
/** Attempt to transform the expression (h, ops) into a sum */
|
|
4
4
|
export declare function expandFunction(ce: ComputeEngine, h: string, ops: ReadonlyArray<Expression>): Expression | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
export declare function isPrime(expr: Expression): boolean | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
/** Assuming x in an expression in radians, convert to current angular unit. */
|
|
3
3
|
export declare function radiansToAngle(x: Expression | undefined): Expression | undefined;
|
|
4
4
|
export declare function evalTrig(name: string, op: Expression | undefined): Expression | undefined;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import type { CompileTarget, TargetSource } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Base compiler class containing language-agnostic compilation logic
|
|
5
5
|
*/
|
|
6
6
|
export declare class BaseCompiler {
|
|
7
|
+
/**
|
|
8
|
+
* Precedence used when compiling a folded symbol value. Higher than any
|
|
9
|
+
* target's infix operator precedence, so a compound value parenthesizes
|
|
10
|
+
* itself when spliced into a surrounding expression. See
|
|
11
|
+
* `tryFoldKnownSymbol`.
|
|
12
|
+
*/
|
|
13
|
+
private static readonly FOLD_OPERAND_PREC;
|
|
7
14
|
/**
|
|
8
15
|
* Compile an expression to target language source code
|
|
9
16
|
*/
|
|
@@ -121,6 +128,77 @@ export declare class BaseCompiler {
|
|
|
121
128
|
static isIntegerValued(expr: Expression): boolean;
|
|
122
129
|
/** True if the expression is provably non-negative (sign ≥ 0). */
|
|
123
130
|
static isNonNegative(expr: Expression): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* If `id` names a symbol that is *known* to the engine — it has an assigned
|
|
133
|
+
* value (`ce.assign("a", 1.5)`) or is a declared constant — return the
|
|
134
|
+
* compiled target code for that value, i.e. **fold** the value into the
|
|
135
|
+
* generated code the way `evaluate()` does. Returns `undefined` for a
|
|
136
|
+
* genuinely free symbol (no value), so the caller falls back to its
|
|
137
|
+
* free-symbol plumbing (a `vars` mapping, a `_.id` argument lookup, or a
|
|
138
|
+
* declarable identifier).
|
|
139
|
+
*
|
|
140
|
+
* This keeps the compiled output consistent with `expr.unknowns` and
|
|
141
|
+
* `evaluate()`: a symbol they treat as known (folded / dropped) is also
|
|
142
|
+
* folded by `compile()`, instead of being emitted as a bare, dangling
|
|
143
|
+
* reference (an undeclared GLSL identifier, or a bare JS global that throws
|
|
144
|
+
* `ReferenceError` at run time).
|
|
145
|
+
*
|
|
146
|
+
* Callers MUST resolve any `vars` mapping for `id` **before** calling this,
|
|
147
|
+
* so an explicitly `vars`-mapped symbol is never folded — the GPU/JS live
|
|
148
|
+
* path relies on a mapped symbol staying a per-frame uniform / argument.
|
|
149
|
+
*
|
|
150
|
+
* `target` is the in-flight target: nested symbols inside the value resolve
|
|
151
|
+
* through the same `vars`/constant/fold rules as the top-level expression.
|
|
152
|
+
*
|
|
153
|
+
* The value is compiled at a high precedence so a compound (operator) value
|
|
154
|
+
* self-parenthesizes: folding `b = c + 1` into `b * x` must yield
|
|
155
|
+
* `(c + 1) * x`, not `c + 1 * x`, and must stay safe when a handler splices
|
|
156
|
+
* the folded string into its own expression (e.g. `Power`'s `(code * code)`).
|
|
157
|
+
* An atomic value (number, symbol, function call) ignores the precedence, so
|
|
158
|
+
* no redundant parentheses are added in the common assigned-number case.
|
|
159
|
+
*/
|
|
160
|
+
static tryFoldKnownSymbol(engine: ComputeEngine, id: string, target: CompileTarget<Expression>): string | undefined;
|
|
161
|
+
/**
|
|
162
|
+
* Operator heads the compiler lowers directly in `compileExpr`, independent
|
|
163
|
+
* of any target operator/function mapping (control-flow, binding, and
|
|
164
|
+
* indexing-set forms). `analyzeReferences` never reports these as
|
|
165
|
+
* "unsupported".
|
|
166
|
+
*/
|
|
167
|
+
private static readonly STRUCTURAL_HEADS;
|
|
168
|
+
/**
|
|
169
|
+
* Analyze — without compiling, and never throwing — which external references
|
|
170
|
+
* the generated code for `expr` would have on `target`:
|
|
171
|
+
*
|
|
172
|
+
* - `freeSymbols`: identifiers the caller must supply at run time. These are
|
|
173
|
+
* the free symbols *as codegen sees them*: symbols with no value in the
|
|
174
|
+
* engine, after descending into the values of folded (assigned / constant)
|
|
175
|
+
* symbols — so `a = b + 1` surfaces `b`, which `expr.unknowns` misses — and
|
|
176
|
+
* after excluding bound variables (lambda parameters, indices of
|
|
177
|
+
* `Sum`/`Product`/`Integrate`/`Loop`, `Block` locals). A `vars`-mapped
|
|
178
|
+
* symbol is always included: the mapping makes it an external input even
|
|
179
|
+
* when it also has an assigned value.
|
|
180
|
+
*
|
|
181
|
+
* - `unsupported`: operator heads with no operator/function mapping in the
|
|
182
|
+
* target and not one of the structural forms above.
|
|
183
|
+
*
|
|
184
|
+
* Lets a caller validate that a compiled result is self-contained
|
|
185
|
+
* (`freeSymbols` covered by its inputs, `unsupported` empty) declaratively,
|
|
186
|
+
* instead of executing or GPU-compiling the code to discover a dangling
|
|
187
|
+
* reference or an unlowerable operator.
|
|
188
|
+
*/
|
|
189
|
+
static analyzeReferences(expr: Expression, target: CompileTarget<Expression>, varsKeys?: ReadonlySet<string>): {
|
|
190
|
+
freeSymbols: string[];
|
|
191
|
+
unsupported: string[];
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Attach `freeSymbols` / `unsupported` (from `analyzeReferences`) to a
|
|
195
|
+
* compilation result, returning the same object. Used by the built-in
|
|
196
|
+
* targets to make every result carry its declarative reference analysis.
|
|
197
|
+
*/
|
|
198
|
+
static withReferences<R extends {
|
|
199
|
+
freeSymbols?: string[];
|
|
200
|
+
unsupported?: string[];
|
|
201
|
+
}>(result: R, expr: Expression, target: CompileTarget<Expression>, varsKeys?: ReadonlySet<string>): R;
|
|
124
202
|
/**
|
|
125
203
|
* Generate a temporary variable name
|
|
126
204
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import type { CompiledFunctions } from './types';
|
|
3
3
|
import { GPUShaderTarget } from './gpu-target';
|
|
4
4
|
/**
|
|
@@ -8,7 +8,7 @@ import { GPUShaderTarget } from './gpu-target';
|
|
|
8
8
|
* C-style function declarations, and `#version`-based shader structure.
|
|
9
9
|
*/
|
|
10
10
|
export declare class GLSLTarget extends GPUShaderTarget {
|
|
11
|
-
protected readonly languageId
|
|
11
|
+
protected readonly languageId: string;
|
|
12
12
|
protected getLanguageSpecificFunctions(): CompiledFunctions<Expression>;
|
|
13
13
|
compileFunction(expr: Expression, functionName: string, returnType: string, parameters: Array<[name: string, type: string]>): string;
|
|
14
14
|
compileShader(options: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.61.0 */
|
|
2
2
|
import type { CompileTarget, CompiledOperators, CompiledFunctions, LanguageTarget, CompilationOptions, CompilationResult } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* GPU shader operators shared by GLSL and WGSL.
|
|
@@ -196,6 +196,12 @@ export declare const GPU_COLOR_PREAMBLE_GLSL = "\nfloat _gpu_srgb_to_linear(floa
|
|
|
196
196
|
* their final color in `_gpu_oklch_to_srgb()`.
|
|
197
197
|
*/
|
|
198
198
|
export declare const GPU_COLOR_PREAMBLE_WGSL = "\nfn _gpu_srgb_to_linear(c: f32) -> f32 {\n if (c <= 0.04045) { return c / 12.92; }\n return pow((c + 0.055) / 1.055, 2.4);\n}\n\nfn _gpu_linear_to_srgb(c: f32) -> f32 {\n if (c <= 0.0031308) { return 12.92 * c; }\n return 1.055 * pow(c, 1.0 / 2.4) - 0.055;\n}\n\nfn _gpu_srgb_to_oklab(rgb: vec3f) -> vec3f {\n let r = _gpu_srgb_to_linear(rgb.x);\n let g = _gpu_srgb_to_linear(rgb.y);\n let b = _gpu_srgb_to_linear(rgb.z);\n let l_ = pow(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b, 1.0 / 3.0);\n let m_ = pow(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b, 1.0 / 3.0);\n let s_ = pow(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b, 1.0 / 3.0);\n return vec3f(\n 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_,\n 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_,\n 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_\n );\n}\n\nfn _gpu_oklab_to_srgb(lab: vec3f) -> vec3f {\n let l_ = lab.x + 0.3963377774 * lab.y + 0.2158037573 * lab.z;\n let m_ = lab.x - 0.1055613458 * lab.y - 0.0638541728 * lab.z;\n let s_ = lab.x - 0.0894841775 * lab.y - 1.291485548 * lab.z;\n let l = l_ * l_ * l_;\n let m = m_ * m_ * m_;\n let s = s_ * s_ * s_;\n let r = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;\n let g = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;\n let b = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s;\n return clamp(vec3f(_gpu_linear_to_srgb(r), _gpu_linear_to_srgb(g), _gpu_linear_to_srgb(b)), vec3f(0.0), vec3f(1.0));\n}\n\nfn _gpu_oklab_to_oklch(lab: vec3f) -> vec3f {\n let C = length(lab.yz);\n var H = atan2(lab.z, lab.y) * (180.0 / 3.14159265359);\n if (H < 0.0) { H = H + 360.0; }\n return vec3f(lab.x, C, H);\n}\n\nfn _gpu_oklch_to_oklab(lch: vec3f) -> vec3f {\n let h_rad = lch.z * (3.14159265359 / 180.0);\n return vec3f(lch.x, lch.y * cos(h_rad), lch.y * sin(h_rad));\n}\n\nfn _gpu_srgb_to_oklch(rgb: vec3f) -> vec3f {\n return _gpu_oklab_to_oklch(_gpu_srgb_to_oklab(rgb));\n}\n\nfn _gpu_oklch_to_srgb(lch: vec3f) -> vec3f {\n return _gpu_oklab_to_srgb(_gpu_oklch_to_oklab(lch));\n}\n\nfn _gpu_hsl_to_rgb(hsl: vec3f) -> vec3f {\n let h = hsl.x;\n let s = hsl.y;\n let l = hsl.z;\n let c = (1.0 - abs(2.0 * l - 1.0)) * s;\n let h6 = h / 60.0;\n let x = c * (1.0 - abs((h6 - 2.0 * floor(h6 / 2.0)) - 1.0));\n var r: f32 = 0.0;\n var g: f32 = 0.0;\n var b: f32 = 0.0;\n if (h6 < 1.0) { r = c; g = x; b = 0.0; }\n else if (h6 < 2.0) { r = x; g = c; b = 0.0; }\n else if (h6 < 3.0) { r = 0.0; g = c; b = x; }\n else if (h6 < 4.0) { r = 0.0; g = x; b = c; }\n else if (h6 < 5.0) { r = x; g = 0.0; b = c; }\n else { r = c; g = 0.0; b = x; }\n let m = l - c / 2.0;\n return vec3f(r + m, g + m, b + m);\n}\n\nfn _gpu_rgb_to_hsl(rgb: vec3f) -> vec3f {\n let maxc = max(max(rgb.x, rgb.y), rgb.z);\n let minc = min(min(rgb.x, rgb.y), rgb.z);\n let l = (maxc + minc) / 2.0;\n let d = maxc - minc;\n if (d < 1e-6) { return vec3f(0.0, 0.0, l); }\n let s = d / (1.0 - abs(2.0 * l - 1.0));\n var h: f32;\n if (maxc == rgb.x) {\n let v = (rgb.y - rgb.z) / d;\n h = v - 6.0 * floor(v / 6.0);\n } else if (maxc == rgb.y) {\n h = (rgb.z - rgb.x) / d + 2.0;\n } else {\n h = (rgb.x - rgb.y) / d + 4.0;\n }\n h = h * 60.0;\n if (h < 0.0) { h = h + 360.0; }\n return vec3f(h, s, l);\n}\n\nfn _gpu_hsv_to_rgb(hsv: vec3f) -> vec3f {\n let h = hsv.x;\n let s = hsv.y;\n let v = hsv.z;\n let c = v * s;\n let h6 = h / 60.0;\n let x = c * (1.0 - abs((h6 - 2.0 * floor(h6 / 2.0)) - 1.0));\n var r: f32 = 0.0;\n var g: f32 = 0.0;\n var b: f32 = 0.0;\n if (h6 < 1.0) { r = c; g = x; b = 0.0; }\n else if (h6 < 2.0) { r = x; g = c; b = 0.0; }\n else if (h6 < 3.0) { r = 0.0; g = c; b = x; }\n else if (h6 < 4.0) { r = 0.0; g = x; b = c; }\n else if (h6 < 5.0) { r = x; g = 0.0; b = c; }\n else { r = c; g = 0.0; b = x; }\n let m = v - c;\n return vec3f(r + m, g + m, b + m);\n}\n\nfn _gpu_rgb_to_hsv(rgb: vec3f) -> vec3f {\n let maxc = max(max(rgb.x, rgb.y), rgb.z);\n let minc = min(min(rgb.x, rgb.y), rgb.z);\n let v = maxc;\n let d = maxc - minc;\n if (d < 1e-6) { return vec3f(0.0, 0.0, v); }\n var s: f32 = 0.0;\n if (maxc >= 1e-6) { s = d / maxc; }\n var h: f32;\n if (maxc == rgb.x) {\n let q = (rgb.y - rgb.z) / d;\n h = q - 6.0 * floor(q / 6.0);\n } else if (maxc == rgb.y) {\n h = (rgb.z - rgb.x) / d + 2.0;\n } else {\n h = (rgb.x - rgb.y) / d + 4.0;\n }\n h = h * 60.0;\n if (h < 0.0) { h = h + 360.0; }\n return vec3f(h, s, v);\n}\n\nfn _gpu_color_mix(lch1: vec3f, lch2: vec3f, t: f32) -> vec3f {\n let L = mix(lch1.x, lch2.x, t);\n let C = mix(lch1.y, lch2.y, t);\n let a1 = lch1.y < 1e-6;\n let a2 = lch2.y < 1e-6;\n var H: f32;\n if (a1 && a2) {\n H = lch1.z;\n } else if (a1) {\n H = lch2.z;\n } else if (a2) {\n H = lch1.z;\n } else {\n var dh = lch2.z - lch1.z;\n if (dh > 180.0) { dh = dh - 360.0; }\n if (dh < -180.0) { dh = dh + 360.0; }\n H = lch1.z + dh * t;\n if (H < 0.0) { H = H + 360.0; }\n if (H >= 360.0) { H = H - 360.0; }\n }\n return vec3f(L, C, H);\n}\n\nfn _gpu_apca(lch_bg: vec3f, lch_fg: vec3f) -> f32 {\n let bg = _gpu_oklch_to_srgb(lch_bg);\n let fg = _gpu_oklch_to_srgb(lch_fg);\n let bgR = _gpu_srgb_to_linear(bg.x);\n let bgG = _gpu_srgb_to_linear(bg.y);\n let bgB = _gpu_srgb_to_linear(bg.z);\n let fgR = _gpu_srgb_to_linear(fg.x);\n let fgG = _gpu_srgb_to_linear(fg.y);\n let fgB = _gpu_srgb_to_linear(fg.z);\n let bgY = 0.2126729 * bgR + 0.7151522 * bgG + 0.0721750 * bgB;\n let fgY = 0.2126729 * fgR + 0.7151522 * fgG + 0.0721750 * fgB;\n let bgC = pow(bgY, 0.56);\n let fgC = pow(fgY, 0.57);\n let contrast = (bgC - fgC) * 1.14;\n return contrast * 100.0;\n}\n";
|
|
199
|
+
/**
|
|
200
|
+
* Format a number as a GPU float literal.
|
|
201
|
+
*
|
|
202
|
+
* Both GLSL and WGSL require float literals to have a decimal point.
|
|
203
|
+
*/
|
|
204
|
+
export declare function formatGPUNumber(n: number): string;
|
|
199
205
|
/**
|
|
200
206
|
* Abstract base class for GPU shader compilation targets.
|
|
201
207
|
*
|