NAME: fulljoin PURPOSE: Create the full join, or Cartesian product of two sets. DESCRIPTION: a and b are two vectors of identical type. a matrix c is returned where c[0,*] is values of a in order c[1,*] is values of b in order CATEGORY: Set Manipulation CALLING SEQUENCE: fulljoin( a,b) INPUTS: a - 1-D array b - 1-D array OPTIONAL INPUT PARAMETERS: KEYWORD INPUT PARAMETERS: NOUNIQ - Flag, if set, does a straight join across a and b as is. Otherwise the a and b arrays are sorted into uniq values. PRESERVE- Flag, if set, and NOUNIQ not set, unique values for a and b will be used but they will be in their original order, ie, for each unique value, the order of its first appearance. OUTPUTS: Returns a product matrix of dimension 2 X (m * n). of the form [ [a0,b0], [a0, b1], [a0,b2]... [a1,b0],... [an,bn-1], [an.bn]] KEYWORD OUTPUT PARAMETERS: COMMON BLOCKS: SIDE EFFECTS: RESTRICTIONS: PROCEDURE: MODIFICATION HISTORY: 2006/08/16, Written by Peter L. Collins, Lowell Observatory