Template Function noLZSS::detail::nolzss

Function Documentation

template<class Sink>
size_t noLZSS::detail::nolzss(cst_t &cst, Sink &&sink, size_t start_pos)

Core noLZSS factorization algorithm implementation.

Implements the non-overlapping Lempel-Ziv-Storer-Szymanski factorization using a compressed suffix tree. The algorithm finds the longest previous factor for each position in the text and emits factors through a sink.

Note

This is the core algorithm that all public functions use

Note

The sink pattern allows for memory-efficient processing

Note

All factors are emitted, including the last one

Template Parameters:

Sink – Callable type that accepts Factor objects (e.g., lambda, function)

Parameters:
  • cst – The compressed suffix tree built from the input text

  • sink – Callable that receives each computed factor

  • start_pos – Starting position for factorization (default: 0)

Returns:

Number of factors emitted