The rascal!

-- 
Raul


On Wed, Mar 5, 2014 at 4:38 PM, Joe Bogner <joebog...@gmail.com> wrote:

> hey hey - I posted my first answer before looking at the source and it
> didn't change my answer. Also, Roger has the source in his head and it
> wasn't ruled out of bounds.
>
> On Wed, Mar 5, 2014 at 4:35 PM, Raul Miller <rauldmil...@gmail.com> wrote:
> > My guess would be that it has something to do with cache coherence.
> >
> > Indexing is random access, sorting is more sequential in nature.
> >
> > But that's just a guess, because I did not cheat and look at the source
> or
> > anything (at least... not today).
> >
> > Thanks,
> >
> > --
> > Raul
> >
> >
> >
> > On Wed, Mar 5, 2014 at 2:45 PM, Roger Hui <rogerhui.can...@gmail.com>
> wrote:
> >
> >> That's my alternative faster expression as well.  But the more
> interesting
> >> question is, why is it faster?  Since we do the grade in both cases, the
> >> comparison is between /:~x and g{x (or x{~g) with g pre-computed.  The
> >> answer does not depend knowledge specific to J.
> >>
> >>
> >>
> >>
> >>
> >> On Wed, Mar 5, 2014 at 11:38 AM, Joe Bogner <joebog...@gmail.com>
> wrote:
> >>
> >> > Sorting and grading separately seems faster
> >> >
> >> > timer=: 6!:2
> >> > x=:(1e7 $ 26?26) { 'abcdefghijklmnopqrstuvwxyz'
> >> > NB. incumbent
> >> > timer 's=: x{~g=: /:x'
> >> > 0.0914002
> >> >
> >> > NB. alternate
> >> > timer 'S=: /:~x[G=: /:x'
> >> > 0.0668677
> >> >
> >> >  s-:S
> >> > 1
> >> >    G-:g
> >> > 1
> >> >
> >> >
> >> > I am speculating that sorting does it in place? which is faster than
> >> > the selection from the grade
> >> >
> >> >
> >> >
> >> > On Wed, Mar 5, 2014 at 2:02 PM, Raul Miller <rauldmil...@gmail.com>
> >> wrote:
> >> > > Hmm...
> >> > >
> >> > > G=:a.i.S=:/:~x
> >> > > is faster.
> >> > >
> >> > > But while s-:S, g and G are different.
> >> > >
> >> > > So I'm drawing a blank here, on how to make the grade.
> >> > >
> >> > > Thanks,
> >> > >
> >> > > --
> >> > > Raul
> >> > >
> >> > >
> >> > >
> >> > > On Wed, Mar 5, 2014 at 1:52 PM, Roger Hui <
> rogerhui.can...@gmail.com>
> >> > wrote:
> >> > >
> >> > >> Suppose x is a long vector of characters and you need both its sort
> >> and
> >> > its
> >> > >> grade.  Can you do it faster than s=: x{~g=: /:x ?
> >> > >>
> >> > >> Posed this way, the answer is of course yes.  But how, and why is
> it
> >> > >> faster?
> >> > >>
> ----------------------------------------------------------------------
> >> > >> For information about J forums see
> >> http://www.jsoftware.com/forums.htm
> >> > >>
> >> > >
> ----------------------------------------------------------------------
> >> > > For information about J forums see
> http://www.jsoftware.com/forums.htm
> >> > ----------------------------------------------------------------------
> >> > For information about J forums see
> http://www.jsoftware.com/forums.htm
> >> >
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> 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