From 7b7e852f6723a21a80dd36fbf80e1f499d1e169d Mon Sep 17 00:00:00 2001 From: Gabriel Gouvine Date: Thu, 22 Jun 2023 17:03:10 +0200 Subject: [PATCH] Compute space margin from bounding box (for user-specified bounding box) --- etesian/src/EtesianEngine.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/etesian/src/EtesianEngine.cpp b/etesian/src/EtesianEngine.cpp index 491ccf47..66bafeb6 100644 --- a/etesian/src/EtesianEngine.cpp +++ b/etesian/src/EtesianEngine.cpp @@ -763,10 +763,11 @@ namespace Etesian { if (instance->getPlacementStatus() == Instance::PlacementStatus::FIXED) { ++fixedNb; totalLength -= length; - } else if (instance->getPlacementStatus() == Instance::PlacementStatus::PLACED) { - cerr << "PLACED " << instance << endl; } else { usedLength += length; + if (instance->getPlacementStatus() == Instance::PlacementStatus::PLACED) { + cerr << "PLACED " << instance << endl; + } } } if (instancesNb <= fixedNb) { @@ -842,7 +843,8 @@ namespace Etesian { } } - double spaceMargin = getSpaceMargin(); + // Compute the space margin from the row length computed earlier + double spaceMargin = (double) (totalLength - usedLength) / usedLength; double densityVariation = getDensityVariation(); double bloatFactor = 1.0 + std::max(spaceMargin - densityVariation, 0.0); if (bloatFactor != 1.0) {