H! I have J 1706? from a download.

How may I save some code?

Yours, Bob.



Quoting Devon McCormick <devon...@gmail.com>:

> Depending on how you intend to use this, the following might suggest a
> more substantial speed-up.  I'll  first re-cap what we've seen so far
> to provide a basis for my timings, then I'll sketch out an unfinished
> idea for potentially speeding up the process.
>
>    findSDM=: +/@:="1/~        NB. Tarmo Veskioja's original
>    findSDMvc=: +/"1@:(="1/~)  NB. Victor Cerovski's
>    findSDMrm=: +/@:(=/~"1)    NB. Raul Miller's
>
>    (10) 6!:2 'findSDM t2'
> 5.68061
>    (10) 6!:2 'findSDMvc t2'
> 4.32129
>    (10) 6!:2 'findSDMrm T2' [ T2=: |:t2
> 4.21779
>
> NB. So, the two suggestions are both a little bit better on my machine.
>
> NB. A preliminary idea for speeding up process by reducing amount
> NB. of data processed per invocation by grouping "like" items:
>
>    <.%:#t2                         NB. Try to scale as square root of
> number of records...
> 70
>    refpts=: 70 40 ?@$ 5            NB. Random reference points...
>    $keys=. +/+/"1 refpts="1/t2     NB. Group by similarity to  
> reference points
> 5000
>    $findSDM&.>keys </. t2
> 136
>
> NB. This gives matches within groups - a partial, approximate solution...
>    $&.>findSDM&.>keys </. t2
> +-----+-----+-------+-------+-----+-----+-----+-----...
> |57 57|73 73|107 107|116 116|76 76|29 29|74 74|65 65...
> +-----+-----+-------+-------+-----+-----+-----+-----...
>
> NB. Combining these ideas:
>    findSDMdhm=: 3 : 'refpts;findSDM &.> (+/+/"1 (refpts=:
> ((<.%:#y),1{$y)?@$5)="1/y) </. y'
>    (10) 6!:2 'findSDMdhm t2'
> 0.150275
>
> --
> Devon McCormick, CFA
> ^me^ at acm.
> org is my
> preferred e-mail
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to