The Cassowary linear arithmetic constraint solving algorithm

  • Authors:
  • Greg J. Badros;Alan Borning;Peter J. Stuckey

  • Affiliations:
  • University of Washington, Seattle, WA;University of Washington, Seattle, WA;University of Melbourne, Parkville, Victoria, Australia

  • Venue:
  • ACM Transactions on Computer-Human Interaction (TOCHI)
  • Year:
  • 2001

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 third of a window, or preferring that an object be contained within a rectangle if possible. Previous constraint solvers designed for user interface applications cannot handle simultaneous linear equations and inequalities efficiently. This is a major limitation, as such systems of constraints arise often in natural declarative specifications. We describe Cassowary---an incremental algorithm based on the dual simplex method, which can solve such systems of constraints efficiently. We have implemented the algorithm as part of a constraint-solving toolkit. We discuss the implementation of the toolkit, its application programming interface, and its performance.