Simplified selectColumnSizeHeuristic
This commit is contained in:
		| @ -33,18 +33,13 @@ type SolutionCallback = (output: DNode[]) => boolean; | |||||||
| type ColumnSelector = (header: CNode) => CNode; | type ColumnSelector = (header: CNode) => CNode; | ||||||
|  |  | ||||||
| function selectColumnSizeHeuristic(header: CNode): CNode { | function selectColumnSizeHeuristic(header: CNode): CNode { | ||||||
|   let minSize = Infinity; |   let minColumn = header.right; | ||||||
|   let minColumn: CNode | undefined; |   let curColumn = minColumn; | ||||||
|   let curColumn = header; |  | ||||||
|   while ((curColumn = curColumn.right) !== header) { |   while ((curColumn = curColumn.right) !== header) { | ||||||
|     if (curColumn.column.size < minSize) { |     if (curColumn.size < minColumn.size) { | ||||||
|       minSize = curColumn.column.size; |  | ||||||
|       minColumn = curColumn; |       minColumn = curColumn; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   if (!minColumn) { |  | ||||||
|     throw new Error("minColumn is undefined, this shouldn't be possible."); |  | ||||||
|   } |  | ||||||
|   return minColumn; |   return minColumn; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user