pub struct SimdSpectral;Expand description
SIMD-accelerated operations for spectral graph methods.
Provides optimized kernels for Laplacian construction, eigenvalue iteration helpers, and spectral embedding computations.
Implementations§
Source§impl SimdSpectral
impl SimdSpectral
Sourcepub fn standard_laplacian(
adjacency: &Array2<f64>,
degrees: &Array1<f64>,
) -> Result<Array2<f64>>
pub fn standard_laplacian( adjacency: &Array2<f64>, degrees: &Array1<f64>, ) -> Result<Array2<f64>>
Construct the standard graph Laplacian L = D - A using SIMD.
The Laplacian is computed row-by-row: L[i,j] = degree[i] * delta(i,j) - A[i,j].
SIMD acceleration is applied to the row-level subtraction.
§Arguments
adjacency- The adjacency matrix (n x n)degrees- The degree vector (length n)
§Returns
The standard Laplacian matrix.
Sourcepub fn normalized_laplacian(
adjacency: &Array2<f64>,
degrees: &Array1<f64>,
) -> Result<Array2<f64>>
pub fn normalized_laplacian( adjacency: &Array2<f64>, degrees: &Array1<f64>, ) -> Result<Array2<f64>>
Sourcepub fn random_walk_laplacian(
adjacency: &Array2<f64>,
degrees: &Array1<f64>,
) -> Result<Array2<f64>>
pub fn random_walk_laplacian( adjacency: &Array2<f64>, degrees: &Array1<f64>, ) -> Result<Array2<f64>>
Sourcepub fn power_iteration(
matrix: &Array2<f64>,
initial: &Array1<f64>,
max_iterations: usize,
tolerance: f64,
) -> Result<(f64, Array1<f64>, usize)>
pub fn power_iteration( matrix: &Array2<f64>, initial: &Array1<f64>, max_iterations: usize, tolerance: f64, ) -> Result<(f64, Array1<f64>, usize)>
SIMD-accelerated power iteration for finding the dominant eigenvector.
Used in spectral methods to find eigenvectors of the Laplacian.
§Arguments
matrix- Symmetric matrix (n x n)initial- Initial guess vector (length n)max_iterations- Maximum iterationstolerance- Convergence tolerance
§Returns
A tuple of (eigenvalue, eigenvector, iterations used).
Sourcepub fn gram_schmidt_orthogonalize(vectors: &mut Array2<f64>)
pub fn gram_schmidt_orthogonalize(vectors: &mut Array2<f64>)
SIMD-accelerated Gram-Schmidt orthogonalization.
Orthogonalizes a set of column vectors in-place.
§Arguments
vectors- Matrix whose columns are vectors to orthogonalize (n x k)
Sourcepub fn rayleigh_quotient(
matrix: &Array2<f64>,
vector: &ArrayView1<'_, f64>,
) -> Result<f64>
pub fn rayleigh_quotient( matrix: &Array2<f64>, vector: &ArrayView1<'_, f64>, ) -> Result<f64>
Auto Trait Implementations§
impl Freeze for SimdSpectral
impl RefUnwindSafe for SimdSpectral
impl Send for SimdSpectral
impl Sync for SimdSpectral
impl Unpin for SimdSpectral
impl UnsafeUnpin for SimdSpectral
impl UnwindSafe for SimdSpectral
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
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more