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()
Diff:
Patch does not apply to current master.
don't trim zero width buildings
https://codereview.appspot.com/547980044
get rid of interval
https://codereview.appspot.com/547980044
Passes make, make check and a full make doc. Reg test diff attached.
Diff:
needs more benchmarking, but looks performance neutral .
Diff:
Patch on countdown for April 30th
Hm, actually I had some comments yesterday that have not been addressed yet.
I put this on "wait", no? This should not be merged as long as it's not
showing improved benchmarks
Op di 28 apr. 2020 09:43 schreef Jonas Hahnfeld hahnjo@users.sourceforge.net:
Related
Issues: #5922