Re: Re: Number of interval Intersections for a large number of intervals
- To: mathgroup at smc.vnet.net
- Subject: [mg81751] Re: [mg81718] Re: [mg81679] Number of interval Intersections for a large number of intervals
- From: Brett Champion <brettc at wolfram.com>
- Date: Wed, 3 Oct 2007 02:21:09 -0400 (EDT)
- References: <4236415.1191246194428.JavaMail.root@m35> <200710020936.FAA28508@smc.vnet.net>
On Oct 2, 2007, at 4:36 AM , DrMajorBob wrote:
> [WRI: there's a Plot/Piecewise insect (bug?) noted below.]
>
> I'm having to guess a bit, but maybe this is what you mean:
>
> intervals = Sort /@ RandomReal[{-1, 1}, {10^5, 2}];
> trans = Transpose@intervals;
> {{min, maxLow}, {minHigh, max}} = Through[{Min, Max}@#] & /@ trans;
> {low, high} =
> Interpolation[Transpose@{Sort@#, -1 + Range@Length@#},
> InterpolationOrder -> 0] & /@ trans;
>
> Clear[count]
> count[x_] /; x < min = 0;
> count[x_] /; x > max = 0;
> count[x_] /; x < minHigh := low[x]
> count[x_] /; x > maxLow := low[maxLow] - high[x]
> count[x_] := low[x] - high[x];
> First@Timing@Plot[count@x, {x, -1, 1}]
>
> 0.031
>
> or
>
> Clear[count2]
> count2[x_] =
> Piecewise[{{0, x < min}, {low[x], x < minHigh}, {low[x] - high[x],
> x <= maxLow}, {low[maxLow] - high[x], x <= max}}];
> First@Timing@Plot[count2@x, {x, -1, 1}]
>
> 0.047
>
> INSECT report: If I use a small number of Intervals -- 10, say --
> the two
> plots are different. The Piecewise version doesn't have "returns"
> at some
> of the discontinuities, even though the following plots the zero
> function
> as expected:
>
> Plot[count2@x - count@x, {x, -1, 1}]
>
> Is this an example of Exclusions->Automatic at work?
>
> If so, why aren't all the returns omitted?
>
Conditional definitions of functions, such as used to define count[],
are not detected by the automatic calculation of exclusions. I don't
think this is a bug, although it is an interesting idea.
In the case of count2[], there are only going to be exclusions at the
Piecewise boundaries: x==min, x==max, x==minHigh, x==maxLow. The
interpolating function used by low[] and high[] will be a black box
to it.
Brett Champion
Wolfram Research
- References:
- Re: Number of interval Intersections for a large number of intervals
- From: DrMajorBob <drmajorbob@bigfoot.com>
- Re: Number of interval Intersections for a large number of intervals