Interface AlgorithmProvider
- All Known Subinterfaces:
AudioAlgorithmProvider<T>, AudioBackend, AudioSpectrogramProvider, BayesianInferenceProvider, BooleanAlgebraProvider, CollisionProvider, DistributedBackend, DistributedComputingProvider, DnaFoldingProvider, EconomyProvider, FEMProvider, FFTProvider, GeneticAlgorithmProvider, GenomeProvider, GraphAlgorithmProvider, LatticeBoltzmannProvider, LinearAlgebraBackend<E>, LinearAlgebraProvider<E>, MandelbrotProvider, MaxwellProvider, MechanicsBackend, MLProvider, MolecularDynamicsProvider, MonteCarloProvider, NativeCollisionProvider, NavierStokesProvider, NBodyProvider, ODEProvider, ProteinFoldingProvider, QuantumAlgorithmProvider, RealProvider, ReduceProvider, SCFProvider, SimulationProvider, SparseLinearAlgebraProvider<E>, SPHFluidProvider, TensorBackend, TensorProvider, VideoAlgorithmProvider, VideoBackend, VisionAlgorithmProvider<T>, VisionBackend, WaveProvider
- All Known Implementing Classes:
AbstractNativeCPULinearAlgebraBackend, AbstractNativeFFMBLASBackend, AbstractNativeSIMDLinearAlgebraBackend, AmazonBraketBackend, CARMALinearAlgebraProvider, ColtBackend, CommonsMathBackend, CoreRealProvider, CPUCollisionProvider, CPUDenseLinearAlgebraProvider, CPUDenseTensorBackend, CPUSparseLinearAlgebraProvider, CPUSparseTensorBackend, DefaultAudioSpectrogramProvider, DenseNeuralProvider, DistributedLinearAlgebraProvider, DistributedNBodyProvider, EJMLBackend, EpistemeLinearAlgebraBackend, GenesisBackend, GRPCLinearAlgebraBackend, IBMQBackend, JavaAWTVisionBackend, JavaCVMediaBackend, JavaSoundAudioBackend, JBlasBackend, MinimAudioBackend, MPIDistributedBackend, MulticoreAudioBackend, MulticoreBayesianInferenceProvider, MulticoreFEMProvider, MulticoreFFTProvider, MulticoreFuzzyProvider, MulticoreGeneticAlgorithmProvider, MulticoreGraphAlgorithmProvider, MulticoreLatticeBoltzmannProvider, MulticoreMandelbrotProvider, MulticoreMaxwellProvider, MulticoreMLProvider, MulticoreMolecularDynamicsProvider, MulticoreMonteCarloProvider, MulticoreNavierStokesProvider, MulticoreNBodyProvider, MulticoreReduceProvider, MulticoreSCFProvider, MulticoreSPHFluidProvider, MulticoreVideoBackend, MulticoreVisionBackend, MulticoreWaveProvider, NativeArrowBackend, NativeBulletBackend, NativeCollisionBackend, NativeCPUCBindingVisionBackend, NativeCPULinearAlgebraComplexBackend, NativeCPULinearAlgebraRealBackend, NativeCPUTensorBackend, NativeCPUVisionBackend, NativeCUDADenseLinearAlgebraDoubleBackend, NativeCUDADenseLinearAlgebraFloatBackend, NativeCUDANBodyBackend, NativeCUDASparseLinearAlgebraDoubleBackend, NativeCUDASparseLinearAlgebraFloatBackend, NativeCUDATensorBackend, NativeCUDAVisionBackend, NativeFFMBLASComplexBackend, NativeFFMBLASRealBackend, NativeFFTBackend, NativeJavaCVMediaBackend, NativeJBulletBackend, NativeMiniAudioBackend, NativeMPFRDenseLinearAlgebraBackend, NativeMPFRSparseLinearAlgebraBackend, NativeND4JCUDASparseTensorBackend, NativeND4JCUDATensorBackend, NativeND4JLinearAlgebraBackend, NativeND4JTensorBackend, NativeOpenCLDenseLinearAlgebraDoubleBackend, NativeOpenCLDenseLinearAlgebraFloatBackend, NativeOpenCLFFTBackend, NativeOpenCLLatticeBoltzmannBackend, NativeOpenCLNBodyBackend, NativeOpenCLSparseLinearAlgebraDoubleBackend, NativeOpenCLSparseLinearAlgebraFloatBackend, NativeOpenCLVisionBackend, NativeQuantumBackend, NativeRealProvider, NativeSIMDComplexBackend, NativeSIMDRealBackend, NativeSimulationBackend, NativeVideoBackend, ND4JBaseTensorBackend, ODEBackend, ONNXBackend, ONNXRuntimeBackend, ParallelSimulationProvider, PythonQuantumBackend, QiskitAerBackend, QiskitBackend, Quantum4JBackend, RungeKuttaODEProvider, SparkDistributedBackend, StandardBooleanAlgebraProvider, StandardDnaFoldingProvider, StandardEconomyProvider, StandardFFTProvider, StandardGenomeProvider, StandardGraphAlgorithmProvider, StandardLinearAlgebraProvider, StandardProteinFoldingProvider, StrangeBackend, StrassenLinearAlgebraProvider, TarsosAudioBackend, VariableEliminationProvider, VLCJMediaBackend
public interface AlgorithmProvider
Base interface for high-level scientific algorithm providers.
Discovery is based on ServiceLoader and priority.
- Since:
- 1.2
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Method Summary
Modifier and TypeMethodDescriptiondefault StringReturns a human-readable description of the provider.default StringReturns the unique category of the algorithm.Returns metadata about the provider's performance and capabilities.getName()default intReturns the execution priority (higher is better).default booleanChecks if the provider is available in the current environment.default doublescore(OperationContext context) Scores this provider for a specific operation context.default voidshutdown()Called when the provider is no longer needed (e.g., application shutdown).
-
Method Details
-
getName
String getName() -
description
Returns a human-readable description of the provider. -
getPriority
default int getPriority()Returns the execution priority (higher is better). -
isAvailable
default boolean isAvailable()Checks if the provider is available in the current environment. -
getAlgorithmType
Returns the unique category of the algorithm. -
score
Scores this provider for a specific operation context.Higher scores indicate better suitability. Used by
ProviderSelectorfor context-aware selection.Default implementation returns
getPriority(), so existing providers behave identically without changes.- Parameters:
context- the operation context (data size, hints, etc.)- Returns:
- suitability score (higher = better)
-
shutdown
default void shutdown()Called when the provider is no longer needed (e.g., application shutdown). Use this to release local resources or close native segments. -
getMetadata
-