@cortex-js/compute-engine 0.55.4 → 0.55.5
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 +100 -13
- package/dist/compile.min.esm.js +101 -49
- package/dist/compile.min.umd.cjs +101 -49
- package/dist/compile.umd.cjs +100 -13
- package/dist/compute-engine.esm.js +102 -14
- package/dist/compute-engine.min.esm.js +114 -62
- package/dist/compute-engine.min.umd.cjs +114 -62
- package/dist/compute-engine.umd.cjs +102 -14
- package/dist/core.esm.js +100 -13
- package/dist/core.min.esm.js +113 -61
- package/dist/core.min.umd.cjs +113 -61
- package/dist/core.umd.cjs +100 -13
- 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 +1 -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/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/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/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 +1 -1
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +3 -2
- package/dist/types/compute-engine/compilation/constant-folding.d.ts +1 -1
- package/dist/types/compute-engine/compilation/fractal-orbit.d.ts +9 -3
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +12 -5
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +22 -3
- 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-utils.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +3 -2
- 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-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/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/bigint.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/primes.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/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/logic-utils.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 +1 -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 +3 -2
- package/dist/types/core.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/compile.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Compile 0.55.
|
|
1
|
+
/** Compile 0.55.5 */
|
|
2
2
|
(function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Compile = {}));})(this, (function (exports) { 'use strict';
|
|
3
3
|
var Compile = (() => {
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -15099,7 +15099,8 @@ ${lines.join("\n")}`;
|
|
|
15099
15099
|
vars: options?.vars,
|
|
15100
15100
|
imports: options?.imports,
|
|
15101
15101
|
preamble: options?.preamble,
|
|
15102
|
-
realOnly: options?.realOnly
|
|
15102
|
+
realOnly: options?.realOnly,
|
|
15103
|
+
hints: options?.hints
|
|
15103
15104
|
});
|
|
15104
15105
|
} catch (e) {
|
|
15105
15106
|
if (options?.fallback ?? true) {
|
|
@@ -20782,12 +20783,22 @@ ${lines.join("\n")}`;
|
|
|
20782
20783
|
}
|
|
20783
20784
|
|
|
20784
20785
|
// src/compute-engine/compilation/fractal-orbit.ts
|
|
20786
|
+
function toBigDecimal(v) {
|
|
20787
|
+
if (typeof v === "object" && "hi" in v)
|
|
20788
|
+
return new BigDecimal(v.hi).add(new BigDecimal(v.lo));
|
|
20789
|
+
return new BigDecimal(v);
|
|
20790
|
+
}
|
|
20791
|
+
function hpToNumber(v) {
|
|
20792
|
+
if (typeof v === "number") return v;
|
|
20793
|
+
if (typeof v === "string") return Number(v);
|
|
20794
|
+
return v.hi + v.lo;
|
|
20795
|
+
}
|
|
20785
20796
|
function computeReferenceOrbit(center, maxIter, precision) {
|
|
20786
20797
|
const prevPrecision = BigDecimal.precision;
|
|
20787
20798
|
BigDecimal.precision = precision;
|
|
20788
20799
|
try {
|
|
20789
|
-
const cr =
|
|
20790
|
-
const ci =
|
|
20800
|
+
const cr = toBigDecimal(center[0]);
|
|
20801
|
+
const ci = toBigDecimal(center[1]);
|
|
20791
20802
|
let zr = BigDecimal.ZERO;
|
|
20792
20803
|
let zi = BigDecimal.ZERO;
|
|
20793
20804
|
const ESCAPE = new BigDecimal(256);
|
|
@@ -21395,12 +21406,12 @@ ${lines.join("\n")}`;
|
|
|
21395
21406
|
const iterCode = compileIntArg(maxIter, compile2, target);
|
|
21396
21407
|
const strategy = selectFractalStrategy(target);
|
|
21397
21408
|
if (strategy === "double") {
|
|
21398
|
-
const
|
|
21399
|
-
return `_fractal_mandelbrot_dp(
|
|
21409
|
+
const dpCoord = target?.language === "wgsl" ? "_dp_coord(v_uv)" : "_dp_coord()";
|
|
21410
|
+
return `_fractal_mandelbrot_dp(${dpCoord}, ${iterCode})`;
|
|
21400
21411
|
}
|
|
21401
21412
|
if (strategy === "perturbation") {
|
|
21402
|
-
const
|
|
21403
|
-
return `_fractal_mandelbrot_pt(${
|
|
21413
|
+
const ptDelta = target?.language === "wgsl" ? "_pt_delta(v_uv)" : "_pt_delta()";
|
|
21414
|
+
return `_fractal_mandelbrot_pt(${ptDelta}, ${iterCode})`;
|
|
21404
21415
|
}
|
|
21405
21416
|
return `_fractal_mandelbrot(${compile2(c)}, ${iterCode})`;
|
|
21406
21417
|
},
|
|
@@ -21410,14 +21421,14 @@ ${lines.join("\n")}`;
|
|
|
21410
21421
|
const iterCode = compileIntArg(maxIter, compile2, target);
|
|
21411
21422
|
const strategy = selectFractalStrategy(target);
|
|
21412
21423
|
if (strategy === "double") {
|
|
21413
|
-
const
|
|
21424
|
+
const dpCoord = target?.language === "wgsl" ? "_dp_coord(v_uv)" : "_dp_coord()";
|
|
21414
21425
|
const cCode = compile2(c);
|
|
21415
|
-
return `_fractal_julia_dp(
|
|
21426
|
+
return `_fractal_julia_dp(${dpCoord}, vec4(${cCode}, vec2(0.0)), ${iterCode})`;
|
|
21416
21427
|
}
|
|
21417
21428
|
if (strategy === "perturbation") {
|
|
21418
|
-
const
|
|
21429
|
+
const ptDelta = target?.language === "wgsl" ? "_pt_delta(v_uv)" : "_pt_delta()";
|
|
21419
21430
|
const cCode = compile2(c);
|
|
21420
|
-
return `_fractal_julia_pt(${
|
|
21431
|
+
return `_fractal_julia_pt(${ptDelta}, ${cCode}, ${iterCode})`;
|
|
21421
21432
|
}
|
|
21422
21433
|
return `_fractal_julia(${compile2(z)}, ${compile2(c)}, ${iterCode})`;
|
|
21423
21434
|
},
|
|
@@ -22132,6 +22143,23 @@ fn ds_cmp(a: vec2f, b: vec2f) -> f32 {
|
|
|
22132
22143
|
}
|
|
22133
22144
|
`;
|
|
22134
22145
|
var GPU_FRACTAL_DP_PREAMBLE_GLSL = `
|
|
22146
|
+
uniform float _dp_cx_hi;
|
|
22147
|
+
uniform float _dp_cx_lo;
|
|
22148
|
+
uniform float _dp_cy_hi;
|
|
22149
|
+
uniform float _dp_cy_lo;
|
|
22150
|
+
uniform float _dp_w;
|
|
22151
|
+
uniform float _dp_h;
|
|
22152
|
+
|
|
22153
|
+
vec4 _dp_coord() {
|
|
22154
|
+
// Per-pixel offset from center \u2014 small, so float-precise
|
|
22155
|
+
float dx = (v_uv.x - 0.5) * _dp_w;
|
|
22156
|
+
float dy = (v_uv.y - 0.5) * _dp_h;
|
|
22157
|
+
// Combine center (hi+lo) + delta with emulated double precision
|
|
22158
|
+
vec2 cre = ds_add(vec2(_dp_cx_hi, _dp_cx_lo), ds_from(dx));
|
|
22159
|
+
vec2 cim = ds_add(vec2(_dp_cy_hi, _dp_cy_lo), ds_from(dy));
|
|
22160
|
+
return vec4(cre.x, cim.x, cre.y, cim.y);
|
|
22161
|
+
}
|
|
22162
|
+
|
|
22135
22163
|
float _fractal_mandelbrot_dp(vec4 c, int maxIter) {
|
|
22136
22164
|
// c = (re_hi, im_hi, re_lo, im_lo)
|
|
22137
22165
|
vec2 cr = vec2(c.x, c.z); // real part as ds
|
|
@@ -22172,6 +22200,21 @@ float _fractal_julia_dp(vec4 z_in, vec4 c, int maxIter) {
|
|
|
22172
22200
|
}
|
|
22173
22201
|
`;
|
|
22174
22202
|
var GPU_FRACTAL_DP_PREAMBLE_WGSL = `
|
|
22203
|
+
@group(0) @binding(10) var<uniform> _dp_cx_hi: f32;
|
|
22204
|
+
@group(0) @binding(11) var<uniform> _dp_cx_lo: f32;
|
|
22205
|
+
@group(0) @binding(12) var<uniform> _dp_cy_hi: f32;
|
|
22206
|
+
@group(0) @binding(13) var<uniform> _dp_cy_lo: f32;
|
|
22207
|
+
@group(0) @binding(14) var<uniform> _dp_w: f32;
|
|
22208
|
+
@group(0) @binding(15) var<uniform> _dp_h: f32;
|
|
22209
|
+
|
|
22210
|
+
fn _dp_coord(uv: vec2f) -> vec4f {
|
|
22211
|
+
let dx = (uv.x - 0.5) * _dp_w;
|
|
22212
|
+
let dy = (uv.y - 0.5) * _dp_h;
|
|
22213
|
+
let cre = ds_add(vec2f(_dp_cx_hi, _dp_cx_lo), ds_from(dx));
|
|
22214
|
+
let cim = ds_add(vec2f(_dp_cy_hi, _dp_cy_lo), ds_from(dy));
|
|
22215
|
+
return vec4f(cre.x, cim.x, cre.y, cim.y);
|
|
22216
|
+
}
|
|
22217
|
+
|
|
22175
22218
|
fn _fractal_mandelbrot_dp(c: vec4f, maxIter: i32) -> f32 {
|
|
22176
22219
|
let cr = vec2f(c.x, c.z);
|
|
22177
22220
|
let ci = vec2f(c.y, c.w);
|
|
@@ -22257,6 +22300,16 @@ fn _fractal_julia(z_in: vec2f, c: vec2f, maxIter: i32) -> f32 {
|
|
|
22257
22300
|
uniform sampler2D _refOrbit;
|
|
22258
22301
|
uniform int _refOrbitLen;
|
|
22259
22302
|
uniform int _refOrbitTexWidth;
|
|
22303
|
+
uniform float _pt_offset_x;
|
|
22304
|
+
uniform float _pt_offset_y;
|
|
22305
|
+
uniform float _pt_w;
|
|
22306
|
+
uniform float _pt_h;
|
|
22307
|
+
|
|
22308
|
+
vec2 _pt_delta() {
|
|
22309
|
+
float dx = _pt_offset_x + (v_uv.x - 0.5) * _pt_w;
|
|
22310
|
+
float dy = _pt_offset_y + (v_uv.y - 0.5) * _pt_h;
|
|
22311
|
+
return vec2(dx, dy);
|
|
22312
|
+
}
|
|
22260
22313
|
|
|
22261
22314
|
vec2 _pt_fetch_orbit(int i) {
|
|
22262
22315
|
int y = i / _refOrbitTexWidth;
|
|
@@ -22348,6 +22401,16 @@ float _fractal_julia_pt(vec2 z_delta, vec2 delta_c, int maxIter) {
|
|
|
22348
22401
|
@group(0) @binding(1) var _refOrbit: texture_2d<f32>;
|
|
22349
22402
|
var<uniform> _refOrbitLen: i32;
|
|
22350
22403
|
var<uniform> _refOrbitTexWidth: i32;
|
|
22404
|
+
var<uniform> _pt_offset_x: f32;
|
|
22405
|
+
var<uniform> _pt_offset_y: f32;
|
|
22406
|
+
var<uniform> _pt_w: f32;
|
|
22407
|
+
var<uniform> _pt_h: f32;
|
|
22408
|
+
|
|
22409
|
+
fn _pt_delta(uv: vec2f) -> vec2f {
|
|
22410
|
+
let dx = _pt_offset_x + (uv.x - 0.5) * _pt_w;
|
|
22411
|
+
let dy = _pt_offset_y + (uv.y - 0.5) * _pt_h;
|
|
22412
|
+
return vec2f(dx, dy);
|
|
22413
|
+
}
|
|
22351
22414
|
|
|
22352
22415
|
fn _pt_fetch_orbit(i: i32) -> vec2f {
|
|
22353
22416
|
let y = i / _refOrbitTexWidth;
|
|
@@ -22945,8 +23008,32 @@ fn _gpu_apca(bg: vec3f, fg: vec3f) -> f32 {
|
|
|
22945
23008
|
break;
|
|
22946
23009
|
}
|
|
22947
23010
|
}
|
|
23011
|
+
if ((code.includes("_fractal_mandelbrot_dp") || code.includes("_fractal_julia_dp")) && options.hints?.viewport) {
|
|
23012
|
+
const cx = hpToNumber(options.hints.viewport.center[0]);
|
|
23013
|
+
const cy = hpToNumber(options.hints.viewport.center[1]);
|
|
23014
|
+
const size = options.hints.viewport.radius * 2;
|
|
23015
|
+
const cx_hi = Math.fround(cx);
|
|
23016
|
+
const cy_hi = Math.fround(cy);
|
|
23017
|
+
result.uniforms = {
|
|
23018
|
+
...result.uniforms,
|
|
23019
|
+
_dp_cx_hi: cx_hi,
|
|
23020
|
+
_dp_cx_lo: cx - cx_hi,
|
|
23021
|
+
_dp_cy_hi: cy_hi,
|
|
23022
|
+
_dp_cy_lo: cy - cy_hi,
|
|
23023
|
+
_dp_w: size,
|
|
23024
|
+
_dp_h: size
|
|
23025
|
+
};
|
|
23026
|
+
}
|
|
22948
23027
|
if ((code.includes("_fractal_mandelbrot_pt") || code.includes("_fractal_julia_pt")) && options.hints?.viewport) {
|
|
22949
23028
|
const viewport = options.hints.viewport;
|
|
23029
|
+
const size = viewport.radius * 2;
|
|
23030
|
+
result.uniforms = {
|
|
23031
|
+
...result.uniforms,
|
|
23032
|
+
_pt_offset_x: 0,
|
|
23033
|
+
_pt_offset_y: 0,
|
|
23034
|
+
_pt_w: size,
|
|
23035
|
+
_pt_h: size
|
|
23036
|
+
};
|
|
22950
23037
|
const digits = Math.max(50, Math.ceil(-Math.log10(viewport.radius)) + 10);
|
|
22951
23038
|
const maxIter = 1e3;
|
|
22952
23039
|
const orbit = computeReferenceOrbit(
|
|
@@ -25305,7 +25392,7 @@ ${code}`;
|
|
|
25305
25392
|
}
|
|
25306
25393
|
|
|
25307
25394
|
// src/compile.ts
|
|
25308
|
-
var version = "0.55.
|
|
25395
|
+
var version = "0.55.5";
|
|
25309
25396
|
return __toCommonJS(compile_exports);
|
|
25310
25397
|
})();
|
|
25311
25398
|
/*! Bundled license information:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Compute Engine 0.55.
|
|
1
|
+
/** Compute Engine 0.55.5 */
|
|
2
2
|
|
|
3
3
|
// node_modules/complex-esm/dist/src/complex.js
|
|
4
4
|
var cosh = Math.cosh || function(x) {
|
|
@@ -54763,7 +54763,8 @@ function compile(expr2, options) {
|
|
|
54763
54763
|
vars: options?.vars,
|
|
54764
54764
|
imports: options?.imports,
|
|
54765
54765
|
preamble: options?.preamble,
|
|
54766
|
-
realOnly: options?.realOnly
|
|
54766
|
+
realOnly: options?.realOnly,
|
|
54767
|
+
hints: options?.hints
|
|
54767
54768
|
});
|
|
54768
54769
|
} catch (e) {
|
|
54769
54770
|
if (options?.fallback ?? true) {
|
|
@@ -61264,12 +61265,22 @@ function fibonacci(n) {
|
|
|
61264
61265
|
}
|
|
61265
61266
|
|
|
61266
61267
|
// src/compute-engine/compilation/fractal-orbit.ts
|
|
61268
|
+
function toBigDecimal(v) {
|
|
61269
|
+
if (typeof v === "object" && "hi" in v)
|
|
61270
|
+
return new BigDecimal(v.hi).add(new BigDecimal(v.lo));
|
|
61271
|
+
return new BigDecimal(v);
|
|
61272
|
+
}
|
|
61273
|
+
function hpToNumber(v) {
|
|
61274
|
+
if (typeof v === "number") return v;
|
|
61275
|
+
if (typeof v === "string") return Number(v);
|
|
61276
|
+
return v.hi + v.lo;
|
|
61277
|
+
}
|
|
61267
61278
|
function computeReferenceOrbit(center, maxIter, precision) {
|
|
61268
61279
|
const prevPrecision = BigDecimal.precision;
|
|
61269
61280
|
BigDecimal.precision = precision;
|
|
61270
61281
|
try {
|
|
61271
|
-
const cr =
|
|
61272
|
-
const ci =
|
|
61282
|
+
const cr = toBigDecimal(center[0]);
|
|
61283
|
+
const ci = toBigDecimal(center[1]);
|
|
61273
61284
|
let zr = BigDecimal.ZERO;
|
|
61274
61285
|
let zi = BigDecimal.ZERO;
|
|
61275
61286
|
const ESCAPE = new BigDecimal(256);
|
|
@@ -61877,12 +61888,12 @@ var GPU_FUNCTIONS = {
|
|
|
61877
61888
|
const iterCode = compileIntArg(maxIter, compile3, target);
|
|
61878
61889
|
const strategy = selectFractalStrategy(target);
|
|
61879
61890
|
if (strategy === "double") {
|
|
61880
|
-
const
|
|
61881
|
-
return `_fractal_mandelbrot_dp(
|
|
61891
|
+
const dpCoord = target?.language === "wgsl" ? "_dp_coord(v_uv)" : "_dp_coord()";
|
|
61892
|
+
return `_fractal_mandelbrot_dp(${dpCoord}, ${iterCode})`;
|
|
61882
61893
|
}
|
|
61883
61894
|
if (strategy === "perturbation") {
|
|
61884
|
-
const
|
|
61885
|
-
return `_fractal_mandelbrot_pt(${
|
|
61895
|
+
const ptDelta = target?.language === "wgsl" ? "_pt_delta(v_uv)" : "_pt_delta()";
|
|
61896
|
+
return `_fractal_mandelbrot_pt(${ptDelta}, ${iterCode})`;
|
|
61886
61897
|
}
|
|
61887
61898
|
return `_fractal_mandelbrot(${compile3(c)}, ${iterCode})`;
|
|
61888
61899
|
},
|
|
@@ -61892,14 +61903,14 @@ var GPU_FUNCTIONS = {
|
|
|
61892
61903
|
const iterCode = compileIntArg(maxIter, compile3, target);
|
|
61893
61904
|
const strategy = selectFractalStrategy(target);
|
|
61894
61905
|
if (strategy === "double") {
|
|
61895
|
-
const
|
|
61906
|
+
const dpCoord = target?.language === "wgsl" ? "_dp_coord(v_uv)" : "_dp_coord()";
|
|
61896
61907
|
const cCode = compile3(c);
|
|
61897
|
-
return `_fractal_julia_dp(
|
|
61908
|
+
return `_fractal_julia_dp(${dpCoord}, vec4(${cCode}, vec2(0.0)), ${iterCode})`;
|
|
61898
61909
|
}
|
|
61899
61910
|
if (strategy === "perturbation") {
|
|
61900
|
-
const
|
|
61911
|
+
const ptDelta = target?.language === "wgsl" ? "_pt_delta(v_uv)" : "_pt_delta()";
|
|
61901
61912
|
const cCode = compile3(c);
|
|
61902
|
-
return `_fractal_julia_pt(${
|
|
61913
|
+
return `_fractal_julia_pt(${ptDelta}, ${cCode}, ${iterCode})`;
|
|
61903
61914
|
}
|
|
61904
61915
|
return `_fractal_julia(${compile3(z)}, ${compile3(c)}, ${iterCode})`;
|
|
61905
61916
|
},
|
|
@@ -62614,6 +62625,23 @@ fn ds_cmp(a: vec2f, b: vec2f) -> f32 {
|
|
|
62614
62625
|
}
|
|
62615
62626
|
`;
|
|
62616
62627
|
var GPU_FRACTAL_DP_PREAMBLE_GLSL = `
|
|
62628
|
+
uniform float _dp_cx_hi;
|
|
62629
|
+
uniform float _dp_cx_lo;
|
|
62630
|
+
uniform float _dp_cy_hi;
|
|
62631
|
+
uniform float _dp_cy_lo;
|
|
62632
|
+
uniform float _dp_w;
|
|
62633
|
+
uniform float _dp_h;
|
|
62634
|
+
|
|
62635
|
+
vec4 _dp_coord() {
|
|
62636
|
+
// Per-pixel offset from center \u2014 small, so float-precise
|
|
62637
|
+
float dx = (v_uv.x - 0.5) * _dp_w;
|
|
62638
|
+
float dy = (v_uv.y - 0.5) * _dp_h;
|
|
62639
|
+
// Combine center (hi+lo) + delta with emulated double precision
|
|
62640
|
+
vec2 cre = ds_add(vec2(_dp_cx_hi, _dp_cx_lo), ds_from(dx));
|
|
62641
|
+
vec2 cim = ds_add(vec2(_dp_cy_hi, _dp_cy_lo), ds_from(dy));
|
|
62642
|
+
return vec4(cre.x, cim.x, cre.y, cim.y);
|
|
62643
|
+
}
|
|
62644
|
+
|
|
62617
62645
|
float _fractal_mandelbrot_dp(vec4 c, int maxIter) {
|
|
62618
62646
|
// c = (re_hi, im_hi, re_lo, im_lo)
|
|
62619
62647
|
vec2 cr = vec2(c.x, c.z); // real part as ds
|
|
@@ -62654,6 +62682,21 @@ float _fractal_julia_dp(vec4 z_in, vec4 c, int maxIter) {
|
|
|
62654
62682
|
}
|
|
62655
62683
|
`;
|
|
62656
62684
|
var GPU_FRACTAL_DP_PREAMBLE_WGSL = `
|
|
62685
|
+
@group(0) @binding(10) var<uniform> _dp_cx_hi: f32;
|
|
62686
|
+
@group(0) @binding(11) var<uniform> _dp_cx_lo: f32;
|
|
62687
|
+
@group(0) @binding(12) var<uniform> _dp_cy_hi: f32;
|
|
62688
|
+
@group(0) @binding(13) var<uniform> _dp_cy_lo: f32;
|
|
62689
|
+
@group(0) @binding(14) var<uniform> _dp_w: f32;
|
|
62690
|
+
@group(0) @binding(15) var<uniform> _dp_h: f32;
|
|
62691
|
+
|
|
62692
|
+
fn _dp_coord(uv: vec2f) -> vec4f {
|
|
62693
|
+
let dx = (uv.x - 0.5) * _dp_w;
|
|
62694
|
+
let dy = (uv.y - 0.5) * _dp_h;
|
|
62695
|
+
let cre = ds_add(vec2f(_dp_cx_hi, _dp_cx_lo), ds_from(dx));
|
|
62696
|
+
let cim = ds_add(vec2f(_dp_cy_hi, _dp_cy_lo), ds_from(dy));
|
|
62697
|
+
return vec4f(cre.x, cim.x, cre.y, cim.y);
|
|
62698
|
+
}
|
|
62699
|
+
|
|
62657
62700
|
fn _fractal_mandelbrot_dp(c: vec4f, maxIter: i32) -> f32 {
|
|
62658
62701
|
let cr = vec2f(c.x, c.z);
|
|
62659
62702
|
let ci = vec2f(c.y, c.w);
|
|
@@ -62739,6 +62782,16 @@ var GPU_FRACTAL_PT_PREAMBLE_GLSL = `
|
|
|
62739
62782
|
uniform sampler2D _refOrbit;
|
|
62740
62783
|
uniform int _refOrbitLen;
|
|
62741
62784
|
uniform int _refOrbitTexWidth;
|
|
62785
|
+
uniform float _pt_offset_x;
|
|
62786
|
+
uniform float _pt_offset_y;
|
|
62787
|
+
uniform float _pt_w;
|
|
62788
|
+
uniform float _pt_h;
|
|
62789
|
+
|
|
62790
|
+
vec2 _pt_delta() {
|
|
62791
|
+
float dx = _pt_offset_x + (v_uv.x - 0.5) * _pt_w;
|
|
62792
|
+
float dy = _pt_offset_y + (v_uv.y - 0.5) * _pt_h;
|
|
62793
|
+
return vec2(dx, dy);
|
|
62794
|
+
}
|
|
62742
62795
|
|
|
62743
62796
|
vec2 _pt_fetch_orbit(int i) {
|
|
62744
62797
|
int y = i / _refOrbitTexWidth;
|
|
@@ -62830,6 +62883,16 @@ var GPU_FRACTAL_PT_PREAMBLE_WGSL = `
|
|
|
62830
62883
|
@group(0) @binding(1) var _refOrbit: texture_2d<f32>;
|
|
62831
62884
|
var<uniform> _refOrbitLen: i32;
|
|
62832
62885
|
var<uniform> _refOrbitTexWidth: i32;
|
|
62886
|
+
var<uniform> _pt_offset_x: f32;
|
|
62887
|
+
var<uniform> _pt_offset_y: f32;
|
|
62888
|
+
var<uniform> _pt_w: f32;
|
|
62889
|
+
var<uniform> _pt_h: f32;
|
|
62890
|
+
|
|
62891
|
+
fn _pt_delta(uv: vec2f) -> vec2f {
|
|
62892
|
+
let dx = _pt_offset_x + (uv.x - 0.5) * _pt_w;
|
|
62893
|
+
let dy = _pt_offset_y + (uv.y - 0.5) * _pt_h;
|
|
62894
|
+
return vec2f(dx, dy);
|
|
62895
|
+
}
|
|
62833
62896
|
|
|
62834
62897
|
fn _pt_fetch_orbit(i: i32) -> vec2f {
|
|
62835
62898
|
let y = i / _refOrbitTexWidth;
|
|
@@ -63427,8 +63490,32 @@ var GPUShaderTarget = class {
|
|
|
63427
63490
|
break;
|
|
63428
63491
|
}
|
|
63429
63492
|
}
|
|
63493
|
+
if ((code.includes("_fractal_mandelbrot_dp") || code.includes("_fractal_julia_dp")) && options.hints?.viewport) {
|
|
63494
|
+
const cx = hpToNumber(options.hints.viewport.center[0]);
|
|
63495
|
+
const cy = hpToNumber(options.hints.viewport.center[1]);
|
|
63496
|
+
const size = options.hints.viewport.radius * 2;
|
|
63497
|
+
const cx_hi = Math.fround(cx);
|
|
63498
|
+
const cy_hi = Math.fround(cy);
|
|
63499
|
+
result.uniforms = {
|
|
63500
|
+
...result.uniforms,
|
|
63501
|
+
_dp_cx_hi: cx_hi,
|
|
63502
|
+
_dp_cx_lo: cx - cx_hi,
|
|
63503
|
+
_dp_cy_hi: cy_hi,
|
|
63504
|
+
_dp_cy_lo: cy - cy_hi,
|
|
63505
|
+
_dp_w: size,
|
|
63506
|
+
_dp_h: size
|
|
63507
|
+
};
|
|
63508
|
+
}
|
|
63430
63509
|
if ((code.includes("_fractal_mandelbrot_pt") || code.includes("_fractal_julia_pt")) && options.hints?.viewport) {
|
|
63431
63510
|
const viewport = options.hints.viewport;
|
|
63511
|
+
const size = viewport.radius * 2;
|
|
63512
|
+
result.uniforms = {
|
|
63513
|
+
...result.uniforms,
|
|
63514
|
+
_pt_offset_x: 0,
|
|
63515
|
+
_pt_offset_y: 0,
|
|
63516
|
+
_pt_w: size,
|
|
63517
|
+
_pt_h: size
|
|
63518
|
+
};
|
|
63432
63519
|
const digits = Math.max(50, Math.ceil(-Math.log10(viewport.radius)) + 10);
|
|
63433
63520
|
const maxIter = 1e3;
|
|
63434
63521
|
const orbit = computeReferenceOrbit(
|
|
@@ -68857,19 +68944,20 @@ var ComputeEngine = class _ComputeEngine {
|
|
|
68857
68944
|
_setDefaultEngineFactory(() => new ComputeEngine());
|
|
68858
68945
|
|
|
68859
68946
|
// src/compute-engine.ts
|
|
68860
|
-
var version = "0.55.
|
|
68947
|
+
var version = "0.55.5";
|
|
68861
68948
|
ComputeEngine._latexSyntaxFactory = () => new LatexSyntax();
|
|
68862
68949
|
_setDefaultEngineFactory(
|
|
68863
68950
|
() => new ComputeEngine({ latexSyntax: new LatexSyntax() })
|
|
68864
68951
|
);
|
|
68865
68952
|
globalThis[/* @__PURE__ */ Symbol.for("io.cortexjs.compute-engine")] = {
|
|
68866
68953
|
ComputeEngine: ComputeEngine.prototype.constructor,
|
|
68867
|
-
version: "0.55.
|
|
68954
|
+
version: "0.55.5"
|
|
68868
68955
|
};
|
|
68869
68956
|
export {
|
|
68870
68957
|
DEFINITIONS_ALGEBRA as ALGEBRA_DICTIONARY,
|
|
68871
68958
|
DEFINITIONS_ARITHMETIC as ARITHMETIC_DICTIONARY,
|
|
68872
68959
|
BaseCompiler,
|
|
68960
|
+
BigDecimal,
|
|
68873
68961
|
DEFINITIONS_CALCULUS as CALCULUS_DICTIONARY,
|
|
68874
68962
|
DEFINITIONS_COMPLEX as COMPLEX_DICTIONARY,
|
|
68875
68963
|
DEFINITIONS_CORE as CORE_DICTIONARY,
|