private static List<Term> expandDontCares(int ord, List<Term> in) {
		Set<Integer> termInts = new HashSet<Integer>();
		for (Term term : in) {
			addExpandTerm(0, ord, 0, term, termInts);
		}
		// Now convert the termInts to Terms
		List<Term> result = new ArrayList<Term>(termInts.size());
		for (Integer termInt : termInts) {
			byte[] varVals = new byte[ord];
			for (int i = 0; i < ord; i++) {
				varVals[i] = (byte)(((termInt & (1 << i)) == 0) ? 0 : 1);
			}
			result.add(new Term(varVals));
		}
		return result;
	}
private static List < Term > expandDontCares ( int ord , List < Term > in ) { Set < Integer > termInts = new HashSet < Integer > ( ) ; for ( Term term : in ) { addExpandTerm ( 0 , ord , 0 , term , termInts ) ; } List < Term > result = new ArrayList < Term > ( termInts . size ( ) ) ; for ( Integer termInt : termInts ) { byte [ ] varVals = new byte [ ord ] ; for ( int i = 0 ; i < ord ; i ++ ) { varVals [ i ] = ( byte ) ( ( ( termInt & ( 1 << i ) ) == 0 ) ? 0 : 1 ) ; } result . add ( new Term ( varVals ) ) ; } return result ; }
Expands out an array of terms containing don't cares into a new array
which doesn't contain any don't cares. Don't cares are eliminated by
expanding the array to include all values represented by the don't cares.
For example, the array [1, 1, X], [0, X, 0] with don't cares represented
by X is expanded out to the new array [1, 1, 0], [1, 1, 1], [0, 1 0], [0,
0, 0]. Redundant terms are eliminated in the expansion

@param ord
The term size
@param in
The input list of terms containing don't cares
@return A new term list with don't cares expanded.