@justinelliottcobb/amari-wasm 0.9.10 → 0.11.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/amari_wasm.d.ts CHANGED
@@ -1,9 +1,17 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+ /**
4
+ * Initialize the WASM module
5
+ */
6
+ export function init(): void;
3
7
  /**
4
8
  * Initialize the enumerative geometry module
5
9
  */
6
10
  export function initEnumerative(): void;
11
+ /**
12
+ * Calculate light deflection angle for photon grazing massive object
13
+ */
14
+ export function light_deflection_angle(impact_parameter: number, mass: number): number;
7
15
  /**
8
16
  * Convert velocity to Lorentz factor
9
17
  */
@@ -16,22 +24,76 @@ export function gamma_to_velocity(gamma: number): number;
16
24
  * Validate that this module loaded correctly
17
25
  */
18
26
  export function validate_relativistic_module(): boolean;
19
- /**
20
- * Calculate light deflection angle for photon grazing massive object
21
- */
22
- export function light_deflection_angle(impact_parameter: number, mass: number): number;
23
- /**
24
- * Initialize the WASM module
25
- */
26
- export function init(): void;
27
27
  /**
28
28
  * Initialize the fusion module
29
29
  */
30
30
  export function initFusion(): void;
31
+ /**
32
+ * Integrate a JavaScript function over an interval
33
+ *
34
+ * This function provides numerical integration capabilities to JavaScript.
35
+ *
36
+ * # Arguments
37
+ * * `f` - JavaScript function to integrate (must accept a number and return a number)
38
+ * * `a` - Lower bound of integration
39
+ * * `b` - Upper bound of integration
40
+ * * `points` - Number of sample points to use
41
+ * * `method` - Integration method to use
42
+ *
43
+ * # Returns
44
+ * Approximate value of the integral ∫_a^b f(x) dx
45
+ */
46
+ export function integrate(f: Function, a: number, b: number, points: number, method: WasmIntegrationMethod): number;
47
+ /**
48
+ * Compute expectation E[f(X)] for uniform distribution on [a, b]
49
+ *
50
+ * # Arguments
51
+ * * `f` - JavaScript function (must accept a number and return a number)
52
+ * * `a` - Lower bound
53
+ * * `b` - Upper bound
54
+ * * `samples` - Number of Monte Carlo samples
55
+ */
56
+ export function expectation(f: Function, a: number, b: number, samples: number): number;
57
+ /**
58
+ * Compute KL divergence D_KL(P||Q) between two distributions
59
+ *
60
+ * # Arguments
61
+ * * `p_density` - First distribution
62
+ * * `q_density` - Second distribution
63
+ * * `p_params` - Parameters for P
64
+ * * `q_params` - Parameters for Q
65
+ * * `sample_points` - Points to evaluate at
66
+ */
67
+ export function klDivergence(p_density: WasmParametricDensity, q_density: WasmParametricDensity, p_params: Float64Array, q_params: Float64Array, sample_points: Float64Array): number;
31
68
  /**
32
69
  * Initialize the automata module
33
70
  */
34
71
  export function initAutomata(): void;
72
+ /**
73
+ * Integration methods available in WASM
74
+ */
75
+ export enum WasmIntegrationMethod {
76
+ /**
77
+ * Riemann sum approximation
78
+ */
79
+ Riemann = 0,
80
+ /**
81
+ * Monte Carlo integration
82
+ */
83
+ MonteCarlo = 1,
84
+ /**
85
+ * Trapezoidal rule
86
+ */
87
+ Trapezoidal = 2,
88
+ /**
89
+ * Simpson's rule
90
+ */
91
+ Simpson = 3,
92
+ /**
93
+ * Adaptive quadrature
94
+ */
95
+ Adaptive = 4,
96
+ }
35
97
  /**
36
98
  * Automatic differentiation utilities
37
99
  */
@@ -278,6 +340,58 @@ export class InfoGeomUtils {
278
340
  */
279
341
  static normalize(values: Float64Array): Float64Array;
280
342
  }
343
+ /**
344
+ * Numerical integration operations
345
+ *
346
+ * Provides definite integrals, line integrals, and surface integrals
347
+ * using adaptive quadrature.
348
+ */
349
+ export class Integration {
350
+ private constructor();
351
+ free(): void;
352
+ [Symbol.dispose](): void;
353
+ /**
354
+ * Compute 1D definite integral using Simpson's rule
355
+ *
356
+ * ∫[a,b] f(x) dx
357
+ *
358
+ * # Arguments
359
+ *
360
+ * * `func` - JavaScript function to integrate
361
+ * * `a` - Lower bound
362
+ * * `b` - Upper bound
363
+ * * `n` - Number of subdivisions (must be even)
364
+ *
365
+ * # Returns
366
+ *
367
+ * Integral value
368
+ *
369
+ * # JavaScript Example
370
+ *
371
+ * ```javascript
372
+ * // Integrate x^2 from 0 to 1
373
+ * const result = Integration.integrate1D(x => x*x, 0, 1, 100);
374
+ * // Returns approximately 0.333...
375
+ * ```
376
+ */
377
+ static integrate1D(func: Function, a: number, b: number, n: number): number;
378
+ /**
379
+ * Compute 2D integral over a rectangle using Simpson's rule
380
+ *
381
+ * ∫∫[a,b]×[c,d] f(x,y) dx dy
382
+ *
383
+ * # Arguments
384
+ *
385
+ * * `func` - JavaScript function (x, y) => f(x, y)
386
+ * * `ax` - Lower x bound
387
+ * * `bx` - Upper x bound
388
+ * * `ay` - Lower y bound
389
+ * * `by` - Upper y bound
390
+ * * `nx` - Number of x subdivisions (must be even)
391
+ * * `ny` - Number of y subdivisions (must be even)
392
+ */
393
+ static integrate2D(func: Function, ax: number, bx: number, ay: number, by: number, nx: number, ny: number): number;
394
+ }
281
395
  /**
282
396
  * Advanced machine learning operations using dual numbers
283
397
  */
@@ -322,6 +436,92 @@ export class NetworkUtils {
322
436
  */
323
437
  static createSmallWorldNetwork(num_nodes: number, k: number, beta: number): WasmGeometricNetwork;
324
438
  }
439
+ /**
440
+ * Numerical derivative operations
441
+ *
442
+ * Provides gradient, divergence, curl, and Laplacian computations
443
+ * using centered finite differences.
444
+ */
445
+ export class NumericalDerivative {
446
+ free(): void;
447
+ [Symbol.dispose](): void;
448
+ /**
449
+ * Compute divergence of a vector field at a point
450
+ *
451
+ * ∇·F = ∂Fx/∂x + ∂Fy/∂y + ∂Fz/∂z
452
+ *
453
+ * # Arguments
454
+ *
455
+ * * `field` - Vector field
456
+ * * `point` - Evaluation point
457
+ *
458
+ * # Returns
459
+ *
460
+ * Divergence (scalar)
461
+ */
462
+ divergence(field: VectorField, point: Float64Array): number;
463
+ /**
464
+ * Create a new numerical derivative computer
465
+ *
466
+ * # Arguments
467
+ *
468
+ * * `step_size` - Optional step size for finite differences (default: 1e-5)
469
+ */
470
+ constructor(step_size?: number | null);
471
+ /**
472
+ * Compute curl of a 3D vector field at a point
473
+ *
474
+ * ∇×F = [∂Fz/∂y - ∂Fy/∂z, ∂Fx/∂z - ∂Fz/∂x, ∂Fy/∂x - ∂Fx/∂y]
475
+ *
476
+ * # Arguments
477
+ *
478
+ * * `field` - 3D vector field
479
+ * * `point` - Evaluation point [x, y, z]
480
+ *
481
+ * # Returns
482
+ *
483
+ * Curl vector [cx, cy, cz]
484
+ */
485
+ curl(field: VectorField, point: Float64Array): Float64Array;
486
+ /**
487
+ * Compute gradient of a scalar field at a point
488
+ *
489
+ * ∇f = [∂f/∂x, ∂f/∂y, ∂f/∂z]
490
+ *
491
+ * # Arguments
492
+ *
493
+ * * `field` - Scalar field
494
+ * * `point` - Evaluation point
495
+ *
496
+ * # Returns
497
+ *
498
+ * Gradient vector
499
+ *
500
+ * # JavaScript Example
501
+ *
502
+ * ```javascript
503
+ * const field = ScalarField.fromFunction2D((x, y) => x*x + y*y);
504
+ * const derivative = new NumericalDerivative();
505
+ * const grad = derivative.gradient(field, [1.0, 2.0]); // Returns [2.0, 4.0]
506
+ * ```
507
+ */
508
+ gradient(field: ScalarField, point: Float64Array): Float64Array;
509
+ /**
510
+ * Compute Laplacian of a scalar field at a point
511
+ *
512
+ * ∇²f = ∂²f/∂x² + ∂²f/∂y² + ∂²f/∂z²
513
+ *
514
+ * # Arguments
515
+ *
516
+ * * `field` - Scalar field
517
+ * * `point` - Evaluation point
518
+ *
519
+ * # Returns
520
+ *
521
+ * Laplacian (scalar)
522
+ */
523
+ laplacian(field: ScalarField, point: Float64Array): number;
524
+ }
325
525
  /**
326
526
  * High-performance WASM operations with memory pooling
327
527
  */
@@ -346,6 +546,184 @@ export class PerformanceOperations {
346
546
  */
347
547
  static fastGeometricProduct(lhs: Float64Array, rhs: Float64Array): Float64Array;
348
548
  }
549
+ /**
550
+ * Riemannian manifold with metric tensor
551
+ *
552
+ * Represents a curved space with a metric that defines distances and angles.
553
+ *
554
+ * # JavaScript Example
555
+ *
556
+ * ```javascript
557
+ * // Create a 2D sphere of radius 1
558
+ * const sphere = RiemannianManifold.sphere(1.0);
559
+ *
560
+ * // Compute scalar curvature at the north pole
561
+ * const R = sphere.scalarCurvature([0.0, 0.0]); // Returns 2.0 for unit sphere
562
+ * ```
563
+ */
564
+ export class RiemannianManifold {
565
+ private constructor();
566
+ free(): void;
567
+ [Symbol.dispose](): void;
568
+ /**
569
+ * Create a 2D hyperbolic plane (Poincaré half-plane model)
570
+ *
571
+ * Metric: ds² = (dx² + dy²) / y²
572
+ */
573
+ static hyperbolic(): RiemannianManifold;
574
+ /**
575
+ * Compute Christoffel symbol Γ^k_ij at a point
576
+ *
577
+ * # Arguments
578
+ *
579
+ * * `k` - Upper index
580
+ * * `i` - First lower index
581
+ * * `j` - Second lower index
582
+ * * `coords` - Coordinates
583
+ */
584
+ christoffel(k: number, i: number, j: number, coords: Float64Array): number;
585
+ /**
586
+ * Compute Ricci tensor component R_ij
587
+ *
588
+ * # Arguments
589
+ *
590
+ * * `i` - First index
591
+ * * `j` - Second index
592
+ * * `coords` - Coordinates
593
+ */
594
+ ricciTensor(i: number, j: number, coords: Float64Array): number;
595
+ /**
596
+ * Compute Riemann curvature tensor component R^i_jkl
597
+ *
598
+ * # Arguments
599
+ *
600
+ * * `i` - Upper index
601
+ * * `j` - First lower index
602
+ * * `k` - Second lower index
603
+ * * `l` - Third lower index
604
+ * * `coords` - Coordinates
605
+ */
606
+ riemannTensor(i: number, j: number, k: number, l: number, coords: Float64Array): number;
607
+ /**
608
+ * Compute scalar curvature R
609
+ *
610
+ * # Arguments
611
+ *
612
+ * * `coords` - Coordinates
613
+ *
614
+ * # Returns
615
+ *
616
+ * Scalar curvature value
617
+ */
618
+ scalarCurvature(coords: Float64Array): number;
619
+ /**
620
+ * Create a 2D sphere of given radius
621
+ *
622
+ * Metric: ds² = dθ² + sin²θ dφ²
623
+ *
624
+ * # Arguments
625
+ *
626
+ * * `radius` - Sphere radius
627
+ */
628
+ static sphere(radius: number): RiemannianManifold;
629
+ /**
630
+ * Compute geodesic trajectory
631
+ *
632
+ * Solves the geodesic equations using RK4 integration.
633
+ *
634
+ * # Arguments
635
+ *
636
+ * * `initial_pos` - Initial position
637
+ * * `initial_vel` - Initial velocity
638
+ * * `t_max` - Maximum time
639
+ * * `dt` - Time step
640
+ *
641
+ * # Returns
642
+ *
643
+ * Flat array of trajectory points and velocities:
644
+ * [x0, y0, vx0, vy0, x1, y1, vx1, vy1, ...]
645
+ */
646
+ geodesic(initial_pos: Float64Array, initial_vel: Float64Array, t_max: number, dt: number): Float64Array;
647
+ /**
648
+ * Create a Euclidean (flat) manifold
649
+ *
650
+ * # Arguments
651
+ *
652
+ * * `dimension` - Dimension (2 or 3)
653
+ */
654
+ static euclidean(dimension: number): RiemannianManifold;
655
+ /**
656
+ * Get the dimension of the manifold
657
+ */
658
+ readonly dimension: number;
659
+ }
660
+ /**
661
+ * Scalar field f: ℝⁿ → ℝ
662
+ *
663
+ * Represents a function that maps points in n-dimensional space to real numbers.
664
+ *
665
+ * # JavaScript Example
666
+ *
667
+ * ```javascript
668
+ * // Create a scalar field f(x, y) = x² + y²
669
+ * const field = WasmScalarField.fromFunction2D((x, y) => x*x + y*y);
670
+ *
671
+ * // Evaluate at a point
672
+ * const value = field.evaluate([1.0, 2.0]); // Returns 5.0
673
+ * ```
674
+ */
675
+ export class ScalarField {
676
+ free(): void;
677
+ [Symbol.dispose](): void;
678
+ /**
679
+ * Batch evaluate the field at multiple points
680
+ *
681
+ * # Arguments
682
+ *
683
+ * * `points` - Array of points as flat array [x1, y1, x2, y2, ...]
684
+ *
685
+ * # Returns
686
+ *
687
+ * Array of field values
688
+ */
689
+ batchEvaluate(points: Float64Array): Float64Array;
690
+ /**
691
+ * Create a 2D scalar field from a JavaScript function
692
+ *
693
+ * # Arguments
694
+ *
695
+ * * `func` - JavaScript function (x, y) => f(x, y)
696
+ */
697
+ static fromFunction2D(func: Function): ScalarField;
698
+ /**
699
+ * Create a 3D scalar field from a JavaScript function
700
+ *
701
+ * # Arguments
702
+ *
703
+ * * `func` - JavaScript function (x, y, z) => f(x, y, z)
704
+ */
705
+ static fromFunction3D(func: Function): ScalarField;
706
+ /**
707
+ * Create a 2D scalar field from a JavaScript function
708
+ *
709
+ * # Arguments
710
+ *
711
+ * * `func` - JavaScript function (x, y) => f(x, y)
712
+ */
713
+ constructor(func: Function, dimension: number);
714
+ /**
715
+ * Evaluate the scalar field at a point
716
+ *
717
+ * # Arguments
718
+ *
719
+ * * `point` - Coordinates [x, y] or [x, y, z]
720
+ *
721
+ * # Returns
722
+ *
723
+ * Field value at the point
724
+ */
725
+ evaluate(point: Float64Array): number;
726
+ }
349
727
  /**
350
728
  * Batch operations for tropical numbers
351
729
  */
@@ -390,6 +768,57 @@ export class TropicalMLOps {
390
768
  */
391
769
  static convexCombination(values: Float64Array, weights: Float64Array): number;
392
770
  }
771
+ /**
772
+ * Vector field F: ℝⁿ → ℝⁿ
773
+ *
774
+ * Represents a function that maps points to vectors.
775
+ *
776
+ * # JavaScript Example
777
+ *
778
+ * ```javascript
779
+ * // Create a 2D vector field F(x, y) = [y, -x] (rotation)
780
+ * const field = WasmVectorField.fromFunction2D((x, y) => [y, -x]);
781
+ *
782
+ * // Evaluate at a point
783
+ * const vector = field.evaluate([1.0, 2.0]); // Returns [2.0, -1.0]
784
+ * ```
785
+ */
786
+ export class VectorField {
787
+ free(): void;
788
+ [Symbol.dispose](): void;
789
+ /**
790
+ * Create a 2D vector field from a JavaScript function
791
+ *
792
+ * # Arguments
793
+ *
794
+ * * `func` - JavaScript function (x, y) => [fx, fy]
795
+ */
796
+ static fromFunction2D(func: Function): VectorField;
797
+ /**
798
+ * Create a 3D vector field from a JavaScript function
799
+ *
800
+ * # Arguments
801
+ *
802
+ * * `func` - JavaScript function (x, y, z) => [fx, fy, fz]
803
+ */
804
+ static fromFunction3D(func: Function): VectorField;
805
+ /**
806
+ * Create a vector field from a JavaScript function
807
+ */
808
+ constructor(func: Function, dimension: number);
809
+ /**
810
+ * Evaluate the vector field at a point
811
+ *
812
+ * # Arguments
813
+ *
814
+ * * `point` - Coordinates [x, y] or [x, y, z]
815
+ *
816
+ * # Returns
817
+ *
818
+ * Vector at the point
819
+ */
820
+ evaluate(point: Float64Array): Float64Array;
821
+ }
393
822
  /**
394
823
  * WASM wrapper for AlphaConnection
395
824
  */
@@ -480,6 +909,31 @@ export class WasmCommunity {
480
909
  */
481
910
  readonly nodes: Uint32Array;
482
911
  }
912
+ /**
913
+ * WASM wrapper for counting measure
914
+ *
915
+ * The counting measure assigns to each set the number of elements it contains.
916
+ */
917
+ export class WasmCountingMeasure {
918
+ free(): void;
919
+ [Symbol.dispose](): void;
920
+ /**
921
+ * Check if a set is measurable under counting measure
922
+ * (all sets are measurable under counting measure)
923
+ */
924
+ isMeasurable(): boolean;
925
+ /**
926
+ * Measure a finite set (returns its cardinality)
927
+ *
928
+ * # Arguments
929
+ * * `set_size` - The number of elements in the set
930
+ */
931
+ measureFiniteSet(set_size: number): number;
932
+ /**
933
+ * Create a new counting measure
934
+ */
935
+ constructor();
936
+ }
483
937
  /**
484
938
  * WASM wrapper for single-variable dual numbers
485
939
  */
@@ -670,6 +1124,26 @@ export class WasmFisherInformationMatrix {
670
1124
  */
671
1125
  isPositiveDefinite(): boolean;
672
1126
  }
1127
+ /**
1128
+ * Fisher-Riemannian geometry on statistical manifolds
1129
+ */
1130
+ export class WasmFisherMeasure {
1131
+ private constructor();
1132
+ free(): void;
1133
+ [Symbol.dispose](): void;
1134
+ /**
1135
+ * Create Fisher measure from a parametric density
1136
+ */
1137
+ static fromDensity(density: WasmParametricDensity): WasmFisherMeasure;
1138
+ /**
1139
+ * Compute the Fisher information metric at parameter point θ
1140
+ */
1141
+ fisherMetric(data: Float64Array, params: Float64Array): Float64Array;
1142
+ /**
1143
+ * Compute the Riemannian volume element √det(g(θ))
1144
+ */
1145
+ volumeElement(data: Float64Array, params: Float64Array): number;
1146
+ }
673
1147
  /**
674
1148
  * WASM wrapper for four-velocity
675
1149
  */
@@ -913,14 +1387,14 @@ export class WasmGpuOptimizer {
913
1387
  * Batch optimization with parallel processing simulation
914
1388
  */
915
1389
  optimizeBatch(problems_data: Float64Array, problem_size: number, num_problems: number, max_iterations: number, tolerance: number): Promise<Float64Array>;
916
- /**
917
- * Check if GPU acceleration is available
918
- */
919
- isGpuAvailable(): boolean;
920
1390
  /**
921
1391
  * Optimize a quadratic function with GPU acceleration
922
1392
  */
923
1393
  optimizeQuadraticGpu(coefficients: Float64Array, initial_point: Float64Array, max_iterations: number, tolerance: number): Promise<WasmOptimizationResult>;
1394
+ /**
1395
+ * Check if GPU acceleration is available
1396
+ */
1397
+ isGpuAvailable(): boolean;
924
1398
  /**
925
1399
  * Create a new GPU optimizer
926
1400
  */
@@ -968,6 +1442,38 @@ export class WasmInverseCADesigner {
968
1442
  */
969
1443
  findSeed(_max_generations: number, max_attempts: number): Float64Array;
970
1444
  }
1445
+ /**
1446
+ * WASM wrapper for Lebesgue measure
1447
+ *
1448
+ * The Lebesgue measure generalizes the notion of length, area, and volume
1449
+ * to higher dimensions and more complex sets.
1450
+ */
1451
+ export class WasmLebesgueMeasure {
1452
+ free(): void;
1453
+ [Symbol.dispose](): void;
1454
+ /**
1455
+ * Compute the measure of a box (hyper-rectangle) with given side lengths
1456
+ */
1457
+ measureBox(sides: Float64Array): number;
1458
+ /**
1459
+ * Get the dimension of this measure
1460
+ */
1461
+ getDimension(): number;
1462
+ /**
1463
+ * Compute the measure of an interval [a, b]
1464
+ *
1465
+ * For 1D: returns length (b - a)
1466
+ * For higher dimensions: returns the product of interval lengths
1467
+ */
1468
+ measureInterval(lower: Float64Array, upper: Float64Array): number;
1469
+ /**
1470
+ * Create a new Lebesgue measure for the specified dimension
1471
+ *
1472
+ * # Arguments
1473
+ * * `dimension` - The dimension of the space (1 for length, 2 for area, 3 for volume, etc.)
1474
+ */
1475
+ constructor(dimension: number);
1476
+ }
971
1477
  /**
972
1478
  * WASM wrapper for moduli spaces (simplified)
973
1479
  */
@@ -1245,6 +1751,75 @@ export class WasmOptimizationUtils {
1245
1751
  */
1246
1752
  static dominates(objectives1: Float64Array, objectives2: Float64Array): boolean;
1247
1753
  }
1754
+ /**
1755
+ * Parametric probability density families
1756
+ */
1757
+ export class WasmParametricDensity {
1758
+ private constructor();
1759
+ free(): void;
1760
+ [Symbol.dispose](): void;
1761
+ /**
1762
+ * Create an Exponential density Exp(λ)
1763
+ */
1764
+ static exponential(): WasmParametricDensity;
1765
+ /**
1766
+ * Compute log-density log p(x|θ)
1767
+ */
1768
+ logDensity(x: number, params: Float64Array): number;
1769
+ /**
1770
+ * Compute Fisher information matrix from data samples
1771
+ */
1772
+ fisherInformation(data: Float64Array, params: Float64Array): Float64Array;
1773
+ /**
1774
+ * Create a Cauchy density Cauchy(x₀, γ)
1775
+ */
1776
+ static cauchy(): WasmParametricDensity;
1777
+ /**
1778
+ * Create a Laplace density Laplace(μ, b)
1779
+ */
1780
+ static laplace(): WasmParametricDensity;
1781
+ /**
1782
+ * Evaluate density at point x with parameters
1783
+ *
1784
+ * # Arguments
1785
+ * * `x` - Point to evaluate
1786
+ * * `params` - Parameters (Gaussian: [μ, σ], Exponential: [λ], etc.)
1787
+ */
1788
+ evaluate(x: number, params: Float64Array): number;
1789
+ /**
1790
+ * Create a Gaussian density N(μ, σ²)
1791
+ */
1792
+ static gaussian(): WasmParametricDensity;
1793
+ /**
1794
+ * Compute numerical gradient ∇_θ p(x|θ)
1795
+ */
1796
+ gradient(x: number, params: Float64Array): Float64Array;
1797
+ }
1798
+ /**
1799
+ * WASM wrapper for probability measures
1800
+ *
1801
+ * A probability measure assigns total measure 1 to the entire space.
1802
+ */
1803
+ export class WasmProbabilityMeasure {
1804
+ free(): void;
1805
+ [Symbol.dispose](): void;
1806
+ /**
1807
+ * Get a description of this probability measure
1808
+ */
1809
+ getDescription(): string;
1810
+ /**
1811
+ * Compute P(X ∈ [a, b]) for uniform distribution
1812
+ */
1813
+ probabilityInterval(a: number, b: number, lower: number, upper: number): number;
1814
+ /**
1815
+ * Create a new uniform probability measure on [0, 1]
1816
+ */
1817
+ constructor();
1818
+ /**
1819
+ * Create a uniform probability measure on [a, b]
1820
+ */
1821
+ static uniform(a: number, b: number): WasmProbabilityMeasure;
1822
+ }
1248
1823
  /**
1249
1824
  * WASM wrapper for projective spaces
1250
1825
  */
@@ -1547,14 +2122,14 @@ export class WasmTrajectoryPoint {
1547
2122
  private constructor();
1548
2123
  free(): void;
1549
2124
  [Symbol.dispose](): void;
1550
- /**
1551
- * Get position
1552
- */
1553
- readonly position: WasmSpacetimeVector;
1554
2125
  /**
1555
2126
  * Time coordinate
1556
2127
  */
1557
2128
  time: number;
2129
+ /**
2130
+ * Get position
2131
+ */
2132
+ readonly position: WasmSpacetimeVector;
1558
2133
  }
1559
2134
  /**
1560
2135
  * WASM wrapper for tropical curves (simplified)
@@ -1697,6 +2272,33 @@ export class WasmTropicalDualDistribution {
1697
2272
  */
1698
2273
  constructor(logits: Float64Array);
1699
2274
  }
2275
+ /**
2276
+ * Tropical (max-plus) algebra operations for optimization
2277
+ */
2278
+ export class WasmTropicalMeasure {
2279
+ free(): void;
2280
+ [Symbol.dispose](): void;
2281
+ /**
2282
+ * Tropical integration (supremum over region)
2283
+ */
2284
+ tropicalIntegrate(f: Function, a: number, b: number, samples: number): number;
2285
+ /**
2286
+ * Create a new tropical measure
2287
+ */
2288
+ constructor();
2289
+ /**
2290
+ * Compute tropical infimum (minimum) of function over sample points
2291
+ *
2292
+ * Returns the minimum value and the point where it occurs
2293
+ */
2294
+ infimum(f: Function, points: Float64Array): Float64Array;
2295
+ /**
2296
+ * Compute tropical supremum (maximum) of function over sample points
2297
+ *
2298
+ * Returns the maximum value and the point where it occurs
2299
+ */
2300
+ supremum(f: Function, points: Float64Array): Float64Array;
2301
+ }
1700
2302
  /**
1701
2303
  * WASM wrapper for tropical networks
1702
2304
  */
@@ -1850,24 +2452,27 @@ export interface InitOutput {
1850
2452
  readonly memory: WebAssembly.Memory;
1851
2453
  readonly __wbg_autodiff_free: (a: number, b: number) => void;
1852
2454
  readonly __wbg_get_wasmtrajectorypoint_time: (a: number) => number;
2455
+ readonly __wbg_numericalderivative_free: (a: number, b: number) => void;
2456
+ readonly __wbg_riemannianmanifold_free: (a: number, b: number) => void;
2457
+ readonly __wbg_scalarfield_free: (a: number, b: number) => void;
1853
2458
  readonly __wbg_set_wasmtrajectorypoint_time: (a: number, b: number) => void;
1854
- readonly __wbg_wasmalphaconnection_free: (a: number, b: number) => void;
1855
2459
  readonly __wbg_wasmchowclass_free: (a: number, b: number) => void;
1856
2460
  readonly __wbg_wasmcommunity_free: (a: number, b: number) => void;
1857
2461
  readonly __wbg_wasmduallyflatmanifold_free: (a: number, b: number) => void;
1858
2462
  readonly __wbg_wasmevaluationresult_free: (a: number, b: number) => void;
1859
2463
  readonly __wbg_wasmfisherinformationmatrix_free: (a: number, b: number) => void;
2464
+ readonly __wbg_wasmfishermeasure_free: (a: number, b: number) => void;
1860
2465
  readonly __wbg_wasmgeodesicintegrator_free: (a: number, b: number) => void;
1861
2466
  readonly __wbg_wasmgeometricca_free: (a: number, b: number) => void;
1862
2467
  readonly __wbg_wasmgeometricnetwork_free: (a: number, b: number) => void;
1863
2468
  readonly __wbg_wasmgrassmannian_free: (a: number, b: number) => void;
1864
2469
  readonly __wbg_wasminversecadesigner_free: (a: number, b: number) => void;
2470
+ readonly __wbg_wasmlebesguemeasure_free: (a: number, b: number) => void;
1865
2471
  readonly __wbg_wasmmodulispace_free: (a: number, b: number) => void;
1866
2472
  readonly __wbg_wasmmultidualnumber_free: (a: number, b: number) => void;
1867
2473
  readonly __wbg_wasmmultivector_free: (a: number, b: number) => void;
1868
2474
  readonly __wbg_wasmnodemetadata_free: (a: number, b: number) => void;
1869
2475
  readonly __wbg_wasmoptimizationresult_free: (a: number, b: number) => void;
1870
- readonly __wbg_wasmprojectivespace_free: (a: number, b: number) => void;
1871
2476
  readonly __wbg_wasmpropagationanalysis_free: (a: number, b: number) => void;
1872
2477
  readonly __wbg_wasmrelativisticparticle_free: (a: number, b: number) => void;
1873
2478
  readonly __wbg_wasmschwarzschildmetric_free: (a: number, b: number) => void;
@@ -1904,6 +2509,7 @@ export interface InitOutput {
1904
2509
  readonly enumerativeutils_eulerCharacteristic: (a: number) => number;
1905
2510
  readonly enumerativeutils_expectedRationalCurves: (a: number, b: number) => [number, number, number];
1906
2511
  readonly enumerativeutils_validatePartition: (a: number, b: number, c: number, d: number) => number;
2512
+ readonly expectation: (a: any, b: number, c: number, d: number) => [number, number, number];
1907
2513
  readonly fusionbatchoperations_batchDistance: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
1908
2514
  readonly fusionbatchoperations_batchEvaluate: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
1909
2515
  readonly fusionbatchoperations_batchSensitivity: (a: number, b: number, c: number) => [number, number, number, number];
@@ -1925,6 +2531,10 @@ export interface InitOutput {
1925
2531
  readonly initAutomata: () => void;
1926
2532
  readonly initEnumerative: () => void;
1927
2533
  readonly initFusion: () => void;
2534
+ readonly integrate: (a: any, b: number, c: number, d: number, e: number) => [number, number, number];
2535
+ readonly integration_integrate1D: (a: any, b: number, c: number, d: number) => [number, number, number];
2536
+ readonly integration_integrate2D: (a: any, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number];
2537
+ readonly klDivergence: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
1928
2538
  readonly light_deflection_angle: (a: number, b: number) => number;
1929
2539
  readonly mlops_batchActivation: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1930
2540
  readonly mlops_crossEntropyLoss: (a: number, b: number, c: number, d: number) => [number, number, number];
@@ -1933,10 +2543,29 @@ export interface InitOutput {
1933
2543
  readonly networkutils_clusteringCoefficient: (a: number) => number;
1934
2544
  readonly networkutils_createRandomNetwork: (a: number, b: number) => [number, number, number];
1935
2545
  readonly networkutils_createSmallWorldNetwork: (a: number, b: number, c: number) => [number, number, number];
2546
+ readonly numericalderivative_curl: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2547
+ readonly numericalderivative_divergence: (a: number, b: number, c: number, d: number) => [number, number, number];
2548
+ readonly numericalderivative_gradient: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2549
+ readonly numericalderivative_laplacian: (a: number, b: number, c: number, d: number) => [number, number, number];
2550
+ readonly numericalderivative_new: (a: number, b: number) => number;
1936
2551
  readonly performanceoperations_batchNormalize: (a: number, b: number, c: number) => [number, number];
1937
2552
  readonly performanceoperations_fastGeometricProduct: (a: number, b: number, c: number, d: number) => [number, number];
1938
2553
  readonly performanceoperations_vectorCrossProduct: (a: number, b: number, c: number, d: number) => [number, number];
1939
2554
  readonly performanceoperations_vectorDotProduct: (a: number, b: number, c: number, d: number) => number;
2555
+ readonly riemannianmanifold_christoffel: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2556
+ readonly riemannianmanifold_dimension: (a: number) => number;
2557
+ readonly riemannianmanifold_euclidean: (a: number) => [number, number, number];
2558
+ readonly riemannianmanifold_geodesic: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
2559
+ readonly riemannianmanifold_hyperbolic: () => number;
2560
+ readonly riemannianmanifold_ricciTensor: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
2561
+ readonly riemannianmanifold_riemannTensor: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number];
2562
+ readonly riemannianmanifold_scalarCurvature: (a: number, b: number, c: number) => [number, number, number];
2563
+ readonly riemannianmanifold_sphere: (a: number) => [number, number, number];
2564
+ readonly scalarfield_batchEvaluate: (a: number, b: number, c: number) => [number, number, number, number];
2565
+ readonly scalarfield_evaluate: (a: number, b: number, c: number) => [number, number, number];
2566
+ readonly scalarfield_fromFunction2D: (a: any) => number;
2567
+ readonly scalarfield_fromFunction3D: (a: any) => number;
2568
+ readonly scalarfield_new: (a: any, b: number) => number;
1940
2569
  readonly tropicalbatch_batchTropicalAdd: (a: number, b: number) => number;
1941
2570
  readonly tropicalbatch_batchTropicalMul: (a: number, b: number) => number;
1942
2571
  readonly tropicalbatch_maxLogProb: (a: number, b: number) => number;
@@ -1945,6 +2574,7 @@ export interface InitOutput {
1945
2574
  readonly tropicalmlops_matrixMultiply: (a: any, b: any) => [number, number, number];
1946
2575
  readonly tropicalmlops_shortestPaths: (a: any) => [number, number, number];
1947
2576
  readonly validate_relativistic_module: () => number;
2577
+ readonly vectorfield_evaluate: (a: number, b: number, c: number) => [number, number, number, number];
1948
2578
  readonly velocity_to_gamma: (a: number) => [number, number, number];
1949
2579
  readonly wasmalphaconnection_getAlpha: (a: number) => number;
1950
2580
  readonly wasmalphaconnection_isExponential: (a: number) => number;
@@ -1962,6 +2592,9 @@ export interface InitOutput {
1962
2592
  readonly wasmchowclass_power: (a: number, b: number) => number;
1963
2593
  readonly wasmcommunity_centroid_coefficients: (a: number) => [number, number];
1964
2594
  readonly wasmcommunity_nodes: (a: number) => [number, number];
2595
+ readonly wasmcountingmeasure_isMeasurable: (a: number) => number;
2596
+ readonly wasmcountingmeasure_measureFiniteSet: (a: number, b: number) => number;
2597
+ readonly wasmcountingmeasure_new: () => number;
1965
2598
  readonly wasmduallyflatmanifold_bregmanDivergence: (a: number, b: number, c: number, d: number, e: number) => number;
1966
2599
  readonly wasmduallyflatmanifold_fisherMetricAt: (a: number, b: number, c: number) => number;
1967
2600
  readonly wasmduallyflatmanifold_jsDivergence: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
@@ -1999,6 +2632,9 @@ export interface InitOutput {
1999
2632
  readonly wasmfisherinformationmatrix_conditionNumber: (a: number) => number;
2000
2633
  readonly wasmfisherinformationmatrix_getEigenvalues: (a: number) => [number, number];
2001
2634
  readonly wasmfisherinformationmatrix_isPositiveDefinite: (a: number) => number;
2635
+ readonly wasmfishermeasure_fisherMetric: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
2636
+ readonly wasmfishermeasure_fromDensity: (a: number) => number;
2637
+ readonly wasmfishermeasure_volumeElement: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
2002
2638
  readonly wasmfourvelocity_as_spacetime_vector: (a: number) => number;
2003
2639
  readonly wasmfourvelocity_from_velocity: (a: number, b: number, c: number) => [number, number, number];
2004
2640
  readonly wasmfourvelocity_gamma: (a: number) => number;
@@ -2048,7 +2684,6 @@ export interface InitOutput {
2048
2684
  readonly wasmgeometricnetwork_withCapacity: (a: number, b: number) => number;
2049
2685
  readonly wasmgpuoptimizer_initializeGpu: (a: number) => any;
2050
2686
  readonly wasmgpuoptimizer_isGpuAvailable: (a: number) => number;
2051
- readonly wasmgpuoptimizer_new: () => number;
2052
2687
  readonly wasmgpuoptimizer_optimizeBatch: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => any;
2053
2688
  readonly wasmgpuoptimizer_optimizeQuadraticGpu: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => any;
2054
2689
  readonly wasmgrassmannian_getDimension: (a: number) => number;
@@ -2058,8 +2693,11 @@ export interface InitOutput {
2058
2693
  readonly wasminversecadesigner_findSeed: (a: number, b: number, c: number) => [number, number, number, number];
2059
2694
  readonly wasminversecadesigner_new: (a: number, b: number) => number;
2060
2695
  readonly wasminversecadesigner_setTarget: (a: number, b: number, c: number) => [number, number];
2696
+ readonly wasmlebesguemeasure_getDimension: (a: number) => number;
2697
+ readonly wasmlebesguemeasure_measureBox: (a: number, b: number, c: number) => [number, number, number];
2698
+ readonly wasmlebesguemeasure_measureInterval: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
2699
+ readonly wasmlebesguemeasure_new: (a: number) => [number, number, number];
2061
2700
  readonly wasmmodulispace_expectedDimension: (a: number) => number;
2062
- readonly wasmmodulispace_getGenus: (a: number) => number;
2063
2701
  readonly wasmmodulispace_getMarkedPoints: (a: number) => number;
2064
2702
  readonly wasmmodulispace_isProper: (a: number) => number;
2065
2703
  readonly wasmmodulispace_ofCurves: (a: number, b: number) => number;
@@ -2104,10 +2742,21 @@ export interface InitOutput {
2104
2742
  readonly wasmnodemetadata_set_label: (a: number, b: number, c: number) => void;
2105
2743
  readonly wasmnodemetadata_withLabel: (a: number, b: number) => number;
2106
2744
  readonly wasmoptimizationresult_converged: (a: number) => number;
2107
- readonly wasmoptimizationresult_iterations: (a: number) => number;
2108
2745
  readonly wasmoptimizationresult_solution: (a: number) => [number, number];
2109
2746
  readonly wasmoptimizationutils_dominates: (a: number, b: number, c: number, d: number) => number;
2110
2747
  readonly wasmoptimizationutils_numericalGradient: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
2748
+ readonly wasmparametricdensity_cauchy: () => number;
2749
+ readonly wasmparametricdensity_evaluate: (a: number, b: number, c: number, d: number) => [number, number, number];
2750
+ readonly wasmparametricdensity_exponential: () => number;
2751
+ readonly wasmparametricdensity_fisherInformation: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
2752
+ readonly wasmparametricdensity_gaussian: () => number;
2753
+ readonly wasmparametricdensity_gradient: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2754
+ readonly wasmparametricdensity_laplace: () => number;
2755
+ readonly wasmparametricdensity_logDensity: (a: number, b: number, c: number, d: number) => [number, number, number];
2756
+ readonly wasmprobabilitymeasure_getDescription: (a: number) => [number, number];
2757
+ readonly wasmprobabilitymeasure_new: () => number;
2758
+ readonly wasmprobabilitymeasure_probabilityInterval: (a: number, b: number, c: number, d: number, e: number) => number;
2759
+ readonly wasmprobabilitymeasure_uniform: (a: number, b: number) => [number, number, number];
2111
2760
  readonly wasmprojectivespace_bezoutIntersection: (a: number, b: number, c: number) => number;
2112
2761
  readonly wasmprojectivespace_hasDimension: (a: number, b: number) => number;
2113
2762
  readonly wasmprojectivespace_new: (a: number) => number;
@@ -2183,6 +2832,9 @@ export interface InitOutput {
2183
2832
  readonly wasmtropicaldualdistribution_klDivergence: (a: number, b: number) => [number, number, number];
2184
2833
  readonly wasmtropicaldualdistribution_mostLikelySequence: (a: number, b: number) => [number, number];
2185
2834
  readonly wasmtropicaldualdistribution_new: (a: number, b: number) => number;
2835
+ readonly wasmtropicalmeasure_infimum: (a: number, b: any, c: number, d: number) => [number, number, number, number];
2836
+ readonly wasmtropicalmeasure_supremum: (a: number, b: any, c: number, d: number) => [number, number, number, number];
2837
+ readonly wasmtropicalmeasure_tropicalIntegrate: (a: number, b: any, c: number, d: number, e: number) => [number, number, number];
2186
2838
  readonly wasmtropicalnetwork_fromWeights: (a: number, b: number, c: number) => [number, number, number];
2187
2839
  readonly wasmtropicalnetwork_new: (a: number) => number;
2188
2840
  readonly wasmtropicalnetwork_setEdge: (a: number, b: number, c: number, d: number) => [number, number];
@@ -2206,18 +2858,26 @@ export interface InitOutput {
2206
2858
  readonly wasmtropicalviterbi_forward_probabilities: (a: number, b: number, c: number) => [number, number, number];
2207
2859
  readonly wasmtropicalviterbi_new: (a: any, b: any) => [number, number, number];
2208
2860
  readonly wasmtropicalnumber_new: (a: number) => number;
2861
+ readonly vectorfield_fromFunction2D: (a: any) => number;
2862
+ readonly vectorfield_fromFunction3D: (a: any) => number;
2209
2863
  readonly wasmmultivector_norm: (a: number) => number;
2210
2864
  readonly wasmspacetimevector_t: (a: number) => number;
2211
2865
  readonly wasmtropicalnumber_tropicalMul: (a: number, b: number) => number;
2212
2866
  readonly wasmtrajectorypoint_position: (a: number) => number;
2213
2867
  readonly wasmtropicalpolynomial_coefficients_count: (a: number) => number;
2868
+ readonly __wbg_wasmparametricdensity_free: (a: number, b: number) => void;
2869
+ readonly __wbg_wasmprobabilitymeasure_free: (a: number, b: number) => void;
2870
+ readonly __wbg_vectorfield_free: (a: number, b: number) => void;
2871
+ readonly vectorfield_new: (a: any, b: number) => number;
2214
2872
  readonly wasmtropicalnumber_tropicalAdd: (a: number, b: number) => number;
2215
2873
  readonly wasmcommunity_cohesion_score: (a: number) => number;
2216
2874
  readonly wasmdualnumber_getReal: (a: number) => number;
2217
2875
  readonly wasmevaluationresult_getBestPathScore: (a: number) => number;
2218
2876
  readonly wasmevaluationresult_getGradientNorm: (a: number) => number;
2219
2877
  readonly wasmgeometricedge_weight: (a: number) => number;
2878
+ readonly wasmmodulispace_getGenus: (a: number) => number;
2220
2879
  readonly wasmmultidualnumber_getReal: (a: number) => number;
2880
+ readonly wasmoptimizationresult_iterations: (a: number) => number;
2221
2881
  readonly wasmoptimizationresult_objective_value: (a: number) => number;
2222
2882
  readonly wasmprojectivespace_getDimension: (a: number) => number;
2223
2883
  readonly wasmpropagationanalysis_convergence_time: (a: number) => number;
@@ -2237,30 +2897,37 @@ export interface InitOutput {
2237
2897
  readonly __wbg_fusionbatchoperations_free: (a: number, b: number) => void;
2238
2898
  readonly __wbg_fusionutils_free: (a: number, b: number) => void;
2239
2899
  readonly __wbg_infogeomutils_free: (a: number, b: number) => void;
2900
+ readonly __wbg_integration_free: (a: number, b: number) => void;
2240
2901
  readonly __wbg_mlops_free: (a: number, b: number) => void;
2241
2902
  readonly __wbg_networkutils_free: (a: number, b: number) => void;
2242
2903
  readonly __wbg_performanceoperations_free: (a: number, b: number) => void;
2243
2904
  readonly __wbg_tropicalbatch_free: (a: number, b: number) => void;
2244
2905
  readonly __wbg_tropicalmlops_free: (a: number, b: number) => void;
2906
+ readonly __wbg_wasmalphaconnection_free: (a: number, b: number) => void;
2907
+ readonly __wbg_wasmcountingmeasure_free: (a: number, b: number) => void;
2245
2908
  readonly __wbg_wasmdualnumber_free: (a: number, b: number) => void;
2246
2909
  readonly __wbg_wasmfourvelocity_free: (a: number, b: number) => void;
2247
2910
  readonly __wbg_wasmgeometricedge_free: (a: number, b: number) => void;
2248
2911
  readonly __wbg_wasmgpuoptimizer_free: (a: number, b: number) => void;
2249
2912
  readonly __wbg_wasmmultiobjectiveoptimizer_free: (a: number, b: number) => void;
2250
2913
  readonly __wbg_wasmoptimizationutils_free: (a: number, b: number) => void;
2914
+ readonly __wbg_wasmprojectivespace_free: (a: number, b: number) => void;
2251
2915
  readonly __wbg_wasmrelativisticconstants_free: (a: number, b: number) => void;
2252
2916
  readonly __wbg_wasmsimpleoptimizer_free: (a: number, b: number) => void;
2253
2917
  readonly __wbg_wasmspacetimevector_free: (a: number, b: number) => void;
2254
2918
  readonly __wbg_wasmtropicalcurve_free: (a: number, b: number) => void;
2919
+ readonly __wbg_wasmtropicalmeasure_free: (a: number, b: number) => void;
2255
2920
  readonly __wbg_wasmtropicalnumber_free: (a: number, b: number) => void;
2256
2921
  readonly __wbg_wasmmultiobjectiveresult_free: (a: number, b: number) => void;
2257
2922
  readonly wasmrotor_inverse: (a: number) => number;
2258
2923
  readonly __wbg_wasmrotor_free: (a: number, b: number) => void;
2924
+ readonly wasmgpuoptimizer_new: () => number;
2259
2925
  readonly wasmmultiobjectiveoptimizer_new: () => number;
2260
2926
  readonly wasmsimpleoptimizer_new: () => number;
2261
- readonly wasm_bindgen__convert__closures_____invoke__h9e55f7f912fc76ac: (a: number, b: number, c: any) => void;
2262
- readonly wasm_bindgen__closure__destroy__ha65d378aaf4b53b1: (a: number, b: number) => void;
2263
- readonly wasm_bindgen__convert__closures_____invoke__h04878e576420376d: (a: number, b: number, c: any, d: any) => void;
2927
+ readonly wasmtropicalmeasure_new: () => number;
2928
+ readonly wasm_bindgen_e07ba2a7d21574bf___convert__closures_____invoke___wasm_bindgen_e07ba2a7d21574bf___JsValue_____: (a: number, b: number, c: any) => void;
2929
+ readonly wasm_bindgen_e07ba2a7d21574bf___closure__destroy___dyn_core_a2b7f04d45112077___ops__function__FnMut__wasm_bindgen_e07ba2a7d21574bf___JsValue____Output_______: (a: number, b: number) => void;
2930
+ readonly wasm_bindgen_e07ba2a7d21574bf___convert__closures_____invoke___wasm_bindgen_e07ba2a7d21574bf___JsValue__wasm_bindgen_e07ba2a7d21574bf___JsValue_____: (a: number, b: number, c: any, d: any) => void;
2264
2931
  readonly __wbindgen_malloc: (a: number, b: number) => number;
2265
2932
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
2266
2933
  readonly __wbindgen_exn_store: (a: number) => void;