Table of Contents

Namespace AlgorithmsSW

Classes

Algorithms

Provides algorithms for various tasks, especially for operating on lists.

Applications

Provides algorithms that shows applications of the data structures algorithms in this library.

BitExtensions
Cache<TKey, TValue>

Class that caches values for keys.

CollectionExtensions

Provides extension methods for collections that do not belong to any specific collection type.

Comparable

Provides extension methods related to Comparable<T>.

Comparable<T>

Wraps an item in a class so it can implement IComparable, implemented with a IComparer<T>.

ComparerExtensions

Provides extension methods related to IComparer<T>.

DataStructures

Sensible default implementations of data structures.

Functional
Generator

Provides methods for generating random values.

GeometricAlgorithms

Provides algorithms for solving geometric problems.

MathX

Provides math-related utility methods.

MaxAggregator<TValue, TComparisonValue>

The MaxAggregator class is used to aggregate values based on a comparison value and keep track of the maximum values and their set.

Steque<T>

An implementation a linear container that allows insertion and removal at both ends.

TextReaderExtensions

Provides extension methods for the TextReader class to make it easier to read in collections from a text file.

TypeArgumentException<T>

Represents an exception that is thrown when a type argument is neither a reference type nor a nullable value type.

UnionFind

An implementation of the union-find data structure.

Structs

ExtendedComparable<TComparable>

Wraps a value in a type that can also represent infinity. This gives us the ability to work more uniformly with floats and integers.

Enums

AlgorithmImplementation

Represents the types of algorithm implementations.