MathGroup Archive 1992

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Functional solution to union of intervals

  • To: MathGroup at yoda.physics.unc.edu
  • Subject: Re: Functional solution to union of intervals
  • From: fateman at peoplesparc.berkeley.edu (Richard Fateman)
  • Date: Fri, 5 Jun 92 14:58:57 PDT

I think this works, and it seems to me to be far simpler to
understand.  If Lists in Mathematica were implemented as linked
lists, instead of fixed-length arrays which have to be copied
over at every Prepend, it would probably be quite fast.


(* Take a list of intervals of the form {{low1, high1} ...{lown,highn}}
   and return a list of maximal intervals *)

mi[{}]:={}
mi[list:{a_,__}]:=mi1[a,mi[Rest[list]]]

mi1[a_,Null]:={a}
mi1[new:{low_,hi_},old:{{l_,h_},___} ]:=
         If [(l<=low<=h || l<=hi<=h || low< l<hi || low <h <hi), 
                Prepend[Rest[old],{Min[l,low],Max[hi,h]}],
            	Prepend[old,new]]
		
UnionOfListOfIntervals[a_]:=mi[Sort[a]]

(* I think the test can be simplified to omit several of the
conditions... *)

RJF





  • Prev by Date: maybe better union of intervals
  • Next by Date: Re: Polygons
  • Previous by thread: Functional solution to union of intervals
  • Next by thread: Quaternions etc.