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

Provides useful extension methods for collections, mostly IEnumerable<T>.

Combinatorial

Provides combinatorial algorithms for generating tuples, combinations, permutations, and partitions.

ComparerExtensions

Provides extension methods for IComparer<T>.

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 int.

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

Provides a factory method for creating step response curves.

StepResponse<T>

A response curve that maps inputs to discrete output values using a step (non-interpolating) approach.

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

Indicates on which side of the sample boundary the step value is taken.