Class DistributedLinearAlgebraProvider<E>
java.lang.Object
org.episteme.core.mathematics.linearalgebra.providers.DistributedLinearAlgebraProvider<E>
- All Implemented Interfaces:
AutoCloseable, LinearAlgebraProvider<E>, SparseLinearAlgebraProvider<E>, AlgorithmProvider, Backend
@AutoService({LinearAlgebraProvider.class,Backend.class})
public class DistributedLinearAlgebraProvider<E>
extends Object
implements SparseLinearAlgebraProvider<E>, Backend
Linear algebra provider that delegates to distributed algorithms when appropriate.
This provider automatically activates when a distributed context is detected and the problem size warrants the overhead of distribution.
- Since:
- 2.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Constructor Summary
ConstructorsConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptionSolves Ax = b using BiCGSTAB (BiConjugate Gradient Stabilized) method.Computes the Cholesky decomposition of the specified matrix.Solves Ax = b using Conjugate Gradient method.Creates and returns the backend instance (or returns self if it is the backend).determinant(Matrix<E> a) Computes the eigenvalue decomposition of the specified matrix.Computes the matrix exponential e^A.Returns a description of the backend.getId()Returns the unique identifier for this backend (e.g., "javafx", "jmol", "cuda").getName()Returns the display name for UI presentation.intPriority of this provider (higher means more preferred).Returns a human-readable status message for this backend.getType()Returns the backend type category (e.g., "plotting", "molecular", "tensor", "math").Solves Ax = b using GMRES (Generalized Minimal Residual) method.booleanChecks if the provider is available in the current environment.booleanisCompatible(Ring<?> ring) Checks if this provider is compatible with the given ring.Computes the LU decomposition of the specified matrix.Computes the QR decomposition of the specified matrix.voidshutdown()Called when the provider is no longer needed (e.g., application shutdown).solve(CholeskyResult<E> cholesky, Vector<E> b) Solves Ax = b using a previously computed Cholesky decomposition.Solves Ax = b using a previously computed LU decomposition.Solves Ax = b using a previously computed QR decomposition.solveTriangular(Matrix<E> A, Vector<E> b, boolean upper, boolean transpose, boolean conjugate, boolean unit) Solves the triangular system Ax = b.Computes the Singular Value Decomposition (SVD) of the specified matrix.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface AlgorithmProvider
description, getMetadataMethods inherited from interface Backend
getAlgorithmProviders, isExplicitlyDisabledMethods inherited from interface LinearAlgebraProvider
angle, close, configure, conjugateTranspose, cross, getEnvironmentInfo, normalize, projection, scoreMethods inherited from interface SparseLinearAlgebraProvider
conditionNumber, fromDense, getAlgorithmType, rank, toDense
-
Constructor Details
-
DistributedLinearAlgebraProvider
public DistributedLinearAlgebraProvider() -
DistributedLinearAlgebraProvider
-
-
Method Details
-
isCompatible
Description copied from interface:LinearAlgebraProviderChecks if this provider is compatible with the given ring.- Specified by:
isCompatiblein interfaceLinearAlgebraProvider<E>
-
getPriority
public int getPriority()Description copied from interface:LinearAlgebraProviderPriority of this provider (higher means more preferred). Used for automatic backend selection.- Specified by:
getPriorityin interfaceAlgorithmProvider- Specified by:
getPriorityin interfaceBackend- Specified by:
getPriorityin interfaceLinearAlgebraProvider<E>
-
getName
Description copied from interface:BackendReturns the display name for UI presentation.- Specified by:
getNamein interfaceAlgorithmProvider- Specified by:
getNamein interfaceBackend- Specified by:
getNamein interfaceLinearAlgebraProvider<E>
-
add
-
subtract
-
multiply
-
dot
-
norm
-
add
-
subtract
-
multiply
-
multiply
-
exp
Description copied from interface:LinearAlgebraProviderComputes the matrix exponential e^A.- Specified by:
expin interfaceLinearAlgebraProvider<E>
-
log
-
log10
-
sin
-
cos
-
tan
-
asin
-
acos
-
atan
-
sinh
-
cosh
-
tanh
-
asinh
-
acosh
-
atanh
-
pow
-
sqrt
-
cbrt
-
trace
-
solveTriangular
public Vector<E> solveTriangular(Matrix<E> A, Vector<E> b, boolean upper, boolean transpose, boolean conjugate, boolean unit) Description copied from interface:LinearAlgebraProviderSolves the triangular system Ax = b.- Specified by:
solveTriangularin interfaceLinearAlgebraProvider<E>- Parameters:
A- the triangular matrixb- the right-hand side vectorupper- true if A is upper triangular, false if lowertranspose- true if solving A^T x = bconjugate- true if solving A^H x = b (only if transpose is true and complex)unit- true if A is unit triangular (diagonal is all ones)
-
inverse
-
lu
Description copied from interface:LinearAlgebraProviderComputes the LU decomposition of the specified matrix.- Specified by:
luin interfaceLinearAlgebraProvider<E>
-
qr
Description copied from interface:LinearAlgebraProviderComputes the QR decomposition of the specified matrix.- Specified by:
qrin interfaceLinearAlgebraProvider<E>
-
svd
Description copied from interface:LinearAlgebraProviderComputes the Singular Value Decomposition (SVD) of the specified matrix.- Specified by:
svdin interfaceLinearAlgebraProvider<E>
-
cholesky
Description copied from interface:LinearAlgebraProviderComputes the Cholesky decomposition of the specified matrix.- Specified by:
choleskyin interfaceLinearAlgebraProvider<E>
-
eigen
Description copied from interface:LinearAlgebraProviderComputes the eigenvalue decomposition of the specified matrix.- Specified by:
eigenin interfaceLinearAlgebraProvider<E>
-
solve
-
solve
Description copied from interface:LinearAlgebraProviderSolves Ax = b using a previously computed LU decomposition.- Specified by:
solvein interfaceLinearAlgebraProvider<E>
-
solve
Description copied from interface:LinearAlgebraProviderSolves Ax = b using a previously computed QR decomposition.- Specified by:
solvein interfaceLinearAlgebraProvider<E>
-
solve
Description copied from interface:LinearAlgebraProviderSolves Ax = b using a previously computed Cholesky decomposition.- Specified by:
solvein interfaceLinearAlgebraProvider<E>
-
determinant
- Specified by:
determinantin interfaceLinearAlgebraProvider<E>
-
transpose
-
scale
-
bicgstab
-
conjugateGradient
public Vector<E> conjugateGradient(Matrix<E> a, Vector<E> b, Vector<E> x0, E tolerance, int maxIterations) Description copied from interface:SparseLinearAlgebraProviderSolves Ax = b using Conjugate Gradient method.- Specified by:
conjugateGradientin interfaceSparseLinearAlgebraProvider<E>
-
gmres
public Vector<E> gmres(Matrix<E> a, Vector<E> b, Vector<E> x0, E tolerance, int maxIterations, int restarts) Description copied from interface:SparseLinearAlgebraProviderSolves Ax = b using GMRES (Generalized Minimal Residual) method.- Specified by:
gmresin interfaceSparseLinearAlgebraProvider<E>
-
getStatusMessage
Description copied from interface:BackendReturns a human-readable status message for this backend. Useful for debugging "Unavailable" states.- Specified by:
getStatusMessagein interfaceBackend- Returns:
- status message (e.g., "Ready", "Native library missing", etc.)
-
isAvailable
public boolean isAvailable()Description copied from interface:AlgorithmProviderChecks if the provider is available in the current environment.- Specified by:
isAvailablein interfaceAlgorithmProvider- Specified by:
isAvailablein interfaceBackend
-
getType
-
getId
-
getDescription
Description copied from interface:BackendReturns a description of the backend.- Specified by:
getDescriptionin interfaceBackend
-
createBackend
Description copied from interface:BackendCreates and returns the backend instance (or returns self if it is the backend).- Specified by:
createBackendin interfaceBackend- Returns:
- The backend implementation object
-
shutdown
public void shutdown()Description copied from interface:AlgorithmProviderCalled when the provider is no longer needed (e.g., application shutdown). Use this to release local resources or close native segments.- Specified by:
shutdownin interfaceAlgorithmProvider- Specified by:
shutdownin interfaceBackend
-