Skip to content
C++ source code for Lyndon Array algorithms: IDLA, BSLA, and TRLA
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Computing Lyndon Arrays

As part of of my Ph.D. research I worked on developing two algorithms (BSLA and TRLA) to compute Lyndon arrays. Herein, the C++ source code developed for the following algorithms: IDLA, BSLA, and TRLA. This code was used to take measurements and for empirical analysis. Details on these algorithms can be found on my personal website as they become available (and are published).


This algorithm, an iterative approach, is based on Duval’s work on Lyndon factorization. See lynarr.hpp.


This algorithm is based on the ideas of Baier’s Suffix Sort (Phase I); this implementation necessarily differs. See bsla.cpp.


This algorithm is based on Farach's approach on his linear algorithm for suffix tree construction. The first idea of this algorithm was proposed by Paracha, but, has since been improved. See trla.cpp and Tau.hpp.

Supervisors and Research Laboratory

Professor Frantisek (Franya) Franek, Ph.D., RNDr., L.E.L.
Professor Antoine Deza, Ph.D., P.Eng., Field Institute Fellow
The Advanced Optimization Laboratory (AdvOL), McMaster University


The work, herein, is Copyright 2016--2019.
No rights are given to reproduce or modify this work.
If you are seeking rights to use some of the content within, please contact me via email (send to: liutm [at]

Michael Liut, M.Eng., B.A.Sc.
Department of Computing and Software
McMaster University
Hamilton, Ontario, Canada

You can’t perform that action at this time.