@justinelliottcobb/amari-wasm 0.19.1 → 0.21.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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @justinelliottcobb/amari-wasm v0.19.1
1
+ # @justinelliottcobb/amari-wasm v0.21.0
2
2
 
3
3
  **Unified Mathematical Computing Library with High-Precision WebAssembly Support**
4
4
 
@@ -13,8 +13,8 @@ Amari is a comprehensive mathematical computing library that brings advanced alg
13
13
  | Module | Crate | Since | Description |
14
14
  |--------|-------|-------|-------------|
15
15
  | [Geometric Algebra](docs/geometric-algebra.md) | amari-core | v0.1 | Multivectors, rotors, geometric products for 3D rotations and spatial transformations |
16
- | [Tropical Algebra](docs/tropical-algebra.md) | amari-tropical | v0.9.3 | Max-plus semiring operations for optimization and neural network applications |
17
- | [Automatic Differentiation](docs/automatic-differentiation.md) | amari-dual | v0.9.3 | Forward-mode AD with dual numbers for exact derivatives |
16
+ | [Tropical Algebra](docs/tropical-algebra.md) | amari-tropical | v0.9.3 | Max-plus semiring operations plus `0.21.0` ordinal-weighted optimization carriers below ε₀ |
17
+ | [Automatic Differentiation](docs/automatic-differentiation.md) | amari-dual | v0.9.3 | Forward-mode AD with `0.21.0` branch policies, multi-dual seeding, and fixed-size gradient wrappers |
18
18
  | [Cellular Automata](docs/cellular-automata.md) | amari-automata | v0.9.4 | Geometric cellular automata with multivector states |
19
19
  | [Holographic Memory](docs/holographic-memory.md) | amari-fusion | v0.12.3 | Vector Symbolic Architecture for associative memory with binding and bundling |
20
20
  | [Measure Theory](docs/measure-theory.md) | amari-measure | v0.10.0 | Lebesgue integration, probability measures, and measure-theoretic foundations |
@@ -30,6 +30,16 @@ Amari is a comprehensive mathematical computing library that brings advanced alg
30
30
 
31
31
  Also includes bindings for: amari-network (geometric network analysis), amari-optimization (gradient descent, NSGA-II), amari-info-geom (Fisher metrics, statistical manifolds), amari-calculus (differential geometry, manifolds).
32
32
 
33
+ ### v0.21.0 Tropical / Dual WASM Surface
34
+
35
+ The `0.21.0` release exposes the new optimization-oriented Rust APIs to JavaScript/TypeScript:
36
+
37
+ - `TropicalBatch.foldOplus(...)` and `TropicalBatch.foldOtimes(...)` for semiring folds.
38
+ - `WasmOrdinalArena`, `WasmOrdinal`, and `WasmOrdinalWeight` for bounded ordinals below ε₀, ordinal formatting/inspection, and ordinal-weight `oplus` / `otimes` helpers.
39
+ - `WasmBranchPolicy` plus `maxByPolicy(...)` / `minByPolicy(...)` on dual and multi-dual numbers for explicit tie behavior.
40
+ - `WasmMultiDualNumber.variables(...)` for basis-seeded gradient setup.
41
+ - `WasmStaticMultiDual2`, `WasmStaticMultiDual3`, and `WasmStaticMultiDual4` for small fixed-size forward-mode AD loops in browser-facing workloads.
42
+
33
43
  ### High-Precision Arithmetic
34
44
 
35
45
  - **Pure Rust Backend**: dashu-powered arithmetic with no native dependencies
package/amari_wasm.d.ts CHANGED
@@ -178,6 +178,23 @@ export function ripsFromDistances(num_points: number, max_dim: number, distances
178
178
  * - `evaluator`: Function that takes (x, y) and returns f(x, y)
179
179
  */
180
180
  export function findCriticalPoints2D(resolution: number, x_min: number, x_max: number, y_min: number, y_max: number, tolerance: number, values: Float64Array): WasmCriticalPoint[];
181
+ /**
182
+ * Tie-handling policy for branch-sensitive dual-number min/max operations.
183
+ */
184
+ export enum WasmBranchPolicy {
185
+ /**
186
+ * Preserve the left operand derivative on ties.
187
+ */
188
+ Left = 0,
189
+ /**
190
+ * Preserve the right operand derivative on ties.
191
+ */
192
+ Right = 1,
193
+ /**
194
+ * Average derivatives on ties.
195
+ */
196
+ Average = 2,
197
+ }
181
198
  /**
182
199
  * Integration methods available in WASM
183
200
  */
@@ -992,6 +1009,14 @@ export class SchubertBatch {
992
1009
  export class TropicalBatch {
993
1010
  private constructor();
994
1011
  free(): void;
1012
+ /**
1013
+ * Fold values with tropical addition (`max`).
1014
+ */
1015
+ static foldOplus(values: Float64Array): number;
1016
+ /**
1017
+ * Fold values with tropical multiplication (`+`).
1018
+ */
1019
+ static foldOtimes(values: Float64Array): number;
995
1020
  /**
996
1021
  * Convert array of log probabilities to tropical numbers and find maximum
997
1022
  */
@@ -1575,6 +1600,14 @@ export class WasmCriticalPoint {
1575
1600
  */
1576
1601
  export class WasmDualNumber {
1577
1602
  free(): void;
1603
+ /**
1604
+ * Maximum with explicit derivative tie handling.
1605
+ */
1606
+ maxByPolicy(other: WasmDualNumber, policy: WasmBranchPolicy): WasmDualNumber;
1607
+ /**
1608
+ * Minimum with explicit derivative tie handling.
1609
+ */
1610
+ minByPolicy(other: WasmDualNumber, policy: WasmBranchPolicy): WasmDualNumber;
1578
1611
  /**
1579
1612
  * Natural logarithm
1580
1613
  */
@@ -3021,6 +3054,14 @@ export class WasmMultiDualNumber {
3021
3054
  * Get number of variables
3022
3055
  */
3023
3056
  getNumVars(): number;
3057
+ /**
3058
+ * Maximum with explicit derivative tie handling.
3059
+ */
3060
+ maxByPolicy(other: WasmMultiDualNumber, policy: WasmBranchPolicy): WasmMultiDualNumber;
3061
+ /**
3062
+ * Minimum with explicit derivative tie handling.
3063
+ */
3064
+ minByPolicy(other: WasmMultiDualNumber, policy: WasmBranchPolicy): WasmMultiDualNumber;
3024
3065
  /**
3025
3066
  * Addition
3026
3067
  */
@@ -3049,6 +3090,10 @@ export class WasmMultiDualNumber {
3049
3090
  * Create a variable with derivative 1 at the specified index
3050
3091
  */
3051
3092
  static variable(value: number, num_vars: number, var_index: number): WasmMultiDualNumber;
3093
+ /**
3094
+ * Create one basis-seeded variable per input coordinate.
3095
+ */
3096
+ static variables(values: Float64Array): Array<any>;
3052
3097
  }
3053
3098
  /**
3054
3099
  * Simple multi-objective optimizer for WASM
@@ -3548,6 +3593,154 @@ export class WasmOptimizationUtils {
3548
3593
  */
3549
3594
  static dominates(objectives1: Float64Array, objectives2: Float64Array): boolean;
3550
3595
  }
3596
+ /**
3597
+ * Arena-bound handle for an ordinal below ε₀.
3598
+ */
3599
+ export class WasmOrdinal {
3600
+ private constructor();
3601
+ free(): void;
3602
+ /**
3603
+ * Raw arena-local ordinal index.
3604
+ */
3605
+ getIndex(): number;
3606
+ }
3607
+ /**
3608
+ * Arena-backed store for canonical ordinals below ε₀.
3609
+ */
3610
+ export class WasmOrdinalArena {
3611
+ free(): void;
3612
+ /**
3613
+ * Number of interned ordinal nodes.
3614
+ */
3615
+ nodeCount(): number;
3616
+ /**
3617
+ * Number of CNF terms.
3618
+ */
3619
+ termCount(ordinal: WasmOrdinal): number;
3620
+ /**
3621
+ * Select the best of two weights using semiring-style `max`.
3622
+ */
3623
+ bestWeight2(left: WasmOrdinalWeight, right: WasmOrdinalWeight): WasmOrdinalWeight;
3624
+ /**
3625
+ * Select the best of three weights using semiring-style `max`.
3626
+ */
3627
+ bestWeight3(first: WasmOrdinalWeight, second: WasmOrdinalWeight, third: WasmOrdinalWeight): WasmOrdinalWeight;
3628
+ /**
3629
+ * Finite value when the ordinal is finite.
3630
+ */
3631
+ finiteValue(ordinal: WasmOrdinal): number | undefined;
3632
+ /**
3633
+ * Return true if this is a successor ordinal.
3634
+ */
3635
+ isSuccessor(ordinal: WasmOrdinal): boolean;
3636
+ /**
3637
+ * Semiring-style additive combination (`max`) for ordinal weights.
3638
+ */
3639
+ oplusWeight(left: WasmOrdinalWeight, right: WasmOrdinalWeight): WasmOrdinalWeight;
3640
+ /**
3641
+ * Format an ordinal weight.
3642
+ */
3643
+ formatWeight(weight: WasmOrdinalWeight): string;
3644
+ /**
3645
+ * Semiring-style multiplicative composition (ordinal addition) for weights.
3646
+ */
3647
+ otimesWeight(left: WasmOrdinalWeight, right: WasmOrdinalWeight): WasmOrdinalWeight;
3648
+ /**
3649
+ * Compare two weights: -1 for less, 0 for equal, 1 for greater.
3650
+ */
3651
+ compareWeight(left: WasmOrdinalWeight, right: WasmOrdinalWeight): number;
3652
+ /**
3653
+ * Format an ordinal in Cantor normal form.
3654
+ */
3655
+ formatOrdinal(ordinal: WasmOrdinal): string;
3656
+ /**
3657
+ * Compose two weights using ordinal addition with bottom annihilation.
3658
+ */
3659
+ composeWeight2(left: WasmOrdinalWeight, right: WasmOrdinalWeight): WasmOrdinalWeight;
3660
+ /**
3661
+ * Compose three weights using ordinal addition with bottom annihilation.
3662
+ */
3663
+ composeWeight3(first: WasmOrdinalWeight, second: WasmOrdinalWeight, third: WasmOrdinalWeight): WasmOrdinalWeight;
3664
+ /**
3665
+ * Build a JavaScript object with ordinal inspection metadata.
3666
+ */
3667
+ inspectOrdinal(ordinal: WasmOrdinal): any;
3668
+ /**
3669
+ * Return true if the ordinal is zero.
3670
+ */
3671
+ isZeroOrdinal(ordinal: WasmOrdinal): boolean;
3672
+ /**
3673
+ * Construct a weight from an ordinal.
3674
+ */
3675
+ weightFromOrdinal(ordinal: WasmOrdinal): WasmOrdinalWeight;
3676
+ /**
3677
+ * Ordinal addition.
3678
+ */
3679
+ add(left: WasmOrdinal, right: WasmOrdinal): WasmOrdinal;
3680
+ /**
3681
+ * Create an ordinal arena containing zero.
3682
+ */
3683
+ constructor();
3684
+ /**
3685
+ * Finite ordinal one.
3686
+ */
3687
+ one(): WasmOrdinal;
3688
+ /**
3689
+ * Structural kind: zero, finite, successor, or limit.
3690
+ */
3691
+ kind(ordinal: WasmOrdinal): string;
3692
+ /**
3693
+ * Canonical zero ordinal.
3694
+ */
3695
+ zero(): WasmOrdinal;
3696
+ /**
3697
+ * The ordinal ω.
3698
+ */
3699
+ omega(): WasmOrdinal;
3700
+ /**
3701
+ * Finite natural ordinal `n`.
3702
+ */
3703
+ finite(n: number): WasmOrdinal;
3704
+ /**
3705
+ * Compare two ordinals: -1 for less, 0 for equal, 1 for greater.
3706
+ */
3707
+ compare(left: WasmOrdinal, right: WasmOrdinal): number;
3708
+ /**
3709
+ * Return true if this is a nonzero limit ordinal.
3710
+ */
3711
+ isLimit(ordinal: WasmOrdinal): boolean;
3712
+ /**
3713
+ * Leading-exponent valuation of a weight, if any.
3714
+ */
3715
+ valuation(weight: WasmOrdinalWeight): number | undefined;
3716
+ }
3717
+ /**
3718
+ * Bottom-extended ordinal optimization weight.
3719
+ */
3720
+ export class WasmOrdinalWeight {
3721
+ private constructor();
3722
+ free(): void;
3723
+ /**
3724
+ * Arena-local ordinal index when this weight wraps an ordinal.
3725
+ */
3726
+ ordinalIndex(): number | undefined;
3727
+ /**
3728
+ * Construct the semiring one element, i.e. ordinal zero.
3729
+ */
3730
+ static one(): WasmOrdinalWeight;
3731
+ /**
3732
+ * Alias for the semiring zero element.
3733
+ */
3734
+ static zero(): WasmOrdinalWeight;
3735
+ /**
3736
+ * Construct the bottom element.
3737
+ */
3738
+ static bottom(): WasmOrdinalWeight;
3739
+ /**
3740
+ * Whether this weight is bottom.
3741
+ */
3742
+ isBottom(): boolean;
3743
+ }
3551
3744
  /**
3552
3745
  * Parametric probability density families
3553
3746
  */
@@ -4414,6 +4607,195 @@ export class WasmStabilityCondition {
4414
4607
  */
4415
4608
  isStable(capability: WasmCapability): boolean;
4416
4609
  }
4610
+ export class WasmStaticMultiDual2 {
4611
+ free(): void;
4612
+ /**
4613
+ * Get the fixed-size gradient as a JavaScript array-compatible vector.
4614
+ */
4615
+ getGradient(): Float64Array;
4616
+ /**
4617
+ * Maximum with explicit derivative tie handling.
4618
+ */
4619
+ maxByPolicy(other: WasmStaticMultiDual2, policy: WasmBranchPolicy): WasmStaticMultiDual2;
4620
+ /**
4621
+ * Minimum with explicit derivative tie handling.
4622
+ */
4623
+ minByPolicy(other: WasmStaticMultiDual2, policy: WasmBranchPolicy): WasmStaticMultiDual2;
4624
+ /**
4625
+ * Convert to the heap-backed multi-dual wrapper.
4626
+ */
4627
+ toMultiDual(): WasmMultiDualNumber;
4628
+ /**
4629
+ * Addition.
4630
+ */
4631
+ add(other: WasmStaticMultiDual2): WasmStaticMultiDual2;
4632
+ /**
4633
+ * Division.
4634
+ */
4635
+ div(other: WasmStaticMultiDual2): WasmStaticMultiDual2;
4636
+ /**
4637
+ * Multiplication.
4638
+ */
4639
+ mul(other: WasmStaticMultiDual2): WasmStaticMultiDual2;
4640
+ /**
4641
+ * Negation.
4642
+ */
4643
+ neg(): WasmStaticMultiDual2;
4644
+ /**
4645
+ * Create a fixed-size multi-dual number from a value and gradient.
4646
+ */
4647
+ constructor(value: number, gradient: Float64Array);
4648
+ /**
4649
+ * Subtraction.
4650
+ */
4651
+ sub(other: WasmStaticMultiDual2): WasmStaticMultiDual2;
4652
+ /**
4653
+ * Number of derivative variables.
4654
+ */
4655
+ nVars(): number;
4656
+ /**
4657
+ * Create a constant with zero gradient.
4658
+ */
4659
+ static constant(value: number): WasmStaticMultiDual2;
4660
+ /**
4661
+ * Create a basis-seeded variable.
4662
+ */
4663
+ static variable(value: number, var_index: number): WasmStaticMultiDual2;
4664
+ /**
4665
+ * Get the function value.
4666
+ */
4667
+ getValue(): number;
4668
+ /**
4669
+ * Create one fixed-size variable per coordinate.
4670
+ */
4671
+ static variables(values: Float64Array): Array<any>;
4672
+ }
4673
+ export class WasmStaticMultiDual3 {
4674
+ free(): void;
4675
+ /**
4676
+ * Get the fixed-size gradient as a JavaScript array-compatible vector.
4677
+ */
4678
+ getGradient(): Float64Array;
4679
+ /**
4680
+ * Maximum with explicit derivative tie handling.
4681
+ */
4682
+ maxByPolicy(other: WasmStaticMultiDual3, policy: WasmBranchPolicy): WasmStaticMultiDual3;
4683
+ /**
4684
+ * Minimum with explicit derivative tie handling.
4685
+ */
4686
+ minByPolicy(other: WasmStaticMultiDual3, policy: WasmBranchPolicy): WasmStaticMultiDual3;
4687
+ /**
4688
+ * Convert to the heap-backed multi-dual wrapper.
4689
+ */
4690
+ toMultiDual(): WasmMultiDualNumber;
4691
+ /**
4692
+ * Addition.
4693
+ */
4694
+ add(other: WasmStaticMultiDual3): WasmStaticMultiDual3;
4695
+ /**
4696
+ * Division.
4697
+ */
4698
+ div(other: WasmStaticMultiDual3): WasmStaticMultiDual3;
4699
+ /**
4700
+ * Multiplication.
4701
+ */
4702
+ mul(other: WasmStaticMultiDual3): WasmStaticMultiDual3;
4703
+ /**
4704
+ * Negation.
4705
+ */
4706
+ neg(): WasmStaticMultiDual3;
4707
+ /**
4708
+ * Create a fixed-size multi-dual number from a value and gradient.
4709
+ */
4710
+ constructor(value: number, gradient: Float64Array);
4711
+ /**
4712
+ * Subtraction.
4713
+ */
4714
+ sub(other: WasmStaticMultiDual3): WasmStaticMultiDual3;
4715
+ /**
4716
+ * Number of derivative variables.
4717
+ */
4718
+ nVars(): number;
4719
+ /**
4720
+ * Create a constant with zero gradient.
4721
+ */
4722
+ static constant(value: number): WasmStaticMultiDual3;
4723
+ /**
4724
+ * Create a basis-seeded variable.
4725
+ */
4726
+ static variable(value: number, var_index: number): WasmStaticMultiDual3;
4727
+ /**
4728
+ * Get the function value.
4729
+ */
4730
+ getValue(): number;
4731
+ /**
4732
+ * Create one fixed-size variable per coordinate.
4733
+ */
4734
+ static variables(values: Float64Array): Array<any>;
4735
+ }
4736
+ export class WasmStaticMultiDual4 {
4737
+ free(): void;
4738
+ /**
4739
+ * Get the fixed-size gradient as a JavaScript array-compatible vector.
4740
+ */
4741
+ getGradient(): Float64Array;
4742
+ /**
4743
+ * Maximum with explicit derivative tie handling.
4744
+ */
4745
+ maxByPolicy(other: WasmStaticMultiDual4, policy: WasmBranchPolicy): WasmStaticMultiDual4;
4746
+ /**
4747
+ * Minimum with explicit derivative tie handling.
4748
+ */
4749
+ minByPolicy(other: WasmStaticMultiDual4, policy: WasmBranchPolicy): WasmStaticMultiDual4;
4750
+ /**
4751
+ * Convert to the heap-backed multi-dual wrapper.
4752
+ */
4753
+ toMultiDual(): WasmMultiDualNumber;
4754
+ /**
4755
+ * Addition.
4756
+ */
4757
+ add(other: WasmStaticMultiDual4): WasmStaticMultiDual4;
4758
+ /**
4759
+ * Division.
4760
+ */
4761
+ div(other: WasmStaticMultiDual4): WasmStaticMultiDual4;
4762
+ /**
4763
+ * Multiplication.
4764
+ */
4765
+ mul(other: WasmStaticMultiDual4): WasmStaticMultiDual4;
4766
+ /**
4767
+ * Negation.
4768
+ */
4769
+ neg(): WasmStaticMultiDual4;
4770
+ /**
4771
+ * Create a fixed-size multi-dual number from a value and gradient.
4772
+ */
4773
+ constructor(value: number, gradient: Float64Array);
4774
+ /**
4775
+ * Subtraction.
4776
+ */
4777
+ sub(other: WasmStaticMultiDual4): WasmStaticMultiDual4;
4778
+ /**
4779
+ * Number of derivative variables.
4780
+ */
4781
+ nVars(): number;
4782
+ /**
4783
+ * Create a constant with zero gradient.
4784
+ */
4785
+ static constant(value: number): WasmStaticMultiDual4;
4786
+ /**
4787
+ * Create a basis-seeded variable.
4788
+ */
4789
+ static variable(value: number, var_index: number): WasmStaticMultiDual4;
4790
+ /**
4791
+ * Get the function value.
4792
+ */
4793
+ getValue(): number;
4794
+ /**
4795
+ * Create one fixed-size variable per coordinate.
4796
+ */
4797
+ static variables(values: Float64Array): Array<any>;
4798
+ }
4417
4799
  /**
4418
4800
  * WASM wrapper for torus weights in equivariant localization
4419
4801
  */
@@ -5124,6 +5506,7 @@ export interface InitOutput {
5124
5506
  readonly __wbg_wasmopticalcodebook_free: (a: number, b: number) => void;
5125
5507
  readonly __wbg_wasmopticalrotorfield_free: (a: number, b: number) => void;
5126
5508
  readonly __wbg_wasmoptimizationresult_free: (a: number, b: number) => void;
5509
+ readonly __wbg_wasmordinalarena_free: (a: number, b: number) => void;
5127
5510
  readonly __wbg_wasmpersistenthomology_free: (a: number, b: number) => void;
5128
5511
  readonly __wbg_wasmpropagationanalysis_free: (a: number, b: number) => void;
5129
5512
  readonly __wbg_wasmrelativisticparticle_free: (a: number, b: number) => void;
@@ -5135,8 +5518,8 @@ export interface InitOutput {
5135
5518
  readonly __wbg_wasmsimplicialcomplex_free: (a: number, b: number) => void;
5136
5519
  readonly __wbg_wasmsmtproofobligation_free: (a: number, b: number) => void;
5137
5520
  readonly __wbg_wasmspectraldecomposition_free: (a: number, b: number) => void;
5521
+ readonly __wbg_wasmstaticmultidual4_free: (a: number, b: number) => void;
5138
5522
  readonly __wbg_wasmtorusweights_free: (a: number, b: number) => void;
5139
- readonly __wbg_wasmtrajectorypoint_free: (a: number, b: number) => void;
5140
5523
  readonly __wbg_wasmtropicaldualclifford_free: (a: number, b: number) => void;
5141
5524
  readonly __wbg_wasmtropicalnetwork_free: (a: number, b: number) => void;
5142
5525
  readonly __wbg_wasmtropicalviterbi_free: (a: number, b: number) => void;
@@ -5271,6 +5654,7 @@ export interface InitOutput {
5271
5654
  readonly schubertbatch_multiIntersectBatch: (a: number, b: number, c: number, d: number) => [number, number, number, number];
5272
5655
  readonly tropicalbatch_batchTropicalAdd: (a: number, b: number) => number;
5273
5656
  readonly tropicalbatch_batchTropicalMul: (a: number, b: number) => number;
5657
+ readonly tropicalbatch_foldOtimes: (a: number, b: number) => number;
5274
5658
  readonly tropicalbatch_maxLogProb: (a: number, b: number) => number;
5275
5659
  readonly tropicalbatch_viterbiStep: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
5276
5660
  readonly tropicalmlops_convexCombination: (a: number, b: number, c: number, d: number) => [number, number, number];
@@ -5387,7 +5771,9 @@ export interface InitOutput {
5387
5771
  readonly wasmdualnumber_getDual: (a: number) => number;
5388
5772
  readonly wasmdualnumber_ln: (a: number) => [number, number, number];
5389
5773
  readonly wasmdualnumber_max: (a: number, b: number) => number;
5774
+ readonly wasmdualnumber_maxByPolicy: (a: number, b: number, c: number) => number;
5390
5775
  readonly wasmdualnumber_min: (a: number, b: number) => number;
5776
+ readonly wasmdualnumber_minByPolicy: (a: number, b: number, c: number) => number;
5391
5777
  readonly wasmdualnumber_mul: (a: number, b: number) => number;
5392
5778
  readonly wasmdualnumber_neg: (a: number) => number;
5393
5779
  readonly wasmdualnumber_new: (a: number, b: number) => number;
@@ -5622,10 +6008,13 @@ export interface InitOutput {
5622
6008
  readonly wasmmultidualnumber_getGradient: (a: number) => [number, number];
5623
6009
  readonly wasmmultidualnumber_getNumVars: (a: number) => number;
5624
6010
  readonly wasmmultidualnumber_getPartial: (a: number, b: number) => [number, number, number];
6011
+ readonly wasmmultidualnumber_maxByPolicy: (a: number, b: number, c: number) => [number, number, number];
6012
+ readonly wasmmultidualnumber_minByPolicy: (a: number, b: number, c: number) => [number, number, number];
5625
6013
  readonly wasmmultidualnumber_mul: (a: number, b: number) => [number, number, number];
5626
6014
  readonly wasmmultidualnumber_new: (a: number, b: number, c: number) => number;
5627
6015
  readonly wasmmultidualnumber_sqrt: (a: number) => [number, number, number];
5628
6016
  readonly wasmmultidualnumber_variable: (a: number, b: number, c: number) => number;
6017
+ readonly wasmmultidualnumber_variables: (a: number, b: number) => any;
5629
6018
  readonly wasmmultiobjectiveoptimizer_optimizeBiObjective: (a: number, b: number, c: number, d: number) => [number, number, number];
5630
6019
  readonly wasmmultiobjectiveresult_converged: (a: number) => number;
5631
6020
  readonly wasmmultiobjectiveresult_pareto_front: (a: number) => [number, number];
@@ -5717,6 +6106,36 @@ export interface InitOutput {
5717
6106
  readonly wasmoptimizationresult_solution: (a: number) => [number, number];
5718
6107
  readonly wasmoptimizationutils_dominates: (a: number, b: number, c: number, d: number) => number;
5719
6108
  readonly wasmoptimizationutils_numericalGradient: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
6109
+ readonly wasmordinalarena_add: (a: number, b: number, c: number) => [number, number, number];
6110
+ readonly wasmordinalarena_bestWeight2: (a: number, b: number, c: number) => [number, number, number];
6111
+ readonly wasmordinalarena_bestWeight3: (a: number, b: number, c: number, d: number) => [number, number, number];
6112
+ readonly wasmordinalarena_compare: (a: number, b: number, c: number) => [number, number, number];
6113
+ readonly wasmordinalarena_compareWeight: (a: number, b: number, c: number) => [number, number, number];
6114
+ readonly wasmordinalarena_composeWeight2: (a: number, b: number, c: number) => [number, number, number];
6115
+ readonly wasmordinalarena_composeWeight3: (a: number, b: number, c: number, d: number) => [number, number, number];
6116
+ readonly wasmordinalarena_finite: (a: number, b: number) => number;
6117
+ readonly wasmordinalarena_finiteValue: (a: number, b: number) => [number, number, number, number];
6118
+ readonly wasmordinalarena_formatOrdinal: (a: number, b: number) => [number, number, number, number];
6119
+ readonly wasmordinalarena_formatWeight: (a: number, b: number) => [number, number, number, number];
6120
+ readonly wasmordinalarena_inspectOrdinal: (a: number, b: number) => [number, number, number];
6121
+ readonly wasmordinalarena_isLimit: (a: number, b: number) => [number, number, number];
6122
+ readonly wasmordinalarena_isSuccessor: (a: number, b: number) => [number, number, number];
6123
+ readonly wasmordinalarena_isZeroOrdinal: (a: number, b: number) => [number, number, number];
6124
+ readonly wasmordinalarena_kind: (a: number, b: number) => [number, number, number, number];
6125
+ readonly wasmordinalarena_new: () => number;
6126
+ readonly wasmordinalarena_nodeCount: (a: number) => number;
6127
+ readonly wasmordinalarena_omega: (a: number) => number;
6128
+ readonly wasmordinalarena_one: (a: number) => number;
6129
+ readonly wasmordinalarena_oplusWeight: (a: number, b: number, c: number) => [number, number, number];
6130
+ readonly wasmordinalarena_otimesWeight: (a: number, b: number, c: number) => [number, number, number];
6131
+ readonly wasmordinalarena_termCount: (a: number, b: number) => [number, number, number];
6132
+ readonly wasmordinalarena_valuation: (a: number, b: number) => [number, number, number];
6133
+ readonly wasmordinalarena_weightFromOrdinal: (a: number, b: number) => number;
6134
+ readonly wasmordinalarena_zero: (a: number) => number;
6135
+ readonly wasmordinalweight_bottom: () => number;
6136
+ readonly wasmordinalweight_isBottom: (a: number) => number;
6137
+ readonly wasmordinalweight_one: () => number;
6138
+ readonly wasmordinalweight_ordinalIndex: (a: number) => number;
5720
6139
  readonly wasmparametricdensity_cauchy: () => number;
5721
6140
  readonly wasmparametricdensity_evaluate: (a: number, b: number, c: number, d: number) => [number, number, number];
5722
6141
  readonly wasmparametricdensity_exponential: () => number;
@@ -5852,6 +6271,47 @@ export interface InitOutput {
5852
6271
  readonly wasmstabilitycondition_new: (a: number, b: number, c: number) => number;
5853
6272
  readonly wasmstabilitycondition_phase: (a: number, b: number) => number;
5854
6273
  readonly wasmstabilitycondition_stableCount: (a: number, b: number) => number;
6274
+ readonly wasmstaticmultidual2_add: (a: number, b: number) => number;
6275
+ readonly wasmstaticmultidual2_constant: (a: number) => number;
6276
+ readonly wasmstaticmultidual2_div: (a: number, b: number) => [number, number, number];
6277
+ readonly wasmstaticmultidual2_getGradient: (a: number) => [number, number];
6278
+ readonly wasmstaticmultidual2_maxByPolicy: (a: number, b: number, c: number) => number;
6279
+ readonly wasmstaticmultidual2_minByPolicy: (a: number, b: number, c: number) => number;
6280
+ readonly wasmstaticmultidual2_mul: (a: number, b: number) => number;
6281
+ readonly wasmstaticmultidual2_nVars: (a: number) => number;
6282
+ readonly wasmstaticmultidual2_neg: (a: number) => number;
6283
+ readonly wasmstaticmultidual2_new: (a: number, b: number, c: number) => [number, number, number];
6284
+ readonly wasmstaticmultidual2_sub: (a: number, b: number) => number;
6285
+ readonly wasmstaticmultidual2_toMultiDual: (a: number) => number;
6286
+ readonly wasmstaticmultidual2_variable: (a: number, b: number) => [number, number, number];
6287
+ readonly wasmstaticmultidual2_variables: (a: number, b: number) => [number, number, number];
6288
+ readonly wasmstaticmultidual3_add: (a: number, b: number) => number;
6289
+ readonly wasmstaticmultidual3_constant: (a: number) => number;
6290
+ readonly wasmstaticmultidual3_div: (a: number, b: number) => [number, number, number];
6291
+ readonly wasmstaticmultidual3_getGradient: (a: number) => [number, number];
6292
+ readonly wasmstaticmultidual3_maxByPolicy: (a: number, b: number, c: number) => number;
6293
+ readonly wasmstaticmultidual3_minByPolicy: (a: number, b: number, c: number) => number;
6294
+ readonly wasmstaticmultidual3_mul: (a: number, b: number) => number;
6295
+ readonly wasmstaticmultidual3_nVars: (a: number) => number;
6296
+ readonly wasmstaticmultidual3_neg: (a: number) => number;
6297
+ readonly wasmstaticmultidual3_new: (a: number, b: number, c: number) => [number, number, number];
6298
+ readonly wasmstaticmultidual3_sub: (a: number, b: number) => number;
6299
+ readonly wasmstaticmultidual3_toMultiDual: (a: number) => number;
6300
+ readonly wasmstaticmultidual3_variable: (a: number, b: number) => [number, number, number];
6301
+ readonly wasmstaticmultidual3_variables: (a: number, b: number) => [number, number, number];
6302
+ readonly wasmstaticmultidual4_add: (a: number, b: number) => number;
6303
+ readonly wasmstaticmultidual4_constant: (a: number) => number;
6304
+ readonly wasmstaticmultidual4_div: (a: number, b: number) => [number, number, number];
6305
+ readonly wasmstaticmultidual4_getGradient: (a: number) => [number, number];
6306
+ readonly wasmstaticmultidual4_maxByPolicy: (a: number, b: number, c: number) => number;
6307
+ readonly wasmstaticmultidual4_minByPolicy: (a: number, b: number, c: number) => number;
6308
+ readonly wasmstaticmultidual4_mul: (a: number, b: number) => number;
6309
+ readonly wasmstaticmultidual4_neg: (a: number) => number;
6310
+ readonly wasmstaticmultidual4_new: (a: number, b: number, c: number) => [number, number, number];
6311
+ readonly wasmstaticmultidual4_sub: (a: number, b: number) => number;
6312
+ readonly wasmstaticmultidual4_toMultiDual: (a: number) => number;
6313
+ readonly wasmstaticmultidual4_variable: (a: number, b: number) => [number, number, number];
6314
+ readonly wasmstaticmultidual4_variables: (a: number, b: number) => [number, number, number];
5855
6315
  readonly wasmtorusweights_custom: (a: number, b: number) => [number, number, number];
5856
6316
  readonly wasmtorusweights_getWeights: (a: number) => [number, number];
5857
6317
  readonly wasmtorusweights_standard: (a: number) => number;
@@ -5958,11 +6418,14 @@ export interface InitOutput {
5958
6418
  readonly __wbg_set_wasmtrajectorypoint_time: (a: number, b: number) => void;
5959
6419
  readonly wasmmultivector_norm: (a: number) => number;
5960
6420
  readonly wasmspacetimevector_t: (a: number) => number;
6421
+ readonly wasmordinalweight_zero: () => number;
5961
6422
  readonly wasmtropicalnumber_zero: () => number;
5962
6423
  readonly wasmtropicalnumber_tropicalMul: (a: number, b: number) => number;
5963
6424
  readonly wasmtrajectorypoint_position: (a: number) => number;
6425
+ readonly wasmstaticmultidual4_nVars: (a: number) => number;
5964
6426
  readonly wasmtropicalpolynomial_coefficients_count: (a: number) => number;
5965
6427
  readonly infogeomutils_softmax: (a: number, b: number) => [number, number];
6428
+ readonly tropicalbatch_foldOplus: (a: number, b: number) => number;
5966
6429
  readonly __wbg_wasmparametricdensity_free: (a: number, b: number) => void;
5967
6430
  readonly __wbg_wasmprobabilitymeasure_free: (a: number, b: number) => void;
5968
6431
  readonly __wbg_wasmrareevent_free: (a: number, b: number) => void;
@@ -6001,6 +6464,7 @@ export interface InitOutput {
6001
6464
  readonly wasmopticalfieldalgebra_width: (a: number) => number;
6002
6465
  readonly wasmoptimizationresult_iterations: (a: number) => number;
6003
6466
  readonly wasmoptimizationresult_objective_value: (a: number) => number;
6467
+ readonly wasmordinal_getIndex: (a: number) => number;
6004
6468
  readonly wasmprob_probability: (a: number) => number;
6005
6469
  readonly wasmprob_value: (a: number) => number;
6006
6470
  readonly wasmprojectivespace_getDimension: (a: number) => number;
@@ -6012,6 +6476,9 @@ export interface InitOutput {
6012
6476
  readonly wasmspacetimevector_y: (a: number) => number;
6013
6477
  readonly wasmspacetimevector_z: (a: number) => number;
6014
6478
  readonly wasmstabilitycondition_getTrustLevel: (a: number) => number;
6479
+ readonly wasmstaticmultidual2_getValue: (a: number) => number;
6480
+ readonly wasmstaticmultidual3_getValue: (a: number) => number;
6481
+ readonly wasmstaticmultidual4_getValue: (a: number) => number;
6015
6482
  readonly wasmtropicalcurve_getGenus: (a: number) => number;
6016
6483
  readonly wasmtropicalnetwork_getSize: (a: number) => number;
6017
6484
  readonly wasmtropicalnumber_getValue: (a: number) => number;
@@ -6053,6 +6520,8 @@ export interface InitOutput {
6053
6520
  readonly __wbg_wasmnamespaceintersection_free: (a: number, b: number) => void;
6054
6521
  readonly __wbg_wasmopticalfieldalgebra_free: (a: number, b: number) => void;
6055
6522
  readonly __wbg_wasmoptimizationutils_free: (a: number, b: number) => void;
6523
+ readonly __wbg_wasmordinal_free: (a: number, b: number) => void;
6524
+ readonly __wbg_wasmordinalweight_free: (a: number, b: number) => void;
6056
6525
  readonly __wbg_wasmprob_free: (a: number, b: number) => void;
6057
6526
  readonly __wbg_wasmprojectivespace_free: (a: number, b: number) => void;
6058
6527
  readonly __wbg_wasmrelativisticconstants_free: (a: number, b: number) => void;
@@ -6061,6 +6530,9 @@ export interface InitOutput {
6061
6530
  readonly __wbg_wasmsobolevspace_free: (a: number, b: number) => void;
6062
6531
  readonly __wbg_wasmspacetimevector_free: (a: number, b: number) => void;
6063
6532
  readonly __wbg_wasmstabilitycondition_free: (a: number, b: number) => void;
6533
+ readonly __wbg_wasmstaticmultidual2_free: (a: number, b: number) => void;
6534
+ readonly __wbg_wasmstaticmultidual3_free: (a: number, b: number) => void;
6535
+ readonly __wbg_wasmtrajectorypoint_free: (a: number, b: number) => void;
6064
6536
  readonly __wbg_wasmtropicalcurve_free: (a: number, b: number) => void;
6065
6537
  readonly __wbg_wasmtropicalmeasure_free: (a: number, b: number) => void;
6066
6538
  readonly __wbg_wasmtropicalnumber_free: (a: number, b: number) => void;
@@ -6094,8 +6566,8 @@ export interface InitOutput {
6094
6566
  readonly __wbindgen_export_6: WebAssembly.Table;
6095
6567
  readonly __externref_table_dealloc: (a: number) => void;
6096
6568
  readonly __externref_drop_slice: (a: number, b: number) => void;
6097
- readonly closure71_externref_shim: (a: number, b: number, c: any) => void;
6098
- readonly closure65_externref_shim: (a: number, b: number, c: any, d: any) => void;
6569
+ readonly closure72_externref_shim: (a: number, b: number, c: any) => void;
6570
+ readonly closure66_externref_shim: (a: number, b: number, c: any, d: any) => void;
6099
6571
  readonly __wbindgen_start: () => void;
6100
6572
  }
6101
6573