And here it is! Certifiably faster than the naive version.

   sortbox =: </. /: ~.@[
   bwt =: 3 :'y{~ (([: ; $:^:(1<#)&.>)@:sortbox~ y{~(#y)&|)&.:>: i.@
#y=.y,EAV'

   bwt 'aba'
�baa
   f=. a.{~ 97+20000?@$26
   6!:2 'bwt f'
0.0843269
   bwt0=:{:"1@/:~@(|."0 1~ i.@-@#)@(,&EAV)
   6!:2 'bwt0 f'
0.976645

Marshall

On Thu, Sep 8, 2011 at 2:59 PM, Marshall Lochbaum <[email protected]>wrote:

> I just realized this. I'm working on a radix-sort-ish method that actually
> performs the correct transform now.
>
> Marshall
>
>
> On Thu, Sep 8, 2011 at 2:57 PM, Raul Miller <[email protected]> wrote:
>
>> On Thu, Sep 8, 2011 at 2:41 PM, Marshall Lochbaum <[email protected]>
>> wrote:
>> > The forward transform can be implemented as:
>> >
>> >   bwt =: (/: 1&|.)@:(,&EAV)
>>
>>    bwt=: (/: 1&|.)@:(,&EAV)
>>   bwt0=:{:"1@/:~@(|."0 1~ i.@-@#)@(,&EAV)
>>   (bwt -: bwt0) 'aba'
>> 0
>>   bwt 'aba'
>> b�aa
>>   bwt0 'aba'
>> �baa
>>
>> --
>> Raul
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to