---
** [issues:#5922] Rewrite Skyline code**
**Status:** Started
**Created:** Sun Apr 19, 2020 09:42 PM UTC by Han-Wen Nienhuys
**Last Updated:** Sun Apr 19, 2020 09:42 PM UTC
**Owner:** nobody
With this change, Carver MSDM goes from 38 seconds to 32 seconds, a
15% improvement.
* Do not use contiguous buildings. Instead, Y=-infinity is represented
by simply omitting the building. This reduces memory requirements
(for example, an empty skyline needs no buildings at all.), and
obviates the Skyline::normalize() call which takes ~1 % of CPU.
* Buildings store Y coordinate of the left edge, rather than the
intercept at x==0.0. This avoid excessive rounding problems when X
is large, and lets us compute building.height_at(x[LEFT]) cheaply.
* Avoid using infinity and NaN. We only let the X coordinates at the
be infinite (which is only necessary if a minimum height is
specified)
* Aggressively prune zero width
buildings. Adjust input/regression/skyline-point-extent to match
this behavior
* Simplify the merge code, using less nested if statements.
* Add a unittest for the Skyline code
* Debug output is produced with Lookup::segments_to_line_stencil()
https://codereview.appspot.com/547980044
---
Sent from sourceforge.net because testlilyissues-a...@lists.sourceforge.net is
subscribed to https://sourceforge.net/p/testlilyissues/issues/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/testlilyissues/admin/issues/options. Or, if this is
a mailing list, you can unsubscribe from the mailing list.
_______________________________________________
Testlilyissues-auto mailing list
testlilyissues-a...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/testlilyissues-auto