@justinelliottcobb/amari-wasm 0.9.1 → 0.9.3

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,49 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+ /**
4
+ * Convert velocity to Lorentz factor
5
+ */
6
+ export function velocity_to_gamma(velocity_magnitude: number): number;
7
+ /**
8
+ * Convert Lorentz factor to velocity
9
+ */
10
+ export function gamma_to_velocity(gamma: number): number;
11
+ /**
12
+ * Calculate light deflection angle for photon grazing massive object
13
+ */
14
+ export function light_deflection_angle(impact_parameter: number, mass: number): number;
15
+ /**
16
+ * Validate that this module loaded correctly
17
+ */
18
+ export function validate_relativistic_module(): boolean;
3
19
  /**
4
20
  * Initialize the WASM module
5
21
  */
6
22
  export function init(): void;
23
+ /**
24
+ * Automatic differentiation utilities
25
+ */
26
+ export class AutoDiff {
27
+ private constructor();
28
+ free(): void;
29
+ [Symbol.dispose](): void;
30
+ /**
31
+ * Linear layer forward pass (y = Wx + b) with automatic gradients
32
+ */
33
+ static linearLayer(inputs: Float64Array, weights: Float64Array, bias: Float64Array, input_size: number, output_size: number): Float64Array;
34
+ /**
35
+ * Compute mean squared error with automatic gradients
36
+ */
37
+ static meanSquaredError(predictions: Float64Array, targets: Float64Array): WasmDualNumber;
38
+ /**
39
+ * Create a dual number and evaluate a polynomial
40
+ */
41
+ static evaluatePolynomial(x: number, coefficients: Float64Array): WasmDualNumber;
42
+ /**
43
+ * Compute numerical derivative using finite differences (fallback implementation)
44
+ */
45
+ static numericalDerivative(x: number, f: Function, h: number): number;
46
+ }
7
47
  /**
8
48
  * Batch operations for performance
9
49
  */
@@ -21,6 +61,66 @@ export class BatchOperations {
21
61
  */
22
62
  static batchAdd(a_batch: Float64Array, b_batch: Float64Array): Float64Array;
23
63
  }
64
+ /**
65
+ * Batch operations for efficient computation
66
+ */
67
+ export class BatchOps {
68
+ private constructor();
69
+ free(): void;
70
+ [Symbol.dispose](): void;
71
+ /**
72
+ * Matrix multiplication with automatic gradients
73
+ */
74
+ static matrixMultiply(a: Float64Array, b: Float64Array, a_rows: number, a_cols: number, b_rows: number, b_cols: number): Float64Array;
75
+ /**
76
+ * Batch evaluate polynomial with derivatives
77
+ */
78
+ static batchPolynomial(x_values: Float64Array, coefficients: Float64Array): Float64Array;
79
+ /**
80
+ * Compute Jacobian matrix for vector function
81
+ */
82
+ static computeJacobian(input_values: Float64Array, function_name: string): Float64Array;
83
+ }
84
+ /**
85
+ * Advanced machine learning operations using dual numbers
86
+ */
87
+ export class MLOps {
88
+ private constructor();
89
+ free(): void;
90
+ [Symbol.dispose](): void;
91
+ /**
92
+ * Batch apply activation function with gradients
93
+ */
94
+ static batchActivation(inputs: Float64Array, activation: string): Float64Array;
95
+ /**
96
+ * Compute cross-entropy loss with automatic gradients
97
+ */
98
+ static crossEntropyLoss(predictions: Float64Array, targets: Float64Array): WasmDualNumber;
99
+ /**
100
+ * Gradient descent step
101
+ */
102
+ static gradientDescentStep(parameters: Float64Array, gradients: Float64Array, learning_rate: number): Float64Array;
103
+ /**
104
+ * Compute softmax with automatic gradients
105
+ */
106
+ static softmax(inputs: Float64Array): Float64Array;
107
+ }
108
+ /**
109
+ * Batch network operations for performance
110
+ */
111
+ export class NetworkBatchOperations {
112
+ private constructor();
113
+ free(): void;
114
+ [Symbol.dispose](): void;
115
+ /**
116
+ * Fast geometric clustering using k-means in 3D space
117
+ */
118
+ static geometricKMeansClustering(positions: Float64Array, num_nodes: number, k: number, max_iterations: number): Uint32Array;
119
+ /**
120
+ * Compute all pairwise distances in a network
121
+ */
122
+ static computeAllPairwiseDistances(positions: Float64Array, num_nodes: number): Float64Array;
123
+ }
24
124
  /**
25
125
  * High-performance WASM operations with memory pooling
26
126
  */
@@ -45,6 +145,329 @@ export class PerformanceOperations {
45
145
  */
46
146
  static fastGeometricProduct(lhs: Float64Array, rhs: Float64Array): Float64Array;
47
147
  }
148
+ /**
149
+ * Batch operations for tropical numbers
150
+ */
151
+ export class TropicalBatch {
152
+ private constructor();
153
+ free(): void;
154
+ [Symbol.dispose](): void;
155
+ /**
156
+ * Convert array of log probabilities to tropical numbers and find maximum
157
+ */
158
+ static maxLogProb(log_probs: Float64Array): number;
159
+ /**
160
+ * Viterbi algorithm helper: find best path through trellis
161
+ */
162
+ static viterbiStep(prev_scores: Float64Array, transition_scores: Float64Array, emission_scores: Float64Array, num_states: number): Float64Array;
163
+ /**
164
+ * Batch tropical addition (max operation)
165
+ */
166
+ static batchTropicalAdd(values: Float64Array): number;
167
+ /**
168
+ * Batch tropical multiplication (addition)
169
+ */
170
+ static batchTropicalMul(values: Float64Array): number;
171
+ }
172
+ /**
173
+ * Advanced tropical operations for machine learning and optimization
174
+ */
175
+ export class TropicalMLOps {
176
+ private constructor();
177
+ free(): void;
178
+ [Symbol.dispose](): void;
179
+ /**
180
+ * Compute shortest paths using tropical algebra (Floyd-Warshall)
181
+ */
182
+ static shortestPaths(distance_matrix: any): Array<any>;
183
+ /**
184
+ * Compute tropical matrix multiplication for pathfinding
185
+ */
186
+ static matrixMultiply(a: any, b: any): Array<any>;
187
+ /**
188
+ * Compute tropical convex combination (used in optimization)
189
+ */
190
+ static convexCombination(values: Float64Array, weights: Float64Array): number;
191
+ }
192
+ /**
193
+ * WASM wrapper for single-variable dual numbers
194
+ */
195
+ export class WasmDualNumber {
196
+ free(): void;
197
+ [Symbol.dispose](): void;
198
+ /**
199
+ * Natural logarithm
200
+ */
201
+ ln(): WasmDualNumber;
202
+ /**
203
+ * Addition
204
+ */
205
+ add(other: WasmDualNumber): WasmDualNumber;
206
+ /**
207
+ * Cosine function
208
+ */
209
+ cos(): WasmDualNumber;
210
+ /**
211
+ * Division
212
+ */
213
+ div(other: WasmDualNumber): WasmDualNumber;
214
+ /**
215
+ * Exponential function
216
+ */
217
+ exp(): WasmDualNumber;
218
+ /**
219
+ * Maximum of two dual numbers
220
+ */
221
+ max(other: WasmDualNumber): WasmDualNumber;
222
+ /**
223
+ * Minimum of two dual numbers
224
+ */
225
+ min(other: WasmDualNumber): WasmDualNumber;
226
+ /**
227
+ * Multiplication
228
+ */
229
+ mul(other: WasmDualNumber): WasmDualNumber;
230
+ /**
231
+ * Negation
232
+ */
233
+ neg(): WasmDualNumber;
234
+ /**
235
+ * Create a new dual number with given real and dual parts
236
+ */
237
+ constructor(real: number, dual: number);
238
+ /**
239
+ * Power function
240
+ */
241
+ pow(exponent: number): WasmDualNumber;
242
+ /**
243
+ * Sine function
244
+ */
245
+ sin(): WasmDualNumber;
246
+ /**
247
+ * Subtraction
248
+ */
249
+ sub(other: WasmDualNumber): WasmDualNumber;
250
+ /**
251
+ * Tangent function
252
+ */
253
+ tan(): WasmDualNumber;
254
+ /**
255
+ * Hyperbolic cosine
256
+ */
257
+ cosh(): WasmDualNumber;
258
+ /**
259
+ * Integer power
260
+ */
261
+ powi(n: number): WasmDualNumber;
262
+ /**
263
+ * ReLU activation function
264
+ */
265
+ relu(): WasmDualNumber;
266
+ /**
267
+ * Hyperbolic sine
268
+ */
269
+ sinh(): WasmDualNumber;
270
+ /**
271
+ * Square root
272
+ */
273
+ sqrt(): WasmDualNumber;
274
+ /**
275
+ * Hyperbolic tangent
276
+ */
277
+ tanh(): WasmDualNumber;
278
+ /**
279
+ * Sigmoid activation function
280
+ */
281
+ sigmoid(): WasmDualNumber;
282
+ /**
283
+ * Create a constant (derivative = 0)
284
+ */
285
+ static constant(value: number): WasmDualNumber;
286
+ /**
287
+ * Get the dual part (derivative)
288
+ */
289
+ getDual(): number;
290
+ /**
291
+ * Get the real part (function value)
292
+ */
293
+ getReal(): number;
294
+ /**
295
+ * Softplus activation function
296
+ */
297
+ softplus(): WasmDualNumber;
298
+ /**
299
+ * Create a variable (derivative = 1)
300
+ */
301
+ static variable(value: number): WasmDualNumber;
302
+ }
303
+ /**
304
+ * WASM wrapper for four-velocity
305
+ */
306
+ export class WasmFourVelocity {
307
+ private constructor();
308
+ free(): void;
309
+ [Symbol.dispose](): void;
310
+ /**
311
+ * Create four-velocity from 3-velocity components
312
+ */
313
+ static from_velocity(vx: number, vy: number, vz: number): WasmFourVelocity;
314
+ /**
315
+ * Check if normalized (u·u = c²)
316
+ */
317
+ is_normalized(): boolean;
318
+ /**
319
+ * Get as spacetime vector
320
+ */
321
+ as_spacetime_vector(): WasmSpacetimeVector;
322
+ /**
323
+ * Get spatial velocity magnitude
324
+ */
325
+ spatial_velocity_magnitude(): number;
326
+ /**
327
+ * Get Lorentz factor γ
328
+ */
329
+ gamma(): number;
330
+ /**
331
+ * Get rapidity
332
+ */
333
+ rapidity(): number;
334
+ /**
335
+ * Get string representation
336
+ */
337
+ to_string(): string;
338
+ }
339
+ /**
340
+ * WASM wrapper for geodesic integration
341
+ */
342
+ export class WasmGeodesicIntegrator {
343
+ private constructor();
344
+ free(): void;
345
+ [Symbol.dispose](): void;
346
+ /**
347
+ * Propagate particle through spacetime
348
+ */
349
+ propagate_particle(particle: WasmRelativisticParticle, integration_time: number, time_step: number): Array<any>;
350
+ /**
351
+ * Create integrator with Schwarzschild metric
352
+ */
353
+ static with_schwarzschild(metric: WasmSchwarzschildMetric): WasmGeodesicIntegrator;
354
+ }
355
+ /**
356
+ * WASM wrapper for GeometricNetwork
357
+ */
358
+ export class WasmGeometricNetwork {
359
+ free(): void;
360
+ [Symbol.dispose](): void;
361
+ /**
362
+ * Get degree of a node
363
+ */
364
+ getDegree(node: number): number;
365
+ /**
366
+ * Get neighbors of a node
367
+ */
368
+ getNeighbors(node: number): Uint32Array;
369
+ /**
370
+ * Find shortest path between two nodes
371
+ * Returns the path as an array of node indices, or null if no path exists
372
+ */
373
+ shortestPath(source: number, target: number): Uint32Array | undefined;
374
+ /**
375
+ * Add a labeled node
376
+ */
377
+ addLabeledNode(x: number, y: number, z: number, label: string): number;
378
+ /**
379
+ * Find communities using geometric clustering
380
+ */
381
+ findCommunities(num_communities: number): Uint32Array;
382
+ /**
383
+ * Get node position as [x, y, z]
384
+ */
385
+ getNodePosition(node: number): Float64Array | undefined;
386
+ /**
387
+ * Compute geometric distance between two nodes
388
+ */
389
+ geometricDistance(node1: number, node2: number): number;
390
+ /**
391
+ * Add an undirected edge
392
+ */
393
+ addUndirectedEdge(a: number, b: number, weight: number): void;
394
+ /**
395
+ * Find shortest path with distance between two nodes
396
+ * Returns an object with path and distance, or null if no path exists
397
+ */
398
+ shortestPathWithDistance(source: number, target: number): any;
399
+ /**
400
+ * Compute geometric centrality for all nodes
401
+ */
402
+ computeGeometricCentrality(): Float64Array;
403
+ /**
404
+ * Create a new geometric network
405
+ */
406
+ constructor();
407
+ /**
408
+ * Add an edge between two nodes
409
+ */
410
+ addEdge(source: number, target: number, weight: number): void;
411
+ /**
412
+ * Add a node at the given position
413
+ */
414
+ addNode(x: number, y: number, z: number): number;
415
+ /**
416
+ * Get number of edges
417
+ */
418
+ numEdges(): number;
419
+ /**
420
+ * Get number of nodes
421
+ */
422
+ numNodes(): number;
423
+ }
424
+ /**
425
+ * WASM wrapper for multi-variable dual numbers
426
+ */
427
+ export class WasmMultiDualNumber {
428
+ free(): void;
429
+ [Symbol.dispose](): void;
430
+ /**
431
+ * Get a specific partial derivative
432
+ */
433
+ getPartial(index: number): number;
434
+ /**
435
+ * Get the gradient (all partial derivatives)
436
+ */
437
+ getGradient(): Float64Array;
438
+ /**
439
+ * Get number of variables
440
+ */
441
+ getNumVars(): number;
442
+ /**
443
+ * Addition
444
+ */
445
+ add(other: WasmMultiDualNumber): WasmMultiDualNumber;
446
+ /**
447
+ * Multiplication
448
+ */
449
+ mul(other: WasmMultiDualNumber): WasmMultiDualNumber;
450
+ /**
451
+ * Create a new multi-dual number
452
+ */
453
+ constructor(real: number, duals: Float64Array);
454
+ /**
455
+ * Square root
456
+ */
457
+ sqrt(): WasmMultiDualNumber;
458
+ /**
459
+ * Create a constant (all derivatives are zero)
460
+ */
461
+ static constant(value: number, num_vars: number): WasmMultiDualNumber;
462
+ /**
463
+ * Get the real part (function value)
464
+ */
465
+ getReal(): number;
466
+ /**
467
+ * Create a variable with derivative 1 at the specified index
468
+ */
469
+ static variable(value: number, num_vars: number, var_index: number): WasmMultiDualNumber;
470
+ }
48
471
  /**
49
472
  * WASM wrapper for Multivector with TypedArray support
50
473
  */
@@ -136,6 +559,81 @@ export class WasmMultivector {
136
559
  */
137
560
  normalize(): WasmMultivector;
138
561
  }
562
+ /**
563
+ * Physical constants
564
+ */
565
+ export class WasmRelativisticConstants {
566
+ private constructor();
567
+ free(): void;
568
+ [Symbol.dispose](): void;
569
+ /**
570
+ * Earth mass (kg)
571
+ */
572
+ static readonly earth_mass: number;
573
+ /**
574
+ * Solar mass (kg)
575
+ */
576
+ static readonly solar_mass: number;
577
+ /**
578
+ * Speed of light in vacuum (m/s)
579
+ */
580
+ static readonly speed_of_light: number;
581
+ /**
582
+ * Gravitational constant (m³/kg·s²)
583
+ */
584
+ static readonly gravitational_constant: number;
585
+ }
586
+ /**
587
+ * WASM wrapper for relativistic particles
588
+ */
589
+ export class WasmRelativisticParticle {
590
+ free(): void;
591
+ [Symbol.dispose](): void;
592
+ /**
593
+ * Get 3D position components
594
+ */
595
+ position_3d(): Array<any>;
596
+ /**
597
+ * Get position as spacetime vector
598
+ */
599
+ position_4d(): WasmSpacetimeVector;
600
+ /**
601
+ * Create particle with specified energy
602
+ */
603
+ static with_energy(x: number, y: number, z: number, direction_x: number, direction_y: number, direction_z: number, kinetic_energy: number, mass: number, charge: number): WasmRelativisticParticle;
604
+ /**
605
+ * Get total energy
606
+ */
607
+ total_energy(): number;
608
+ /**
609
+ * Get four-velocity
610
+ */
611
+ four_velocity(): WasmFourVelocity;
612
+ /**
613
+ * Get kinetic energy
614
+ */
615
+ kinetic_energy(): number;
616
+ /**
617
+ * Get momentum magnitude
618
+ */
619
+ momentum_magnitude(): number;
620
+ /**
621
+ * Create a new relativistic particle
622
+ */
623
+ constructor(x: number, y: number, z: number, vx: number, vy: number, vz: number, spin: number, mass: number, charge: number);
624
+ /**
625
+ * Get rest mass
626
+ */
627
+ mass(): number;
628
+ /**
629
+ * Get electric charge
630
+ */
631
+ charge(): number;
632
+ /**
633
+ * Get string representation
634
+ */
635
+ to_string(): string;
636
+ }
139
637
  /**
140
638
  * Rotor operations for WASM
141
639
  */
@@ -160,20 +658,342 @@ export class WasmRotor {
160
658
  */
161
659
  inverse(): WasmRotor;
162
660
  }
661
+ /**
662
+ * WASM wrapper for Schwarzschild metric
663
+ */
664
+ export class WasmSchwarzschildMetric {
665
+ private constructor();
666
+ free(): void;
667
+ [Symbol.dispose](): void;
668
+ /**
669
+ * Check for singularity at given position
670
+ */
671
+ has_singularity(position: WasmSpacetimeVector): boolean;
672
+ /**
673
+ * Compute effective potential for circular orbits
674
+ */
675
+ effective_potential(r: number, angular_momentum: number): number;
676
+ /**
677
+ * Get Schwarzschild radius
678
+ */
679
+ schwarzschild_radius(): number;
680
+ /**
681
+ * Create Schwarzschild metric for the Sun
682
+ */
683
+ static sun(): WasmSchwarzschildMetric;
684
+ /**
685
+ * Get central mass
686
+ */
687
+ mass(): number;
688
+ /**
689
+ * Create Schwarzschild metric for Earth
690
+ */
691
+ static earth(): WasmSchwarzschildMetric;
692
+ /**
693
+ * Create Schwarzschild metric for custom mass
694
+ */
695
+ static from_mass(mass: number): WasmSchwarzschildMetric;
696
+ }
697
+ /**
698
+ * WASM wrapper for spacetime vectors
699
+ */
700
+ export class WasmSpacetimeVector {
701
+ free(): void;
702
+ [Symbol.dispose](): void;
703
+ /**
704
+ * Check if vector is timelike (massive particle)
705
+ */
706
+ is_timelike(): boolean;
707
+ /**
708
+ * Check if vector is spacelike
709
+ */
710
+ is_spacelike(): boolean;
711
+ /**
712
+ * Compute Minkowski norm squared
713
+ */
714
+ norm_squared(): number;
715
+ /**
716
+ * Compute Minkowski inner product with another spacetime vector
717
+ */
718
+ minkowski_dot(other: WasmSpacetimeVector): number;
719
+ /**
720
+ * Create a new spacetime vector with components (ct, x, y, z)
721
+ */
722
+ constructor(t: number, x: number, y: number, z: number);
723
+ /**
724
+ * Check if vector is null (lightlike)
725
+ */
726
+ is_null(): boolean;
727
+ /**
728
+ * Create a timelike vector
729
+ */
730
+ static timelike(t: number): WasmSpacetimeVector;
731
+ /**
732
+ * Create a spacelike vector
733
+ */
734
+ static spacelike(x: number, y: number, z: number): WasmSpacetimeVector;
735
+ /**
736
+ * Get string representation
737
+ */
738
+ to_string(): string;
739
+ /**
740
+ * Get temporal component
741
+ */
742
+ readonly t: number;
743
+ /**
744
+ * Get x component
745
+ */
746
+ readonly x: number;
747
+ /**
748
+ * Get y component
749
+ */
750
+ readonly y: number;
751
+ /**
752
+ * Get z component
753
+ */
754
+ readonly z: number;
755
+ }
756
+ /**
757
+ * Trajectory point for particle propagation
758
+ */
759
+ export class WasmTrajectoryPoint {
760
+ private constructor();
761
+ free(): void;
762
+ [Symbol.dispose](): void;
763
+ /**
764
+ * Get position
765
+ */
766
+ readonly position: WasmSpacetimeVector;
767
+ /**
768
+ * Time coordinate
769
+ */
770
+ time: number;
771
+ }
772
+ /**
773
+ * WASM wrapper for TropicalNumber
774
+ */
775
+ export class WasmTropicalNumber {
776
+ free(): void;
777
+ [Symbol.dispose](): void;
778
+ /**
779
+ * Check if this is infinite
780
+ */
781
+ isInfinity(): boolean;
782
+ /**
783
+ * Tropical addition (max operation)
784
+ */
785
+ tropicalAdd(other: WasmTropicalNumber): WasmTropicalNumber;
786
+ /**
787
+ * Tropical multiplication (addition)
788
+ */
789
+ tropicalMul(other: WasmTropicalNumber): WasmTropicalNumber;
790
+ /**
791
+ * Tropical power (scalar multiplication)
792
+ */
793
+ tropicalPow(n: number): WasmTropicalNumber;
794
+ /**
795
+ * Create from log probability
796
+ */
797
+ static fromLogProb(log_p: number): WasmTropicalNumber;
798
+ /**
799
+ * Standard addition (for convenience)
800
+ */
801
+ add(other: WasmTropicalNumber): WasmTropicalNumber;
802
+ /**
803
+ * Standard multiplication (for convenience)
804
+ */
805
+ mul(other: WasmTropicalNumber): WasmTropicalNumber;
806
+ /**
807
+ * Negation
808
+ */
809
+ neg(): WasmTropicalNumber;
810
+ /**
811
+ * Create a new tropical number from a regular number
812
+ */
813
+ constructor(value: number);
814
+ /**
815
+ * Create tropical one (regular zero)
816
+ */
817
+ static one(): WasmTropicalNumber;
818
+ /**
819
+ * Create tropical zero (negative infinity)
820
+ */
821
+ static zero(): WasmTropicalNumber;
822
+ /**
823
+ * Check if this is tropical one (zero)
824
+ */
825
+ isOne(): boolean;
826
+ /**
827
+ * Check if this is tropical zero (negative infinity)
828
+ */
829
+ isZero(): boolean;
830
+ /**
831
+ * Convert to probability (via exp)
832
+ */
833
+ toProb(): number;
834
+ /**
835
+ * Get the underlying value
836
+ */
837
+ getValue(): number;
838
+ }
839
+ /**
840
+ * WASM wrapper for TropicalPolynomial - polynomial operations in tropical algebra
841
+ */
842
+ export class WasmTropicalPolynomial {
843
+ free(): void;
844
+ [Symbol.dispose](): void;
845
+ /**
846
+ * Find tropical roots of the polynomial
847
+ */
848
+ tropical_roots(): Array<any>;
849
+ /**
850
+ * Get the number of coefficients
851
+ */
852
+ coefficients_count(): number;
853
+ /**
854
+ * Create a new tropical polynomial from coefficients
855
+ */
856
+ constructor(coefficients: Float64Array);
857
+ /**
858
+ * Evaluate the polynomial at a given tropical number
859
+ */
860
+ evaluate(x: WasmTropicalNumber): WasmTropicalNumber;
861
+ }
862
+ /**
863
+ * WASM wrapper for TropicalViterbi - Hidden Markov Model decoding
864
+ */
865
+ export class WasmTropicalViterbi {
866
+ free(): void;
867
+ [Symbol.dispose](): void;
868
+ /**
869
+ * Compute forward probabilities for all states
870
+ */
871
+ forward_probabilities(observations: Uint32Array): Array<any>;
872
+ /**
873
+ * Create a new Viterbi decoder
874
+ *
875
+ * # Arguments
876
+ * * `transitions` - Transition probability matrix (2D array)
877
+ * * `emissions` - Emission probability matrix (2D array)
878
+ */
879
+ constructor(transitions: any, emissions: any);
880
+ /**
881
+ * Decode the most likely state sequence for given observations
882
+ *
883
+ * Returns an object with `states` (array of state indices) and `probability` (log probability)
884
+ */
885
+ decode(observations: Uint32Array): any;
886
+ }
163
887
 
164
888
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
165
889
 
166
890
  export interface InitOutput {
167
891
  readonly memory: WebAssembly.Memory;
168
- readonly __wbg_batchoperations_free: (a: number, b: number) => void;
892
+ readonly __wbg_autodiff_free: (a: number, b: number) => void;
893
+ readonly __wbg_get_wasmtrajectorypoint_time: (a: number) => number;
894
+ readonly __wbg_set_wasmtrajectorypoint_time: (a: number, b: number) => void;
895
+ readonly __wbg_wasmdualnumber_free: (a: number, b: number) => void;
896
+ readonly __wbg_wasmfourvelocity_free: (a: number, b: number) => void;
897
+ readonly __wbg_wasmgeodesicintegrator_free: (a: number, b: number) => void;
898
+ readonly __wbg_wasmgeometricnetwork_free: (a: number, b: number) => void;
899
+ readonly __wbg_wasmmultidualnumber_free: (a: number, b: number) => void;
169
900
  readonly __wbg_wasmmultivector_free: (a: number, b: number) => void;
901
+ readonly __wbg_wasmrelativisticparticle_free: (a: number, b: number) => void;
902
+ readonly __wbg_wasmschwarzschildmetric_free: (a: number, b: number) => void;
903
+ readonly __wbg_wasmtrajectorypoint_free: (a: number, b: number) => void;
904
+ readonly __wbg_wasmtropicalnumber_free: (a: number, b: number) => void;
905
+ readonly __wbg_wasmtropicalpolynomial_free: (a: number, b: number) => void;
906
+ readonly __wbg_wasmtropicalviterbi_free: (a: number, b: number) => void;
907
+ readonly autodiff_evaluatePolynomial: (a: number, b: number, c: number) => number;
908
+ readonly autodiff_linearLayer: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
909
+ readonly autodiff_meanSquaredError: (a: number, b: number, c: number, d: number) => [number, number, number];
910
+ readonly autodiff_numericalDerivative: (a: number, b: any, c: number) => [number, number, number];
170
911
  readonly batchoperations_batchAdd: (a: number, b: number, c: number, d: number) => [number, number, number, number];
171
912
  readonly batchoperations_batchGeometricProduct: (a: number, b: number, c: number, d: number) => [number, number, number, number];
913
+ readonly batchops_batchPolynomial: (a: number, b: number, c: number, d: number) => [number, number, number, number];
914
+ readonly batchops_computeJacobian: (a: number, b: number, c: number, d: number) => [number, number, number, number];
915
+ readonly batchops_matrixMultiply: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
916
+ readonly gamma_to_velocity: (a: number) => [number, number, number];
172
917
  readonly init: () => void;
918
+ readonly light_deflection_angle: (a: number, b: number) => number;
919
+ readonly mlops_batchActivation: (a: number, b: number, c: number, d: number) => [number, number, number, number];
920
+ readonly mlops_crossEntropyLoss: (a: number, b: number, c: number, d: number) => [number, number, number];
921
+ readonly mlops_gradientDescentStep: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
922
+ readonly mlops_softmax: (a: number, b: number) => [number, number];
923
+ readonly networkbatchoperations_computeAllPairwiseDistances: (a: number, b: number, c: number) => [number, number, number, number];
924
+ readonly networkbatchoperations_geometricKMeansClustering: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
173
925
  readonly performanceoperations_batchNormalize: (a: number, b: number, c: number) => [number, number];
174
926
  readonly performanceoperations_fastGeometricProduct: (a: number, b: number, c: number, d: number) => [number, number];
175
927
  readonly performanceoperations_vectorCrossProduct: (a: number, b: number, c: number, d: number) => [number, number];
176
928
  readonly performanceoperations_vectorDotProduct: (a: number, b: number, c: number, d: number) => number;
929
+ readonly tropicalbatch_batchTropicalAdd: (a: number, b: number) => number;
930
+ readonly tropicalbatch_batchTropicalMul: (a: number, b: number) => number;
931
+ readonly tropicalbatch_maxLogProb: (a: number, b: number) => number;
932
+ readonly tropicalbatch_viterbiStep: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
933
+ readonly tropicalmlops_convexCombination: (a: number, b: number, c: number, d: number) => [number, number, number];
934
+ readonly tropicalmlops_matrixMultiply: (a: any, b: any) => [number, number, number];
935
+ readonly tropicalmlops_shortestPaths: (a: any) => [number, number, number];
936
+ readonly validate_relativistic_module: () => number;
937
+ readonly velocity_to_gamma: (a: number) => [number, number, number];
938
+ readonly wasmdualnumber_add: (a: number, b: number) => number;
939
+ readonly wasmdualnumber_constant: (a: number) => number;
940
+ readonly wasmdualnumber_cos: (a: number) => number;
941
+ readonly wasmdualnumber_cosh: (a: number) => number;
942
+ readonly wasmdualnumber_div: (a: number, b: number) => [number, number, number];
943
+ readonly wasmdualnumber_exp: (a: number) => number;
944
+ readonly wasmdualnumber_getDual: (a: number) => number;
945
+ readonly wasmdualnumber_getReal: (a: number) => number;
946
+ readonly wasmdualnumber_ln: (a: number) => [number, number, number];
947
+ readonly wasmdualnumber_max: (a: number, b: number) => number;
948
+ readonly wasmdualnumber_min: (a: number, b: number) => number;
949
+ readonly wasmdualnumber_mul: (a: number, b: number) => number;
950
+ readonly wasmdualnumber_neg: (a: number) => number;
951
+ readonly wasmdualnumber_new: (a: number, b: number) => number;
952
+ readonly wasmdualnumber_pow: (a: number, b: number) => number;
953
+ readonly wasmdualnumber_powi: (a: number, b: number) => number;
954
+ readonly wasmdualnumber_relu: (a: number) => number;
955
+ readonly wasmdualnumber_sigmoid: (a: number) => number;
956
+ readonly wasmdualnumber_sin: (a: number) => number;
957
+ readonly wasmdualnumber_sinh: (a: number) => number;
958
+ readonly wasmdualnumber_softplus: (a: number) => number;
959
+ readonly wasmdualnumber_sqrt: (a: number) => [number, number, number];
960
+ readonly wasmdualnumber_sub: (a: number, b: number) => number;
961
+ readonly wasmdualnumber_tan: (a: number) => number;
962
+ readonly wasmdualnumber_tanh: (a: number) => number;
963
+ readonly wasmdualnumber_variable: (a: number) => number;
964
+ readonly wasmfourvelocity_as_spacetime_vector: (a: number) => number;
965
+ readonly wasmfourvelocity_from_velocity: (a: number, b: number, c: number) => [number, number, number];
966
+ readonly wasmfourvelocity_gamma: (a: number) => number;
967
+ readonly wasmfourvelocity_is_normalized: (a: number) => number;
968
+ readonly wasmfourvelocity_rapidity: (a: number) => number;
969
+ readonly wasmfourvelocity_spatial_velocity_magnitude: (a: number) => number;
970
+ readonly wasmfourvelocity_to_string: (a: number) => [number, number];
971
+ readonly wasmgeodesicintegrator_propagate_particle: (a: number, b: number, c: number, d: number) => [number, number, number];
972
+ readonly wasmgeodesicintegrator_with_schwarzschild: (a: number) => number;
973
+ readonly wasmgeometricnetwork_addEdge: (a: number, b: number, c: number, d: number) => [number, number];
974
+ readonly wasmgeometricnetwork_addLabeledNode: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
975
+ readonly wasmgeometricnetwork_addNode: (a: number, b: number, c: number, d: number) => number;
976
+ readonly wasmgeometricnetwork_addUndirectedEdge: (a: number, b: number, c: number, d: number) => [number, number];
977
+ readonly wasmgeometricnetwork_computeGeometricCentrality: (a: number) => [number, number, number, number];
978
+ readonly wasmgeometricnetwork_findCommunities: (a: number, b: number) => [number, number, number, number];
979
+ readonly wasmgeometricnetwork_geometricDistance: (a: number, b: number, c: number) => [number, number, number];
980
+ readonly wasmgeometricnetwork_getDegree: (a: number, b: number) => number;
981
+ readonly wasmgeometricnetwork_getNeighbors: (a: number, b: number) => [number, number];
982
+ readonly wasmgeometricnetwork_getNodePosition: (a: number, b: number) => [number, number];
983
+ readonly wasmgeometricnetwork_new: () => number;
984
+ readonly wasmgeometricnetwork_numEdges: (a: number) => number;
985
+ readonly wasmgeometricnetwork_numNodes: (a: number) => number;
986
+ readonly wasmgeometricnetwork_shortestPath: (a: number, b: number, c: number) => [number, number, number, number];
987
+ readonly wasmgeometricnetwork_shortestPathWithDistance: (a: number, b: number, c: number) => [number, number, number];
988
+ readonly wasmmultidualnumber_add: (a: number, b: number) => [number, number, number];
989
+ readonly wasmmultidualnumber_constant: (a: number, b: number) => number;
990
+ readonly wasmmultidualnumber_getGradient: (a: number) => [number, number];
991
+ readonly wasmmultidualnumber_getNumVars: (a: number) => number;
992
+ readonly wasmmultidualnumber_getPartial: (a: number, b: number) => [number, number, number];
993
+ readonly wasmmultidualnumber_mul: (a: number, b: number) => [number, number, number];
994
+ readonly wasmmultidualnumber_new: (a: number, b: number, c: number) => number;
995
+ readonly wasmmultidualnumber_sqrt: (a: number) => [number, number, number];
996
+ readonly wasmmultidualnumber_variable: (a: number, b: number, c: number) => number;
177
997
  readonly wasmmultivector_add: (a: number, b: number) => number;
178
998
  readonly wasmmultivector_basisVector: (a: number) => [number, number, number];
179
999
  readonly wasmmultivector_exp: (a: number) => number;
@@ -194,15 +1014,85 @@ export interface InitOutput {
194
1014
  readonly wasmmultivector_scale: (a: number, b: number) => number;
195
1015
  readonly wasmmultivector_setCoefficient: (a: number, b: number, c: number) => void;
196
1016
  readonly wasmmultivector_sub: (a: number, b: number) => number;
1017
+ readonly wasmrelativisticconstants_earth_mass: () => number;
1018
+ readonly wasmrelativisticconstants_gravitational_constant: () => number;
1019
+ readonly wasmrelativisticconstants_solar_mass: () => number;
1020
+ readonly wasmrelativisticconstants_speed_of_light: () => number;
1021
+ readonly wasmrelativisticparticle_charge: (a: number) => number;
1022
+ readonly wasmrelativisticparticle_four_velocity: (a: number) => number;
1023
+ readonly wasmrelativisticparticle_kinetic_energy: (a: number) => number;
1024
+ readonly wasmrelativisticparticle_mass: (a: number) => number;
1025
+ readonly wasmrelativisticparticle_momentum_magnitude: (a: number) => number;
1026
+ readonly wasmrelativisticparticle_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
1027
+ readonly wasmrelativisticparticle_position_3d: (a: number) => any;
1028
+ readonly wasmrelativisticparticle_position_4d: (a: number) => number;
1029
+ readonly wasmrelativisticparticle_to_string: (a: number) => [number, number];
1030
+ readonly wasmrelativisticparticle_total_energy: (a: number) => number;
1031
+ readonly wasmrelativisticparticle_with_energy: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
197
1032
  readonly wasmrotor_apply: (a: number, b: number) => number;
198
1033
  readonly wasmrotor_compose: (a: number, b: number) => number;
199
1034
  readonly wasmrotor_fromBivector: (a: number, b: number) => number;
1035
+ readonly wasmschwarzschildmetric_earth: () => number;
1036
+ readonly wasmschwarzschildmetric_effective_potential: (a: number, b: number, c: number) => number;
1037
+ readonly wasmschwarzschildmetric_from_mass: (a: number) => number;
1038
+ readonly wasmschwarzschildmetric_has_singularity: (a: number, b: number) => number;
1039
+ readonly wasmschwarzschildmetric_schwarzschild_radius: (a: number) => number;
1040
+ readonly wasmschwarzschildmetric_sun: () => number;
1041
+ readonly wasmspacetimevector_is_null: (a: number) => number;
1042
+ readonly wasmspacetimevector_is_spacelike: (a: number) => number;
1043
+ readonly wasmspacetimevector_is_timelike: (a: number) => number;
1044
+ readonly wasmspacetimevector_minkowski_dot: (a: number, b: number) => number;
1045
+ readonly wasmspacetimevector_new: (a: number, b: number, c: number, d: number) => number;
1046
+ readonly wasmspacetimevector_norm_squared: (a: number) => number;
1047
+ readonly wasmspacetimevector_spacelike: (a: number, b: number, c: number) => number;
1048
+ readonly wasmspacetimevector_timelike: (a: number) => number;
1049
+ readonly wasmspacetimevector_to_string: (a: number) => [number, number];
1050
+ readonly wasmspacetimevector_y: (a: number) => number;
1051
+ readonly wasmspacetimevector_z: (a: number) => number;
1052
+ readonly wasmtropicalnumber_add: (a: number, b: number) => number;
1053
+ readonly wasmtropicalnumber_fromLogProb: (a: number) => number;
1054
+ readonly wasmtropicalnumber_isInfinity: (a: number) => number;
1055
+ readonly wasmtropicalnumber_isOne: (a: number) => number;
1056
+ readonly wasmtropicalnumber_isZero: (a: number) => number;
1057
+ readonly wasmtropicalnumber_mul: (a: number, b: number) => number;
1058
+ readonly wasmtropicalnumber_neg: (a: number) => number;
1059
+ readonly wasmtropicalnumber_one: () => number;
1060
+ readonly wasmtropicalnumber_toProb: (a: number) => number;
1061
+ readonly wasmtropicalnumber_tropicalPow: (a: number, b: number) => number;
1062
+ readonly wasmtropicalnumber_zero: () => number;
1063
+ readonly wasmtropicalpolynomial_coefficients_count: (a: number) => number;
1064
+ readonly wasmtropicalpolynomial_evaluate: (a: number, b: number) => number;
1065
+ readonly wasmtropicalpolynomial_new: (a: number, b: number) => number;
1066
+ readonly wasmtropicalpolynomial_tropical_roots: (a: number) => any;
1067
+ readonly wasmtropicalviterbi_decode: (a: number, b: number, c: number) => [number, number, number];
1068
+ readonly wasmtropicalviterbi_forward_probabilities: (a: number, b: number, c: number) => [number, number, number];
1069
+ readonly wasmtropicalviterbi_new: (a: any, b: any) => [number, number, number];
1070
+ readonly wasmtropicalnumber_new: (a: number) => number;
200
1071
  readonly wasmmultivector_norm: (a: number) => number;
1072
+ readonly wasmspacetimevector_t: (a: number) => number;
1073
+ readonly wasmtropicalnumber_tropicalMul: (a: number, b: number) => number;
1074
+ readonly wasmtrajectorypoint_position: (a: number) => number;
1075
+ readonly wasmtropicalnumber_tropicalAdd: (a: number, b: number) => number;
1076
+ readonly wasmmultidualnumber_getReal: (a: number) => number;
1077
+ readonly wasmschwarzschildmetric_mass: (a: number) => number;
1078
+ readonly wasmspacetimevector_x: (a: number) => number;
1079
+ readonly wasmtropicalnumber_getValue: (a: number) => number;
1080
+ readonly __wbg_batchoperations_free: (a: number, b: number) => void;
1081
+ readonly __wbg_batchops_free: (a: number, b: number) => void;
1082
+ readonly __wbg_mlops_free: (a: number, b: number) => void;
1083
+ readonly __wbg_networkbatchoperations_free: (a: number, b: number) => void;
201
1084
  readonly __wbg_performanceoperations_free: (a: number, b: number) => void;
1085
+ readonly __wbg_tropicalbatch_free: (a: number, b: number) => void;
1086
+ readonly __wbg_tropicalmlops_free: (a: number, b: number) => void;
1087
+ readonly __wbg_wasmrelativisticconstants_free: (a: number, b: number) => void;
1088
+ readonly __wbg_wasmspacetimevector_free: (a: number, b: number) => void;
202
1089
  readonly wasmrotor_inverse: (a: number) => number;
203
1090
  readonly __wbg_wasmrotor_free: (a: number, b: number) => void;
204
- readonly __wbindgen_export_0: WebAssembly.Table;
1091
+ readonly __wbindgen_exn_store: (a: number) => void;
1092
+ readonly __externref_table_alloc: () => number;
1093
+ readonly __wbindgen_export_2: WebAssembly.Table;
205
1094
  readonly __wbindgen_malloc: (a: number, b: number) => number;
1095
+ readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
206
1096
  readonly __externref_table_dealloc: (a: number) => void;
207
1097
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
208
1098
  readonly __wbindgen_start: () => void;