Skip to content

Commit 53d290c

Browse files
Merge pull request #1960 from KLayout/bugfix/issue-1959
Fixing issue #1959
2 parents 64bfe9f + 86d2ee6 commit 53d290c

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/tl/tl/tlDataMapping.cc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -404,13 +404,13 @@ DataMappingLookupTable::update_table (double xmin, double xmax, double delta_y,
404404
double dx = fabs (t->first - t[-1].first);
405405
double dy = fabs (t->second - t[-1].second);
406406

407-
if (dx * delta_y < delta_x * dy) {
407+
if (dx > 1e-10 && dy > 1e-10 && dx * delta_y < delta_x * dy) {
408408
delta_x = dx / dy * delta_y;
409409
}
410410

411411
}
412412

413-
size_t nsteps = size_t (ceil((xmax - xmin) / delta_x - 1e-6));
413+
size_t nsteps = size_t (ceil ((xmax - xmin) / delta_x - 1e-6));
414414

415415
// Limit the number of interpolation points (this is an arbitrary number - it could be somewhat else)
416416
nsteps = std::min (size_t (16384), nsteps);
@@ -422,7 +422,9 @@ DataMappingLookupTable::update_table (double xmin, double xmax, double delta_y,
422422

423423
std::vector< std::pair<double, double> >::const_iterator t = table.begin ();
424424
size_t i = 0;
425-
for (double x = xmin; i < nsteps; ++i, x += delta_x) {
425+
double x;
426+
for ( ; i < nsteps; ++i) {
427+
x = xmin + i * delta_x;
426428
while (t != table.end () && t->first <= x) {
427429
++t;
428430
}

0 commit comments

Comments
 (0)