CreatingRhythms-1.8.0.7
Copyright(c) Eric Bailey 2024-2025
LicenseMIT
Maintainereric@ericb.me
Stabilitystable
PortabilityPOSIX
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Rhythm.DeBruijn

Description

Constructing de Bruijn sequences using a greedy algorithm.

References

Synopsis

Ergonomic

deBruijnSequence :: Integer -> Integer -> [Integer] Source #

Generate the largest de Bruijn sequence of a given order.

>>> concatMap show $ deBruijnSequence 2 4
"1111011001010000"
>>> concatMap show $ deBruijnSequence 4 3
"3332331330322321320312311310302301300222122021121020120011101000"

Safe

deBruijnSequence' :: forall k n. (KnownNat k, KnownNat n) => Vector (k ^ n) (Finite k) Source #

Determining symbols

data DeBruijnState (k :: Nat) (n :: Nat) Source #

Generator for a de Bruijn sequence of order n and alphabet size k.

Constructors

DeBruijnState 

Fields

initialDeBruijnState :: (KnownNat k, KnownNat n) => DeBruijnState k n Source #

Seed with \(0^n\).