@@ -323,17 +323,33 @@ function _coloring(
323323 outputs_by_order = map (algo. orders) do order
324324 vertices_in_order = vertices (ag, order)
325325 _color, _star_set = star_coloring (ag, vertices_in_order, algo. postprocessing)
326- _row_color, _column_color, _ = remap_colors (
326+ ( _row_color, _column_color, _symmetric_to_row, _symmetric_to_column) = remap_colors (
327327 eltype (ag), _color, maximum (_color), size (A)...
328328 )
329- return (_color, _star_set, _row_color, _column_color)
329+ return (
330+ _color,
331+ _star_set,
332+ _row_color,
333+ _column_color,
334+ _symmetric_to_row,
335+ _symmetric_to_column,
336+ )
330337 end
331- (color, star_set, row_color, column_color) = argmin (
338+ (color, star_set, row_color, column_color, symmetric_to_row, symmetric_to_column ) = argmin (
332339 t -> maximum (t[3 ]) + maximum (t[4 ]), outputs_by_order
333340 ) # can't use ncolors without computing the full result
334341 if speed_setting isa WithResult
335342 symmetric_result = StarSetColoringResult (A_and_Aᵀ, ag, color, star_set)
336- return BicoloringResult (A, ag, symmetric_result, R)
343+ return BicoloringResult (
344+ A,
345+ ag,
346+ symmetric_result,
347+ row_color,
348+ column_color,
349+ symmetric_to_row,
350+ symmetric_to_column,
351+ R,
352+ )
337353 else
338354 return row_color, column_color
339355 end
@@ -352,17 +368,33 @@ function _coloring(
352368 outputs_by_order = map (algo. orders) do order
353369 vertices_in_order = vertices (ag, order)
354370 _color, _tree_set = acyclic_coloring (ag, vertices_in_order, algo. postprocessing)
355- _row_color, _column_color, _ = remap_colors (
371+ ( _row_color, _column_color, _symmetric_to_row, _symmetric_to_column) = remap_colors (
356372 eltype (ag), _color, maximum (_color), size (A)...
357373 )
358- return (; _color, _tree_set, _row_color, _column_color)
374+ return (
375+ _color,
376+ _tree_set,
377+ _row_color,
378+ _column_color,
379+ _symmetric_to_row,
380+ _symmetric_to_column,
381+ )
359382 end
360- (color, tree_set, row_color, column_color) = argmin (
383+ (color, tree_set, row_color, column_color, symmetric_to_row, symmetric_to_column ) = argmin (
361384 t -> maximum (t[3 ]) + maximum (t[4 ]), outputs_by_order
362385 ) # can't use ncolors without computing the full result
363386 if speed_setting isa WithResult
364387 symmetric_result = TreeSetColoringResult (A_and_Aᵀ, ag, color, tree_set, R)
365- return BicoloringResult (A, ag, symmetric_result, R)
388+ return BicoloringResult (
389+ A,
390+ ag,
391+ symmetric_result,
392+ row_color,
393+ column_color,
394+ symmetric_to_row,
395+ symmetric_to_column,
396+ R,
397+ )
366398 else
367399 return row_color, column_color
368400 end
0 commit comments