# Functions
ChooseX - also known as Roulette Search.
CumulativeWeights converts a slice of weights into a slice of cumulative weights, where each index is the sum of all weights following that index in the original slice.
F64eq equates two float64s within a small epsilon.
F64eqEps equates two float64s within a provided epsilon.
RoundF64 rounds a float64 to an int.
TriangulateConvex takes a face, in the form of a slice of indices, and outputs those indicies split into triangles based on the assumption that the face is convex.
UniqueChooseX returns n indices from the input weights at a count relative to the weight of each index.
UniqueChooseXSeeded returns n indices from the input weights at a count relative to the weight of each index.
WeightedChooseOne returns a single index from the weights given at a rate relative to the magnitude of each weight.
WeightedChooseOneSeeded returns a single index from the weights given at a rate relative to the magnitude of each weight.
WeightedMapChoice converts the input map into a set where keys are indices and values are weights for WeightedChooseOne, then returns the key for WeightedChooseOne of the weights.
WeightedMapChoiceSeeded converts the input map into a set where keys are indices and values are weights for WeightedChooseOne, then returns the key for WeightedChooseOne of the weight.
# Interfaces
A Float64Generator must be able to generate a float64.