/*! * \param i The ith occurrence. \f$i\in [1..rank(size(),c)]\f$. * \param c The symbol c. * \par Time complexity * \f$ \Order{H_0} \f$ on average, where \f$ H_0 \f$ is the zero order * entropy of the sequence */ size_type select(size_type i, value_type c)const { assert(i > 0); assert(i <= rank(size(), c)); size_type c_runs = m_bf_rank(m_C[c]+i) - m_C_bf_rank[c]; size_type offset = m_C[c] + i - 1 - m_bf_select(c_runs + m_C_bf_rank[c]); return m_bl_select(m_wt.select(c_runs, c)+1) + offset; };