Table of Contents

Namespace Gamelogic.Extensions.Algorithms

Classes

BufferExtensions

Provides extension methods for buffers.

Capacity2Buffer<T>

Represents a buffer with a fixed capacity of two items.

CollectionExtensions

This class provides useful extension methods for collections, mostly IEnumerable.

Combinatorial

Combinatorial algorithms, including generating tuples, combinations, permutations and partitions.

Except for PowerSet, all methods are implemented after Knuth, described in The Art of Computer Programming Volume 4.

ComparerExtensions
Differentiator

Represents a differentiator that calculates the difference between two consecutive float values.

DitherResponse

Dithers responses by adding noise before passing it to a step response. The noise is provided by an arbitrary generator, and errors are diffused over several calls.

Generator

Contains static methods for creating generators, and extension methods to create generators from existing ones.

Generator.AbstractGenerator<TResult>

This class provides a convenient base class to base an implementation of IGenerator on.

IndexPriorityQueue<TElement, TPriority>

Represents a generic index-based priority queue where elements are ordered based on their priority determined by an IComparer<T>.

Integrator

Represents an integrator that calculates the sum of float values over a specified window.

LSystem<TSymbol>

A lightweight implementation of an L-system.

PidController

Represents a Proportional-Integral-Derivative (PID) controller that calculates control values based on the difference between a desired set point and a measured process variable.

RandomAccessPriorityQueue<TElement, TPriority>

Represents a generic index-based priority queue where elements are ordered based on their priority determined by an IComparer<T>.

RandomAccessQueue<T>

Represents a queue that allows random access to its elements.

ResponseCurve

Contains extension methods for Response curves.

ResponseCurveBase<T>

A class that can be used as the base of the implementation of a response curve.

ResponseCurveColor

A response curve with outputs of Color.

ResponseCurveFloat

A response curve with outputs of float.

ResponseCurveFloatSequence

A response curve where the outputs are sequences of floats.

ResponseCurveInt

A response curve with outputs of float.

ResponseCurveVector2

A response curve with outputs of Vector2.

ResponseCurveVector3

A response curve with outputs of Vector3.

ResponseCurveVector4

A response curve with outputs of Vector4.

RingBuffer<T>

Represents buffer with a fixed capacity.

StepResponse

A response curve with a step response.

StepResponse<T>

A response curve with a step response.

Interfaces

IBuffer<T>

Represents a generic buffer interface.

IGenerator

A generator can produce an infinite sequence of objects.

IGenerator<TResult>

All generic generators implement this interface.

IReadOnlyBuffer<T>

Represents a generic buffer interface that only supports reading capabilities.

IResizeableBuffer<T>

A buffer that can change its capacity.

IResponseCurve<T>

This interface represents a piecewise linear curve, with input-output pairs at the bends.

Enums

StepResponse.StepType

Used to indicate whether steps are to the left, middle or right of samples.