Class ProviderRegistry

java.lang.Object
org.episteme.core.technical.algorithm.ProviderRegistry

public class ProviderRegistry extends Object
Registry and selector for Algorithm Providers. Extracted from ComputeContext.
  • Constructor Details

    • ProviderRegistry

      public ProviderRegistry()
  • Method Details

    • register

      public <E> void register(String name, LinearAlgebraProvider<E> provider)
    • get

      public <E> LinearAlgebraProvider<E> get(String name)
    • selectLinearAlgebraProvider

      public <E> LinearAlgebraProvider<E> selectLinearAlgebraProvider(OperationContext ctx, Ring<E> ring)
      Gets a linear algebra provider suited for the given operation context and ring.
    • getLinearAlgebraProvider

      public <E> LinearAlgebraProvider<E> getLinearAlgebraProvider(Ring<E> ring)
    • getDenseLinearAlgebraProvider

      public <E> LinearAlgebraProvider<E> getDenseLinearAlgebraProvider(Ring<E> ring)
    • getSparseLinearAlgebraProvider

      public <E> LinearAlgebraProvider<E> getSparseLinearAlgebraProvider(Ring<E> ring)
      Gets a sparse linear algebra provider.
    • selectTensorProvider

      public TensorProvider selectTensorProvider(OperationContext ctx)
      Selects a tensor provider based on context.
    • createStorage

      public <E> MatrixStorage<E> createStorage(int rows, int cols, Ring<E> ring, double density)
      Creates optimal storage based on data and density context.
    • createVectorStorage

      public <E> VectorStorage<E> createVectorStorage(int dim, Ring<E> ring, double density)
      Creates optimal vector storage.