pub struct GpuInfoGeometry { /* private fields */ }Expand description
Information-geometry operations with GPU-ready infrastructure.
The public 0.20 surface is a correctness-first CPU baseline after WebGPU
context creation. Amari-Chentsov batches, Fisher metrics, and Bregman/KL-style
divergences are validated and computed with amari-info-geom semantics while
shader-backed tensor/fisher/divergence pipelines remain private restoration
candidates.
This preserves public API stability without claiming unvalidated GPU kernels.
Implementations§
Source§impl GpuInfoGeometry
impl GpuInfoGeometry
Sourcepub async fn new() -> Result<Self, GpuError>
pub async fn new() -> Result<Self, GpuError>
Initialize GPU context for information geometry operations
Sourcepub async fn new_with_device_preference(
device_type: &str,
) -> Result<Self, GpuError>
pub async fn new_with_device_preference( device_type: &str, ) -> Result<Self, GpuError>
Create with specific device preference for edge computing
Sourcepub async fn amari_chentsov_tensor(
&self,
x: &Multivector<3, 0, 0>,
y: &Multivector<3, 0, 0>,
z: &Multivector<3, 0, 0>,
) -> Result<f64, GpuError>
pub async fn amari_chentsov_tensor( &self, x: &Multivector<3, 0, 0>, y: &Multivector<3, 0, 0>, z: &Multivector<3, 0, 0>, ) -> Result<f64, GpuError>
Compute single Amari-Chentsov tensor (CPU fallback for small operations)
Sourcepub async fn amari_chentsov_tensor_batch(
&self,
x_batch: &[Multivector<3, 0, 0>],
y_batch: &[Multivector<3, 0, 0>],
z_batch: &[Multivector<3, 0, 0>],
) -> Result<Vec<f64>, GpuError>
pub async fn amari_chentsov_tensor_batch( &self, x_batch: &[Multivector<3, 0, 0>], y_batch: &[Multivector<3, 0, 0>], z_batch: &[Multivector<3, 0, 0>], ) -> Result<Vec<f64>, GpuError>
Batch compute Amari-Chentsov tensors with CPU-baseline semantics.
All three batches must have equal length. The current public path uses
amari-info-geom::amari_chentsov_tensor for correctness; the shader path
remains private until hardware parity is validated.
Sourcepub async fn amari_chentsov_tensor_from_typed_arrays(
&self,
flat_data: &[f64],
batch_size: usize,
) -> Result<Vec<f64>, GpuError>
pub async fn amari_chentsov_tensor_from_typed_arrays( &self, flat_data: &[f64], batch_size: usize, ) -> Result<Vec<f64>, GpuError>
Compute tensor batch from TypedArray-style flat data.
Each item is [x0,x1,x2, y0,y1,y2, z0,z1,z2] for Cl(3,0,0) vector
components. All values must be finite.
Sourcepub async fn device_info(&self) -> Result<GpuDeviceInfo, GpuError>
pub async fn device_info(&self) -> Result<GpuDeviceInfo, GpuError>
Get device information for edge computing
Sourcepub async fn memory_usage(&self) -> Result<u64, GpuError>
pub async fn memory_usage(&self) -> Result<u64, GpuError>
Get current memory usage if the backend exposes it.
Portable WebGPU does not expose allocator usage through wgpu, so this
returns 0 rather than a fabricated placeholder value.
Sourcepub async fn fisher_information_matrix(
&self,
parameters: &[f64],
) -> Result<GpuFisherMatrix, GpuError>
pub async fn fisher_information_matrix( &self, parameters: &[f64], ) -> Result<GpuFisherMatrix, GpuError>
Compute a Fisher Information Matrix CPU baseline.
Interprets parameters as coordinates of a probability-simplex style
point and delegates to amari-info-geom::DuallyFlatManifold’s Fisher
metric implementation. Values must be finite and non-negative.
Auto Trait Implementations§
impl !RefUnwindSafe for GpuInfoGeometry
impl !UnwindSafe for GpuInfoGeometry
impl Freeze for GpuInfoGeometry
impl Send for GpuInfoGeometry
impl Sync for GpuInfoGeometry
impl Unpin for GpuInfoGeometry
impl UnsafeUnpin for GpuInfoGeometry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.