xsl-list
[Top] [All Lists]

Re: [xsl] How the other half live

2008-11-18 10:17:29

for $d in distinct-values($seq) return $d[count($seq[. eq $d]) ge $i]

equivalent?  I think it is, and probably a lot more efficient,
although it is longer.


What I have prepared as an optimization is:

   distinct-values($vSeq)[exists(index-of($vSeq,.)[2])]

it is still O(N^2) in the general case  but is many times faster for
long sequences with only a small number of different items, such as a
long bit sequence.

-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play



On Tue, Nov 18, 2008 at 6:55 AM, Andrew Welch 
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> wrote:
2008/11/18 Dimitre Novatchev <dnovatchev(_at_)gmail(_dot_)com>:
On Mon, Nov 17, 2008 at 12:53 PM, Michael Kay <mike(_at_)saxonica(_dot_)com> 
wrote:

I quite like the fact that this generalizes.

$vSeq[index-of($vSeq,.)[$i]]


Yes, I intentionally omitted this in order not to overload the
readers, nevertheless anyone who tries the five problems will
naturally notice this generalization.

Is:

for $d in distinct-values($seq) return $d[count($seq[. eq $d]) ge $i]

equivalent?  I think it is, and probably a lot more efficient,
although it is longer.

I can't see how to avoid the for expression...


--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--