Lisp and Symbolic Computation
Indigo: a local propagation algorithm for inequality constraints
Proceedings of the 9th annual ACM symposium on User interface software and technology
Solving linear arithmetic constraints for user interface applications
Proceedings of the 10th annual ACM symposium on User interface software and technology
MULTIMEDIA '97 Proceedings of the fifth ACM international conference on Multimedia
The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory
ACM Transactions on Programming Languages and Systems (TOPLAS)
PPCP '94 Proceedings of the Second International Workshop on Principles and Practice of Constraint Programming
CP '95 Proceedings of the First International Conference on Principles and Practice of Constraint Programming
An $n^{log n}$ algorithm for the two-variable-per-constraint linear programming satisfiability problem
A constraint solver for model-based engineering
AI Communications
Which Soft Constraints do you Prefer?
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards flexible graphical communication using adaptive diagrams
ASIAN'04 Proceedings of the 9th Asian Computing Science conference on Advances in Computer Science: dedicated to Jean-Louis Lassez on the Occasion of His 5th Cycle Birthday
Hi-index | 0.00 |
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.