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 Type
    Method
    Description
    default String
    Returns a human-readable description of the provider.
    default String
    Returns the unique category of the algorithm.
    default Map<String,String>
    Returns metadata about the provider's performance and capabilities.
     
    default int
    Returns the execution priority (higher is better).
    default boolean
    Checks if the provider is available in the current environment.
    default double
    Scores this provider for a specific operation context.
    default void
    Called when the provider is no longer needed (e.g., application shutdown).
  • Method Details

    • getName

      String getName()
    • description

      default String 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

      default String getAlgorithmType()
      Returns the unique category of the algorithm.
    • score

      default double score(OperationContext context)
      Scores this provider for a specific operation context.

      Higher scores indicate better suitability. Used by ProviderSelector for 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

      default Map<String,String> getMetadata()
      Returns metadata about the provider's performance and capabilities. This can be used for advanced matching in the ProviderSelector.
      Returns:
      a map of metadata keys and values