@justinelliottcobb/amari-wasm 0.9.1 → 0.9.2

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,5 +1,21 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+ /**
4
+ * Convert Lorentz factor to velocity
5
+ */
6
+ export function gamma_to_velocity(gamma: number): number;
7
+ /**
8
+ * Convert velocity to Lorentz factor
9
+ */
10
+ export function velocity_to_gamma(velocity_magnitude: 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
  */
@@ -21,6 +37,22 @@ export class BatchOperations {
21
37
  */
22
38
  static batchAdd(a_batch: Float64Array, b_batch: Float64Array): Float64Array;
23
39
  }
40
+ /**
41
+ * Batch network operations for performance
42
+ */
43
+ export class NetworkBatchOperations {
44
+ private constructor();
45
+ free(): void;
46
+ [Symbol.dispose](): void;
47
+ /**
48
+ * Fast geometric clustering using k-means in 3D space
49
+ */
50
+ static geometricKMeansClustering(positions: Float64Array, num_nodes: number, k: number, max_iterations: number): Uint32Array;
51
+ /**
52
+ * Compute all pairwise distances in a network
53
+ */
54
+ static computeAllPairwiseDistances(positions: Float64Array, num_nodes: number): Float64Array;
55
+ }
24
56
  /**
25
57
  * High-performance WASM operations with memory pooling
26
58
  */
@@ -45,6 +77,127 @@ export class PerformanceOperations {
45
77
  */
46
78
  static fastGeometricProduct(lhs: Float64Array, rhs: Float64Array): Float64Array;
47
79
  }
80
+ /**
81
+ * WASM wrapper for four-velocity
82
+ */
83
+ export class WasmFourVelocity {
84
+ private constructor();
85
+ free(): void;
86
+ [Symbol.dispose](): void;
87
+ /**
88
+ * Create four-velocity from 3-velocity components
89
+ */
90
+ static from_velocity(vx: number, vy: number, vz: number): WasmFourVelocity;
91
+ /**
92
+ * Check if normalized (u·u = c²)
93
+ */
94
+ is_normalized(): boolean;
95
+ /**
96
+ * Get as spacetime vector
97
+ */
98
+ as_spacetime_vector(): WasmSpacetimeVector;
99
+ /**
100
+ * Get spatial velocity magnitude
101
+ */
102
+ spatial_velocity_magnitude(): number;
103
+ /**
104
+ * Get Lorentz factor γ
105
+ */
106
+ gamma(): number;
107
+ /**
108
+ * Get rapidity
109
+ */
110
+ rapidity(): number;
111
+ /**
112
+ * Get string representation
113
+ */
114
+ to_string(): string;
115
+ }
116
+ /**
117
+ * WASM wrapper for geodesic integration
118
+ */
119
+ export class WasmGeodesicIntegrator {
120
+ private constructor();
121
+ free(): void;
122
+ [Symbol.dispose](): void;
123
+ /**
124
+ * Propagate particle through spacetime
125
+ */
126
+ propagate_particle(particle: WasmRelativisticParticle, integration_time: number, time_step: number): Array<any>;
127
+ /**
128
+ * Create integrator with Schwarzschild metric
129
+ */
130
+ static with_schwarzschild(metric: WasmSchwarzschildMetric): WasmGeodesicIntegrator;
131
+ }
132
+ /**
133
+ * WASM wrapper for GeometricNetwork
134
+ */
135
+ export class WasmGeometricNetwork {
136
+ free(): void;
137
+ [Symbol.dispose](): void;
138
+ /**
139
+ * Get degree of a node
140
+ */
141
+ getDegree(node: number): number;
142
+ /**
143
+ * Get neighbors of a node
144
+ */
145
+ getNeighbors(node: number): Uint32Array;
146
+ /**
147
+ * Find shortest path between two nodes
148
+ * Returns the path as an array of node indices, or null if no path exists
149
+ */
150
+ shortestPath(source: number, target: number): Uint32Array | undefined;
151
+ /**
152
+ * Add a labeled node
153
+ */
154
+ addLabeledNode(x: number, y: number, z: number, label: string): number;
155
+ /**
156
+ * Find communities using geometric clustering
157
+ */
158
+ findCommunities(num_communities: number): Uint32Array;
159
+ /**
160
+ * Get node position as [x, y, z]
161
+ */
162
+ getNodePosition(node: number): Float64Array | undefined;
163
+ /**
164
+ * Compute geometric distance between two nodes
165
+ */
166
+ geometricDistance(node1: number, node2: number): number;
167
+ /**
168
+ * Add an undirected edge
169
+ */
170
+ addUndirectedEdge(a: number, b: number, weight: number): void;
171
+ /**
172
+ * Find shortest path with distance between two nodes
173
+ * Returns an object with path and distance, or null if no path exists
174
+ */
175
+ shortestPathWithDistance(source: number, target: number): any;
176
+ /**
177
+ * Compute geometric centrality for all nodes
178
+ */
179
+ computeGeometricCentrality(): Float64Array;
180
+ /**
181
+ * Create a new geometric network
182
+ */
183
+ constructor();
184
+ /**
185
+ * Add an edge between two nodes
186
+ */
187
+ addEdge(source: number, target: number, weight: number): void;
188
+ /**
189
+ * Add a node at the given position
190
+ */
191
+ addNode(x: number, y: number, z: number): number;
192
+ /**
193
+ * Get number of edges
194
+ */
195
+ numEdges(): number;
196
+ /**
197
+ * Get number of nodes
198
+ */
199
+ numNodes(): number;
200
+ }
48
201
  /**
49
202
  * WASM wrapper for Multivector with TypedArray support
50
203
  */
@@ -136,6 +289,81 @@ export class WasmMultivector {
136
289
  */
137
290
  normalize(): WasmMultivector;
138
291
  }
292
+ /**
293
+ * Physical constants
294
+ */
295
+ export class WasmRelativisticConstants {
296
+ private constructor();
297
+ free(): void;
298
+ [Symbol.dispose](): void;
299
+ /**
300
+ * Earth mass (kg)
301
+ */
302
+ static readonly earth_mass: number;
303
+ /**
304
+ * Solar mass (kg)
305
+ */
306
+ static readonly solar_mass: number;
307
+ /**
308
+ * Speed of light in vacuum (m/s)
309
+ */
310
+ static readonly speed_of_light: number;
311
+ /**
312
+ * Gravitational constant (m³/kg·s²)
313
+ */
314
+ static readonly gravitational_constant: number;
315
+ }
316
+ /**
317
+ * WASM wrapper for relativistic particles
318
+ */
319
+ export class WasmRelativisticParticle {
320
+ free(): void;
321
+ [Symbol.dispose](): void;
322
+ /**
323
+ * Get 3D position components
324
+ */
325
+ position_3d(): Array<any>;
326
+ /**
327
+ * Get position as spacetime vector
328
+ */
329
+ position_4d(): WasmSpacetimeVector;
330
+ /**
331
+ * Create particle with specified energy
332
+ */
333
+ 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;
334
+ /**
335
+ * Get total energy
336
+ */
337
+ total_energy(): number;
338
+ /**
339
+ * Get four-velocity
340
+ */
341
+ four_velocity(): WasmFourVelocity;
342
+ /**
343
+ * Get kinetic energy
344
+ */
345
+ kinetic_energy(): number;
346
+ /**
347
+ * Get momentum magnitude
348
+ */
349
+ momentum_magnitude(): number;
350
+ /**
351
+ * Create a new relativistic particle
352
+ */
353
+ constructor(x: number, y: number, z: number, vx: number, vy: number, vz: number, spin: number, mass: number, charge: number);
354
+ /**
355
+ * Get rest mass
356
+ */
357
+ mass(): number;
358
+ /**
359
+ * Get electric charge
360
+ */
361
+ charge(): number;
362
+ /**
363
+ * Get string representation
364
+ */
365
+ to_string(): string;
366
+ }
139
367
  /**
140
368
  * Rotor operations for WASM
141
369
  */
@@ -160,20 +388,169 @@ export class WasmRotor {
160
388
  */
161
389
  inverse(): WasmRotor;
162
390
  }
391
+ /**
392
+ * WASM wrapper for Schwarzschild metric
393
+ */
394
+ export class WasmSchwarzschildMetric {
395
+ private constructor();
396
+ free(): void;
397
+ [Symbol.dispose](): void;
398
+ /**
399
+ * Check for singularity at given position
400
+ */
401
+ has_singularity(position: WasmSpacetimeVector): boolean;
402
+ /**
403
+ * Compute effective potential for circular orbits
404
+ */
405
+ effective_potential(r: number, angular_momentum: number): number;
406
+ /**
407
+ * Get Schwarzschild radius
408
+ */
409
+ schwarzschild_radius(): number;
410
+ /**
411
+ * Create Schwarzschild metric for the Sun
412
+ */
413
+ static sun(): WasmSchwarzschildMetric;
414
+ /**
415
+ * Get central mass
416
+ */
417
+ mass(): number;
418
+ /**
419
+ * Create Schwarzschild metric for Earth
420
+ */
421
+ static earth(): WasmSchwarzschildMetric;
422
+ /**
423
+ * Create Schwarzschild metric for custom mass
424
+ */
425
+ static from_mass(mass: number): WasmSchwarzschildMetric;
426
+ }
427
+ /**
428
+ * WASM wrapper for spacetime vectors
429
+ */
430
+ export class WasmSpacetimeVector {
431
+ free(): void;
432
+ [Symbol.dispose](): void;
433
+ /**
434
+ * Check if vector is timelike (massive particle)
435
+ */
436
+ is_timelike(): boolean;
437
+ /**
438
+ * Check if vector is spacelike
439
+ */
440
+ is_spacelike(): boolean;
441
+ /**
442
+ * Compute Minkowski norm squared
443
+ */
444
+ norm_squared(): number;
445
+ /**
446
+ * Compute Minkowski inner product with another spacetime vector
447
+ */
448
+ minkowski_dot(other: WasmSpacetimeVector): number;
449
+ /**
450
+ * Create a new spacetime vector with components (ct, x, y, z)
451
+ */
452
+ constructor(t: number, x: number, y: number, z: number);
453
+ /**
454
+ * Check if vector is null (lightlike)
455
+ */
456
+ is_null(): boolean;
457
+ /**
458
+ * Create a timelike vector
459
+ */
460
+ static timelike(t: number): WasmSpacetimeVector;
461
+ /**
462
+ * Create a spacelike vector
463
+ */
464
+ static spacelike(x: number, y: number, z: number): WasmSpacetimeVector;
465
+ /**
466
+ * Get string representation
467
+ */
468
+ to_string(): string;
469
+ /**
470
+ * Get temporal component
471
+ */
472
+ readonly t: number;
473
+ /**
474
+ * Get x component
475
+ */
476
+ readonly x: number;
477
+ /**
478
+ * Get y component
479
+ */
480
+ readonly y: number;
481
+ /**
482
+ * Get z component
483
+ */
484
+ readonly z: number;
485
+ }
486
+ /**
487
+ * Trajectory point for particle propagation
488
+ */
489
+ export class WasmTrajectoryPoint {
490
+ private constructor();
491
+ free(): void;
492
+ [Symbol.dispose](): void;
493
+ /**
494
+ * Get position
495
+ */
496
+ readonly position: WasmSpacetimeVector;
497
+ /**
498
+ * Time coordinate
499
+ */
500
+ time: number;
501
+ }
163
502
 
164
503
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
165
504
 
166
505
  export interface InitOutput {
167
506
  readonly memory: WebAssembly.Memory;
168
507
  readonly __wbg_batchoperations_free: (a: number, b: number) => void;
508
+ readonly __wbg_get_wasmtrajectorypoint_time: (a: number) => number;
509
+ readonly __wbg_set_wasmtrajectorypoint_time: (a: number, b: number) => void;
510
+ readonly __wbg_wasmfourvelocity_free: (a: number, b: number) => void;
511
+ readonly __wbg_wasmgeodesicintegrator_free: (a: number, b: number) => void;
512
+ readonly __wbg_wasmgeometricnetwork_free: (a: number, b: number) => void;
169
513
  readonly __wbg_wasmmultivector_free: (a: number, b: number) => void;
514
+ readonly __wbg_wasmrelativisticparticle_free: (a: number, b: number) => void;
515
+ readonly __wbg_wasmschwarzschildmetric_free: (a: number, b: number) => void;
516
+ readonly __wbg_wasmtrajectorypoint_free: (a: number, b: number) => void;
170
517
  readonly batchoperations_batchAdd: (a: number, b: number, c: number, d: number) => [number, number, number, number];
171
518
  readonly batchoperations_batchGeometricProduct: (a: number, b: number, c: number, d: number) => [number, number, number, number];
519
+ readonly gamma_to_velocity: (a: number) => [number, number, number];
172
520
  readonly init: () => void;
521
+ readonly light_deflection_angle: (a: number, b: number) => number;
522
+ readonly networkbatchoperations_computeAllPairwiseDistances: (a: number, b: number, c: number) => [number, number, number, number];
523
+ readonly networkbatchoperations_geometricKMeansClustering: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
173
524
  readonly performanceoperations_batchNormalize: (a: number, b: number, c: number) => [number, number];
174
525
  readonly performanceoperations_fastGeometricProduct: (a: number, b: number, c: number, d: number) => [number, number];
175
526
  readonly performanceoperations_vectorCrossProduct: (a: number, b: number, c: number, d: number) => [number, number];
176
527
  readonly performanceoperations_vectorDotProduct: (a: number, b: number, c: number, d: number) => number;
528
+ readonly validate_relativistic_module: () => number;
529
+ readonly velocity_to_gamma: (a: number) => [number, number, number];
530
+ readonly wasmfourvelocity_as_spacetime_vector: (a: number) => number;
531
+ readonly wasmfourvelocity_from_velocity: (a: number, b: number, c: number) => [number, number, number];
532
+ readonly wasmfourvelocity_gamma: (a: number) => number;
533
+ readonly wasmfourvelocity_is_normalized: (a: number) => number;
534
+ readonly wasmfourvelocity_rapidity: (a: number) => number;
535
+ readonly wasmfourvelocity_spatial_velocity_magnitude: (a: number) => number;
536
+ readonly wasmfourvelocity_to_string: (a: number) => [number, number];
537
+ readonly wasmgeodesicintegrator_propagate_particle: (a: number, b: number, c: number, d: number) => [number, number, number];
538
+ readonly wasmgeodesicintegrator_with_schwarzschild: (a: number) => number;
539
+ readonly wasmgeometricnetwork_addEdge: (a: number, b: number, c: number, d: number) => [number, number];
540
+ readonly wasmgeometricnetwork_addLabeledNode: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
541
+ readonly wasmgeometricnetwork_addNode: (a: number, b: number, c: number, d: number) => number;
542
+ readonly wasmgeometricnetwork_addUndirectedEdge: (a: number, b: number, c: number, d: number) => [number, number];
543
+ readonly wasmgeometricnetwork_computeGeometricCentrality: (a: number) => [number, number, number, number];
544
+ readonly wasmgeometricnetwork_findCommunities: (a: number, b: number) => [number, number, number, number];
545
+ readonly wasmgeometricnetwork_geometricDistance: (a: number, b: number, c: number) => [number, number, number];
546
+ readonly wasmgeometricnetwork_getDegree: (a: number, b: number) => number;
547
+ readonly wasmgeometricnetwork_getNeighbors: (a: number, b: number) => [number, number];
548
+ readonly wasmgeometricnetwork_getNodePosition: (a: number, b: number) => [number, number];
549
+ readonly wasmgeometricnetwork_new: () => number;
550
+ readonly wasmgeometricnetwork_numEdges: (a: number) => number;
551
+ readonly wasmgeometricnetwork_numNodes: (a: number) => number;
552
+ readonly wasmgeometricnetwork_shortestPath: (a: number, b: number, c: number) => [number, number, number, number];
553
+ readonly wasmgeometricnetwork_shortestPathWithDistance: (a: number, b: number, c: number) => [number, number, number];
177
554
  readonly wasmmultivector_add: (a: number, b: number) => number;
178
555
  readonly wasmmultivector_basisVector: (a: number) => [number, number, number];
179
556
  readonly wasmmultivector_exp: (a: number) => number;
@@ -194,15 +571,57 @@ export interface InitOutput {
194
571
  readonly wasmmultivector_scale: (a: number, b: number) => number;
195
572
  readonly wasmmultivector_setCoefficient: (a: number, b: number, c: number) => void;
196
573
  readonly wasmmultivector_sub: (a: number, b: number) => number;
574
+ readonly wasmrelativisticconstants_earth_mass: () => number;
575
+ readonly wasmrelativisticconstants_gravitational_constant: () => number;
576
+ readonly wasmrelativisticconstants_solar_mass: () => number;
577
+ readonly wasmrelativisticconstants_speed_of_light: () => number;
578
+ readonly wasmrelativisticparticle_charge: (a: number) => number;
579
+ readonly wasmrelativisticparticle_four_velocity: (a: number) => number;
580
+ readonly wasmrelativisticparticle_kinetic_energy: (a: number) => number;
581
+ readonly wasmrelativisticparticle_mass: (a: number) => number;
582
+ readonly wasmrelativisticparticle_momentum_magnitude: (a: number) => number;
583
+ readonly wasmrelativisticparticle_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
584
+ readonly wasmrelativisticparticle_position_3d: (a: number) => any;
585
+ readonly wasmrelativisticparticle_position_4d: (a: number) => number;
586
+ readonly wasmrelativisticparticle_to_string: (a: number) => [number, number];
587
+ readonly wasmrelativisticparticle_total_energy: (a: number) => number;
588
+ 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
589
  readonly wasmrotor_apply: (a: number, b: number) => number;
198
590
  readonly wasmrotor_compose: (a: number, b: number) => number;
199
591
  readonly wasmrotor_fromBivector: (a: number, b: number) => number;
592
+ readonly wasmschwarzschildmetric_earth: () => number;
593
+ readonly wasmschwarzschildmetric_effective_potential: (a: number, b: number, c: number) => number;
594
+ readonly wasmschwarzschildmetric_from_mass: (a: number) => number;
595
+ readonly wasmschwarzschildmetric_has_singularity: (a: number, b: number) => number;
596
+ readonly wasmschwarzschildmetric_mass: (a: number) => number;
597
+ readonly wasmschwarzschildmetric_schwarzschild_radius: (a: number) => number;
598
+ readonly wasmschwarzschildmetric_sun: () => number;
599
+ readonly wasmspacetimevector_is_null: (a: number) => number;
600
+ readonly wasmspacetimevector_is_spacelike: (a: number) => number;
601
+ readonly wasmspacetimevector_is_timelike: (a: number) => number;
602
+ readonly wasmspacetimevector_minkowski_dot: (a: number, b: number) => number;
603
+ readonly wasmspacetimevector_new: (a: number, b: number, c: number, d: number) => number;
604
+ readonly wasmspacetimevector_norm_squared: (a: number) => number;
605
+ readonly wasmspacetimevector_spacelike: (a: number, b: number, c: number) => number;
606
+ readonly wasmspacetimevector_timelike: (a: number) => number;
607
+ readonly wasmspacetimevector_to_string: (a: number) => [number, number];
608
+ readonly wasmspacetimevector_x: (a: number) => number;
609
+ readonly wasmspacetimevector_y: (a: number) => number;
610
+ readonly wasmspacetimevector_z: (a: number) => number;
200
611
  readonly wasmmultivector_norm: (a: number) => number;
612
+ readonly wasmspacetimevector_t: (a: number) => number;
613
+ readonly wasmtrajectorypoint_position: (a: number) => number;
614
+ readonly __wbg_networkbatchoperations_free: (a: number, b: number) => void;
201
615
  readonly __wbg_performanceoperations_free: (a: number, b: number) => void;
616
+ readonly __wbg_wasmrelativisticconstants_free: (a: number, b: number) => void;
617
+ readonly __wbg_wasmspacetimevector_free: (a: number, b: number) => void;
202
618
  readonly wasmrotor_inverse: (a: number) => number;
203
619
  readonly __wbg_wasmrotor_free: (a: number, b: number) => void;
204
- readonly __wbindgen_export_0: WebAssembly.Table;
620
+ readonly __wbindgen_exn_store: (a: number) => void;
621
+ readonly __externref_table_alloc: () => number;
622
+ readonly __wbindgen_export_2: WebAssembly.Table;
205
623
  readonly __wbindgen_malloc: (a: number, b: number) => number;
624
+ readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
206
625
  readonly __externref_table_dealloc: (a: number) => void;
207
626
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
208
627
  readonly __wbindgen_start: () => void;