@@ -371,9 +371,10 @@ def generic_rc_fit(type_sieve):
371371
372372if args .mode == "segment" :
373373 print (
374- "# Updated layer resistance {}/um capacitance {}/um" .format (res_unit , cap_unit )
374+ "\n Units: resistance [ {}/um], capacitance [ {}/um] " .format (res_unit , cap_unit )
375375 )
376376
377+ layer_models = {}
377378 for layer_name in routing_layers :
378379 # There may be routing layers with no segments, so we check if the
379380 # layer exists in the dict.
@@ -388,16 +389,24 @@ def generic_rc_fit(type_sieve):
388389
389390 res_model = LinearRegression (fit_intercept = False ).fit (lengths , resistances )
390391 cap_model = LinearRegression (fit_intercept = False ).fit (lengths , capacitances_ff )
391-
392- r_sq = res_model .score (lengths , resistances )
393- print ("# Resistance coefficient of determination: {:.4f}" .format (r_sq ))
394- r_sq = cap_model .score (lengths , capacitances_ff )
395- print ("# Capacitance coefficient of determination: {:.4f}" .format (r_sq ))
396-
392+ layer_models [layer_name ] = (res_model , cap_model , lengths , resistances , capacitances_ff )
393+
394+ # Print R² table
395+ print ("{:<13s} | {:>8s} | {:>8s}" .format ("\n Layer" , "Res R²" , "Cap R²" ))
396+ print ("-" * 34 )
397+ for layer_name , (res_model , cap_model , lengths , resistances , capacitances_ff ) in layer_models .items ():
398+ r_sq_res = res_model .score (lengths , resistances )
399+ r_sq_cap = cap_model .score (lengths , capacitances_ff )
400+ print ("{:<12s} | {:>8.4f} | {:>8.4f}" .format (layer_name , r_sq_res , r_sq_cap ))
401+ print ("-" * 34 )
402+ print ("" )
403+
404+ for layer_name , (res_model , cap_model , lengths , resistances , capacitances_ff ) in layer_models .items ():
397405 print (
398406 "set_layer_rc -layer {} -resistance {:.5E} -capacitance {:.5E}" .format (
399407 layer_name ,
400408 res_model .coef_ [0 ] / res_scale ,
401409 cap_model .coef_ [0 ] * 1e-15 / cap_scale ,
402410 )
403411 )
412+ print ("" )
0 commit comments