10.1016/0304-3800(81)90060-0