Algolib -- A Scala Library of Essential Algorithms