algomate library
AlgoMate algorithm strategies and heuristic selection APIs.
AlgoSelectorFacade selects applicable strategies from SelectorHint and
strategy metadata. Concrete strategies may also be executed directly.
APIs with historical Parallel* names currently execute synchronously.
Conditional exports preserve their platform-specific 0.3.0 contracts.
Classes
- AhoCorasickAlgorithm
- AhoCorasickInput
- AhoCorasickResult
- AlgoMateFailure
- Base class for all AlgoMate failures.
- AlgoMetadata
- Immutable metadata describing an algorithm's characteristics and requirements.
- AlgoSelectorFacade
- Main facade for the AlgoMate algorithm selection system.
-
BellmanFordAlgorithmStrategy<
T> - Bellman-Ford shortest path algorithm strategy
-
BellmanFordInput<
T> - Input for Bellman-Ford algorithm
-
BellmanFordResult<
T> - Result of Bellman-Ford algorithm
- BenchmarkFailure
- Failure during benchmarking operations.
-
BfsInput<
T> - Input for BFS algorithm
-
BfsResult<
T> - Result of BFS traversal
- BinaryInsertionSortStrategy
- Binary insertion sort that uses binary search to find insertion point.
- BinarySearchInsertionStrategy
- Generic binary search that finds the insertion point for a target.
- BinarySearchStrategy
- Binary search strategy for finding elements in sorted lists.
-
BinarySearchTree<
T extends Comparable> - Custom data structure: Binary Search Tree
-
BinarySearchTreeSearch<
T extends Comparable> - Strategy for searching in Binary Search Tree
-
BinarySearchTreeSort<
T extends Comparable> - Strategy for sorting using Binary Search Tree
- BlockMultiplyTask
- Task for block matrix multiplication
- BlockResult
- Result of block matrix multiplication
-
BreadthFirstSearchStrategy<
T> - Breadth-First Search (BFS) traversal strategy
-
BSTNode<
T extends Comparable> - Node for Binary Search Tree
- BufferedLogger
- Buffered logger that collects messages for testing or delayed output.
- CatalogStats
- Statistics about the strategy catalog.
-
CircularBuffer<
T> - Custom data structure: Circular Buffer (Ring Buffer)
-
CircularBufferSearch<
T> - Strategy for searching in Circular Buffer
- CoinChangeDP
- Coin Change Problem using Dynamic Programming
- CoinChangeInput
- Input for Coin Change problem
- CoinChangeResult
- Result for Coin Change problem
- ComplexityRanker
- Fast, allocation-free ranking service for time complexities.
- ConfigurableLinearSearchStrategy
- Generic linear search strategy that can be configured with different targets.
-
ConfigurableStrategy<
I, O, TConfig> - Base class for strategies that can be configured with parameters.
- ConsoleLogger
- Console logger implementation for development and debugging.
- ConsoleLoggerFactory
- Console logger factory for creating loggers with consistent configuration.
- DartIsolateExecutor
- Dart isolate executor implementation for CPU-intensive tasks.
-
DepthFirstSearchStrategy<
T> - Depth-First Search (DFS) traversal strategy
-
DfsInput<
T> - Input for DFS algorithm
-
DfsResult<
T> - Result of DFS traversal
-
DijkstraAlgorithmStrategy<
T> - Dijkstra's shortest path algorithm strategy
-
DijkstraInput<
T> - Input for Dijkstra's algorithm
-
Edge<
T> - Represents an edge in the graph
- EditDistanceDP
- Edit Distance (Levenshtein Distance) using Dynamic Programming
- EditDistanceInput
- Input for Edit Distance
- EditDistanceResult
- Result for Edit Distance
- ErrorMessage
- Message containing execution error.
-
ExecuteMessage<
T> - Message to execute a function in an isolate.
- ExecutionFailure
- Failure during strategy execution.
-
Failure<
T, F> -
Represents a failed result containing a failure of type
F. - FibonacciBottomUpDP
- Fibonacci using Bottom-Up DP (Tabulation)
- FibonacciInput
- Input for Fibonacci
- FibonacciOptimizedDP
- Space-Optimized Fibonacci using Bottom-Up DP
- FibonacciResult
- Result for Fibonacci
- FibonacciTopDownDP
- Fibonacci using Top-Down DP (Memoization)
-
FloydWarshallAlgorithmStrategy<
T> - Floyd-Warshall all-pairs shortest path algorithm strategy
-
FloydWarshallInput<
T> - Input for Floyd-Warshall algorithm
-
FloydWarshallResult<
T> - Result of Floyd-Warshall algorithm
-
GenericBinarySearch<
T extends Comparable> - Generic Binary Search for any Comparable type.
-
GenericBinarySearchInsertion<
T extends Comparable> - Generic Search that returns the insertion point for binary search.
-
GenericHeapSort<
T extends Comparable> - Generic Heap Sort for any Comparable type.
-
GenericInsertionSort<
T extends Comparable> - Generic Insertion Sort for any Comparable type.
-
GenericLinearSearch<
T> - Generic Linear Search for any type with custom equality check.
-
GenericLinearSearchAll<
T> - Generic search that finds all occurrences of a target.
-
GenericMergeSort<
T extends Comparable> - Generic Merge Sort that works with any Comparable type.
-
GenericPredicateSearch<
T> - Generic search with predicate function for complex filtering.
-
GenericQuickSort<
T extends Comparable> - Generic Quick Sort for any Comparable type with hybrid optimization.
-
Graph<
T> - Graph representation using adjacency list
-
GraphEdge<
T> - Represents a graph edge with source and destination
- HarnessBenchmarkRunner
- Benchmark runner implementation using Dart's built-in benchmark capabilities.
- HeapSort
- HeapSort implementation using binary max-heap.
- HybridMergeSortStrategy
- Hybrid merge sort that switches to insertion sort for small subarrays.
- InapplicableInputFailure
- Failure when input data doesn't meet strategy requirements.
- InMemoryStrategyCatalog
- In-memory implementation of StrategyCatalog optimized for fast lookup.
- InPlaceInsertionSortStrategy
- In-place insertion sort strategy that modifies the input list.
- InsertionSortStrategy
- Insertion sort strategy optimized for small datasets.
- IsolateConfig
- Configuration for isolate execution.
- IsolateExecutor
- Port for executing functions in isolates to avoid UI blocking.
- IsolateFailure
- Failure during async execution in isolate.
- IsolateMessage
- Base class for isolate messages.
- IterativeHeapSort
- Iterative HeapSort implementation to avoid recursion overhead.
- IterativeMergeSortStrategy
- Bottom-up merge sort that avoids recursion for better performance.
- KMPInput
- KMPResult
- KnapsackDP
- 0/1 Knapsack Problem using Dynamic Programming
- KnapsackInput
- Input for Knapsack problem
- KnapsackResult
- Result for Knapsack problem
- KnuthMorrisPrattAlgorithm
-
KosarajuAlgorithmStrategy<
T> - Kosaraju's algorithm for strongly connected components
-
KruskalAlgorithmStrategy<
T> - Kruskal's minimum spanning tree algorithm strategy
- LCSInput
- Input for Longest Common Subsequence
- LCSResult
- Result for Longest Common Subsequence
- LinearSearchStrategy
- Linear search strategy for finding elements in unsorted lists.
- LinearSearchWithStatsStrategy
- Linear search strategy with execution statistics.
- LISInput
- Input for Longest Increasing Subsequence
- LISResult
- Result for Longest Increasing Subsequence
- LogEntry
- A single log entry in the buffered logger.
- Logger
- Logger port for AlgoMate operations.
- LoggerFactory
- Factory for creating logger instances
- LongestCommonSubsequenceDP
- Longest Common Subsequence using Dynamic Programming
- LongestIncreasingSubsequenceDP
- Longest Increasing Subsequence using Dynamic Programming
- LongestPalindromicSubstringAlgorithm
- LongestPalindromicSubstringInput
- LongestPalindromicSubstringResult
- ManacherAlgorithm
- ManacherInput
- ManacherResult
- Matrix
- Matrix class for mathematical operations
- MatrixChainInput
- Input for Matrix Chain Multiplication
- MatrixChainMultiplicationDP
- Matrix Chain Multiplication using Dynamic Programming
- MatrixChainResult
- Result for Matrix Chain Multiplication
- MemoryLimitFailure
- Failure in memory management operations.
- MergeSortStrategy
- Merge sort strategy for stable, guaranteed O(n log n) sorting.
-
MinimumSpanningTreeResult<
T> - Result of minimum spanning tree algorithms
- MockBenchmarkRunner
- Mock benchmark runner for testing scenarios.
- MockIsolateExecutor
- Mock isolate executor for testing purposes.
-
MstInput<
T> - Input for minimum spanning tree algorithms
- NoStrategyFailure
- Failure when no suitable strategy is found for the given criteria.
- OptimizedQuickSort
- Optimized QuickSort with median-of-three pivot selection.
- ParallelBFS
- Synchronous native breadth-first search retained under its legacy name.
- ParallelBinarySearch
- Synchronous partitioned binary search retained under its legacy name.
- ParallelConnectedComponents
- Synchronous native connected-components search under its legacy name.
- ParallelDFS
- Synchronous native depth-first search retained under its legacy name.
- ParallelMatrixMultiplication
- Synchronous blocked matrix multiplication retained under its legacy name.
- ParallelMergeSort
- Synchronous chunked merge sort retained under its legacy public name.
- ParallelQuickSort
- Synchronous quick sort retained under its legacy public name.
- ParallelStrassenMultiplication
- Synchronous Strassen multiplication retained under its legacy public name.
-
PrimAlgorithmStrategy<
T> - Prim's minimum spanning tree algorithm strategy
-
PriorityQueue<
T extends Comparable> - Custom data structure: Priority Queue (Min-Heap implementation)
-
PriorityQueueSearch<
T extends Comparable> - Strategy for searching in Priority Queue
-
PriorityQueueSort<
T extends Comparable> - Strategy for sorting using Priority Queue (Heap Sort variation)
- QuickSort
- QuickSort implementation using Lomuto partition scheme.
- RabinKarpAlgorithm
- RabinKarpInput
- RabinKarpResult
- ResourceLimitFailure
- Failure when resource limits are exceeded.
-
Result<
T, F> - Result type for handling success and failure cases without exceptions. Provides a type-safe way to handle operations that may fail.
-
ResultMessage<
R> - Message containing execution result.
- SafeBinarySearchStrategy
- Binary search with bounds checking and debug assertions.
-
SccInput<
T> - Input for strongly connected components algorithms
- SelectorBuilder
- Builder for configuring and creating AlgoSelector instances.
- SelectorBuilderResult
- Result of the builder containing all configured components.
- SelectorHint
- Immutable hints to guide algorithm selection and optimization. Provides performance hints without making assumptions about data correctness.
- SelectorPolicy
- Pure function service for ranking strategy candidates based on hints and heuristics.
-
ShortestPathResult<
T> - Result of shortest path algorithms
- SilentLogger
- Silent logger that discards all messages (for production).
- SimpleBenchmarkRunner
- Simple benchmark runner for basic performance testing.
-
Strategy<
I, O> - Abstract base class for all algorithm strategies.
- StrategyCatalog
- Repository port for storing and retrieving algorithm strategies.
- StrategyRecommendation
- A recommendation describing which strategy would be selected and why, without executing it.
- StrategyRegistrationFailure
- Failure in strategy registration or configuration.
- StrategySignature
- Describes the domain and characteristics of a strategy for catalog lookup. Used to find candidate strategies that match input/output types and categories.
- StringCompressionAlgorithm
- StringCompressionInput
- StringCompressionResult
-
StronglyConnectedComponentsResult<
T> - Result of strongly connected components
- SubsetSumDP
- Subset Sum Problem using Dynamic Programming
- SubsetSumInput
- Input for Subset Sum problem
- SubsetSumResult
- Result for Subset Sum problem
-
Success<
T, F> -
Represents a successful result containing a value of type
T. - SuffixArrayAlgorithm
- SuffixArrayInput
- SuffixArrayResult
-
TarjanAlgorithmStrategy<
T> - Tarjan's algorithm for strongly connected components
- TimeoutFailure
- Failure when a timeout occurs.
-
TopologicalSortInput<
T> - Input for topological sort
-
TopologicalSortResult<
T> - Result of topological sort
-
TopologicalSortStrategy<
T> - Topological sort algorithm strategy
- TrieAlgorithm
- TrieInput
- TrieNode
- TrieResult
-
UnionFind<
T> - Union-Find data structure for Kruskal's algorithm
- UnionFindResult
- Result of a native partial Union-Find computation.
- ZAlgorithm
- ZAlgorithmInput
- ZAlgorithmResult
Enums
- CompressionType
- IsolateMessageType
- Message types for isolate communication.
- LogLevel
- Log levels for controlling output verbosity.
- TimeComplexity
- Represents the time complexity of an algorithm using Big O notation. Ordered from best (O(1)) to worst (O(2^n)) for ranking purposes.
Mixins
-
ExecutionStats<
I, O> - Mixin for strategies that can provide execution statistics.
Exceptions / Errors
- IsolateExecutionException
- Exception thrown when isolate execution fails.
- IsolateTimeoutException
- Exception thrown when isolate execution times out.