laplacian_eigenmaps#

hypercoil.functional.connectopy.laplacian_eigenmaps(W: Array | ndarray, k: int = 10, normalise: bool = True) Tuple[Array | ndarray, Array | ndarray][source]#

Manifold coordinates estimated using Laplacian eigenmaps.

Warning

Sparse inputs are currently unsupported because an implementation of a sparse extremal eigenvalue solver does not yet exist in JAX. For sparse inputs, use the generalised connectopic functional instead – once we implement VJP rules for elementary operations on sparse matrices, anyway.

Dimension:
W : \((*, N, N)\)

* denotes any number of preceding dimensions, N denotes number of vertices, and E denotes number of edges.

Q : \((*, N, k)\)

k denotes the number of eigenmaps.

L : \((*, k)\)

As above.

Parameters:
Wtensor

Edge weight tensor. If edge_index is not provided, then this should be the graph adjacency (or affinity) matrix; otherwise, it should be a list of weights corresponding to the edges in edge_index.

kint (default 10)

Number of eigenmaps to compute.

normalisebool (default True)

Indicates that the Laplacian should be normalised using the degree matrix.

Returns:
Qtensor

Eigenmaps.

Ltensor

Eigenvalues corresponding to eigenmaps.