## Re: [xsl] How the other half live

 Subject: Re: [xsl] How the other half live From: "Dimitre Novatchev" Date: Tue, 18 Nov 2008 07:17:03 -0800
```> 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.j.welch@xxxxxxxxx> wrote:
> 2008/11/18 Dimitre Novatchev <dnovatchev@xxxxxxxxx>:
>> On Mon, Nov 17, 2008 at 12:53 PM, Michael Kay <mike@xxxxxxxxxxxx> 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/

```