A suffix array is a data type that can be used for several things. Its main use for me is to efficiently search substrings in larger strings. This can be done in linear time.
Memory usage compared to suffix trees is quite small for the same data sets.
The implementation is based on template-based C++, to give maximum flexibility in the data on which the suffix array is built.
Implementation of the package is based on the information in Replacing suffix trees with enhanced suffix arrays by Abouelhoda, Kurtz and Ohlebusch, 2003.
It implements an enhanced suffix array with LCP array, and the implicit suffix tree structure.
It does not implement the BWT table, though it would be fairly simple to add the functionality.
The implementation also contains a program that uses the internal structure to find highly compressing patterns.
For questions or additional information, please contact me.
If you download and use this package I would like to hear from you.
I will not use your email address for anything else than to keep track of who uses my software.
If you request it in your email I will let you know when new versions come available.
Email me at: j.h.stehouwer(-AT_)uvt.nl.
The software is licenced under the GPL version 3.