Re: How to speed up this calculation?

*To*: mathgroup at smc.vnet.net*Subject*: [mg37261] Re: [mg37200] How to speed up this calculation?*From*: Sseziwa Mukasa <mukasa at jeol.com>*Date*: Mon, 21 Oct 2002 02:29:22 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

On Wednesday, October 16, 2002, at 02:26 PM, Cheng Liu wrote: > Dear group, > > I have the following question regarding a lengthy calculation > using Mathematica: > > For given w points in x direction and h points in y direction, I can > construct all the points using > > h=10; w=8; > points=Flatten[Transpose[Outer[List,Range[w],Range[h]]],1] > > Next, I need to find all the possible pairs of point including points > themselves, i.e., pair AA. I can use > > pairs=Outer[List,points,points,1] > > Then, I have to clear those pairs that repeat themselves, i.e., pair > AB and > pair BA. Also, when w and h are of the order of 1000s, the computation > takes a very long time. Is there a better way of doing the second > part of > the computation? Thanks in advance. > > Have you tried using the KSubsets function from DiscreteMath`Combinatorica`? What you want are all KSubsets of length 2 plus the original set of points duplicated for example: Needs["DiscreteMath`Combinatorica`"] pairs=Join[KSubsets[points,2],Transpose[{points,points}]] Regards, Sseziwa