Re: List processing

*To*: mathgroup at smc.vnet.net*Subject*: [mg37251] Re: List processing*From*: Mark Westwood <MarkCWestwood at compuserve.com>*Date*: Fri, 18 Oct 2002 05:17:51 -0400 (EDT)*References*: <aokbp7$afv$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

John The simplest solution to your trial problem that I could come up with was the following: Apply[List, Apply[Interval, {{100, 200}, {150, 250}, {120, 270}, {300, 400}}]] I hope you can figure it out. I didn't test it on a larger input dataset - my usual experience is that built-in functions are faster for operations on lists than fiddling around with loops. Regards Mark Westwood John Leary wrote: > > Greetings > > This problem can be solved by conventional programming, but I wonder if > there is an elegant Mathematica solution ? > > A list contains pairs of values, with each pair representing the lower and > upper edge of a sub-range. Some of the sub-ranges partially overlap, some > fully overlap, others don't overlap at all. The problem is to produce a > second list that contains the overall upper and lower edges of the > overlapping sub-ranges. > > A simple example : {{100,200},{150,250},{120,270},{300,400}} would result > in {{100,270},{300,400}}. > > In the real case, the input list has several hundred elements and the > output list typically has five elements. > > I have a working solution based on loops, but there must be a more elegant > one. I would be very grateful for any suggestions. > > Best regards > > John Leary