Grab-bag library for the MaPLe compiler. MPL extends Standard ML with support for (nested) fork-join parallelism, and has excellent multicore performance. This library contains a variety of parallel algorithms, data structures, and utilities, including:
- sequences, sets, dictionaries, matrices, concurrent collections
- sorting, searching, shuffling
- text processing (tokenization, string search)
- images (
.ppm,.gifformats) - graph processing (CSR and edge list formats)
- audio (signal processing and
.wavformat) - computational geometry (nearest neighbors, meshes, triangulation, convex hull)
- command-line arguments
- benchmarking
- and more...
To see these in action, check out the Parallel ML benchmark suite.
This library is compatible with the
smlpkg package manager.
$ smlpkg add github.com/mpllang/mpllib
$ smlpkg sync
And then add one of the following .mlb source files to your project.
Two source files:
lib/github.com/mpllang/mpllib/sources.mpl.mlblib/github.com/mpllang/mpllib/sources.mlton.mlb
The former is for use with MPL, the latter with MLton.
Primitives for parallelism and concurrency
- structure
ForkJoin - structure
Concurrency
Files and Command-line Arguments
- structure
ReadFile - structure
CommandLineArgs
Sequences
- structure
Seq - structure
ArraySequence = Seq - structure
DelayedSeq - structure
SeqBasis
Sorting and Permutations
- structure
Merge - structure
StableMerge - structure
StableSort - structure
Mergesort - structure
SampleSort - structure
CountingSort - structure
Quicksort - structure
RadixSort - structure
Shuffle
Searching
- structure
BinarySearch - structure
FindFirst
Graphs
- functor
AdjacencyGraph
Geometry
- structure
Geometry2D - structure
Geometry3D - structure
Topology2D - structure
MeshToImage - structure
NearestNeighbors
Images
Audio
- structure
NewWaveIO - structure
Signal
Text
- structure
Tokenize - functor
MkGrep
Matrices
- functor
MatCOO - structure
TreeMatrix
Augmented Maps
- functor
PAM
Collections
- structure
Hashset - structure
Hashtable - functor
ChunkedTreap - structure
ParFuncArray