Fourier Elimination for Compiling Constraint Hierarchies

  • Authors:
  • Warwick Harvey;Peter J. Stuckey;Alan Borning

  • Affiliations:
  • Department of Computer Science and Software Engineering, University of Melbourne, Parkville 3052, Australia warwick@cs.mu.oz.au;Department of Computer Science and Software Engineering, University of Melbourne, Parkville 3052, Australia pjs@cs.mu.oz.au;Department of Computer Science & Engineering, University of Washington, Box 352350, Seattle, Washington 98195 borning@cs.washington.edu

  • Venue:
  • Constraints
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. For interactive use, we need to solve similar constraint satisfaction problems repeatedly for each screen refresh, with each successive problem differing from the previous one only in the position of an input device and the previous state of the system. We present an algorithm for solving such systems of constraints using projection. The solution is compiled into very efficient, constraint-free code, which is parameterized by the new inputs. Producing straight-line, constraint-free code of this sort is important in a number of applications: for example, to provide predictable performance in real-time systems, to allow companies to ship products without including a runtime constraint solver, to compile Java applets that can be downloaded and run remotely (again without having to include a runtime solver), or for applications where runtime efficiency is particularly important. Even for less time-critical user interface applications, the smooth performance of the resulting code is more pleasing than that of code produced using other current techniques.