6 papers
Numerical Superoptimization for Library Learning
Jonas Regehr, Mitch Briles, Zachary Tatlock +1
Numerical software depends on fast, accurate implementations of mathematical primitives like sin, exp, and log. Modern superoptimizers can optimize floating-point kernels against a…
Semantics for 2D Rasterization
Bhargav Kulkarni, Henry Whiting, Pavel Panchekha
Rasterization is the process of determining the color of every pixel drawn by an application. Powerful rasterization libraries like Skia, CoreGraphics, and Direct2D put exceptional…
Incremental Live Programming via Shortcut Memoization
Marisa Kirisame, Thomas J. Porter, Ruqing Yang +5
Live programming systems aim to quickly show programmers the dynamic impacts of program edits. To do so, they re-execute the program whenever it is edited, which poses a computatio…
Incremental Bidirectional Typing via Order Maintenance
Thomas J. Porter, Marisa Kirisame, Ivan Wei +2
Live programming environments provide various semantic services, including type checking and evaluation, continuously as the user is editing the program. The live paradigm promises…
Mixing Condition Numbers and Oracles for Accurate Floating-point Debugging
Bhargav Kulkarni, Pavel Panchekha
Recent advances have made numeric debugging tools much faster by using double-double oracles, and numeric analysis tools much more accurate by using condition numbers. But these te…
Spineless Traversal for Layout Invalidation
Marisa Kirisame, Tiezhi Wang, Pavel Panchekha
Latency is a major concern for web rendering engines like those in Chrome, Safari, and Firefox. These engines reduce latency by using an incremental layout algorithm to redraw the…