pub struct GpuContext { /* private fields */ }Expand description
GPU compute context for geometric algebra operations.
Manages WebGPU device, queue, and compute pipelines for parallel geometric algebra computation.
Implementations§
Source§impl GpuContext
impl GpuContext
Sourcepub async fn new() -> Result<Self, GpuError>
pub async fn new() -> Result<Self, GpuError>
Create a new GPU context.
This initializes WebGPU and creates all compute pipelines.
Sourcepub async fn batch_geometric_product(
&self,
a: &[GA3],
b: &[GA3],
) -> Result<Vec<GA3>, GpuError>
pub async fn batch_geometric_product( &self, a: &[GA3], b: &[GA3], ) -> Result<Vec<GA3>, GpuError>
Batch geometric product: a[i] * b[i] for all i.
Computes the geometric product of corresponding elements from two input arrays in parallel on the GPU.
Sourcepub async fn batch_addition(
&self,
a: &[GA3],
b: &[GA3],
) -> Result<Vec<GA3>, GpuError>
pub async fn batch_addition( &self, a: &[GA3], b: &[GA3], ) -> Result<Vec<GA3>, GpuError>
Batch addition: a[i] + b[i] for all i.
Sourcepub async fn batch_sandwich(
&self,
rotors: &[GA3],
vectors: &[GA3],
) -> Result<Vec<GA3>, GpuError>
pub async fn batch_sandwich( &self, rotors: &[GA3], vectors: &[GA3], ) -> Result<Vec<GA3>, GpuError>
Batch sandwich product: rotor[i] * x[i] * ~rotor[i] for all i.
The sandwich product applies a rotation to each element.
Sourcepub async fn batch_exp(&self, a: &[GA3]) -> Result<Vec<GA3>, GpuError>
pub async fn batch_exp(&self, a: &[GA3]) -> Result<Vec<GA3>, GpuError>
Batch exponential: exp(a[i]) for all i.
The exponential map converts bivectors to rotors.
Sourcepub async fn batch_rotor_slerp(
&self,
a: &[GA3],
b: &[GA3],
t: f32,
) -> Result<Vec<GA3>, GpuError>
pub async fn batch_rotor_slerp( &self, a: &[GA3], b: &[GA3], t: f32, ) -> Result<Vec<GA3>, GpuError>
Batch rotor SLERP: interpolate from a[i] to b[i] by t.
Spherical linear interpolation for smooth rotation blending.
Sourcepub fn should_use_gpu(&self, batch_size: usize) -> bool
pub fn should_use_gpu(&self, batch_size: usize) -> bool
Check if GPU dispatch is recommended for the given batch size.
Sourcepub fn device_info(&self) -> String
pub fn device_info(&self) -> String
Get the device info for debugging.