G'day all. On Fri, Apr 26, 2002 at 09:45:24AM -0700, Larry Wall wrote:
> Gee, maybe I should patent this. Actually, you're binary searching the Stern-Brocot tree representation of rational numbers. In fact, if you have arbitrary precision integers, you can convert these strings into rational numbers which preserve ordering: my @precedence = qw(1 2 2 1 1 2 1 2); ($m1,$n1,$m2,$n2) = (0, 1, 1, 0); foreach (@precedence) { ($m,$n) = ($m1+$m2, $n1+$n2); if (/2/) { ($m1,$n1) = ($m,$n); } else { ($m2,$n2) = ($m,$n); } } ($m,$n) = ($m1+$m2, $n1+$n2); Then $m/$n is the number. I think this was covered in Graham, Knuth & Patashnik, "Concrete Mathematics". Still, you might be able to patent its application to operator precedences. Cheers, Andrew Bromage