On 29/07/11 09:49, Weese, David wrote:
Thanks for looking into it. Some tests I've been doing on traversing the array and storing large numbers of occurrences suggest global positions are more efficient. Obviously these were tests where the array was using local positions as its SAValues. I wanted to see if I could speed things up further by using an array with global positions for SAValues. So if you can get this working I'd be keen to try it.OK, so if I've understood correctly I think the following should work. I'm trying to set up a ESA that uses a SAValue of type unsigned. I get a load of compile errors about No match for ‘getValueI2(unsigned int)’. Can you let me know what I'm doing wrong or if this is not possible.I get them too. Originally global positions were meant for suffix array construction algorithms that cannot cope with multiple sequences and hence have to use the concatenation of all sequences. The positions in the suffix array are then related to the concatenation (= global positions). Downstream algorithms like suffix tree iterators should work with local as well as with global positions. It seems that the suffix array construction algorithm Skew7Multi assumes that the suffix array contains local positions, I will have a look at it. For now, I would recommend to use local (bitcompressed) positions as SAValue.
I think I didn't mention yet but I just made a publication that references Seqan you might like to know about. Do you have a project page that lists third party work that uses Seqan?