# HG changeset patch # User haftmann # Date 1188799295 -7200 # Node ID 9565ac68c3cd934de55a653e40db69e8471002d5 # Parent 40b22040325702f2ab51c68bbf38623fbe18373e fixed Rat.inv diff -r 40b220403257 -r 9565ac68c3cd src/Tools/rat.ML --- a/src/Tools/rat.ML Sun Sep 02 23:36:21 2007 +0200 +++ b/src/Tools/rat.ML Mon Sep 03 08:01:35 2007 +0200 @@ -93,8 +93,10 @@ fun neg (Rat (p, q)) = Rat (Integer.neg p, q); -fun inv (Rat (p, 0)) = raise DIVZERO - | inv (Rat (p, q)) = Rat (q, p); +fun inv (Rat (p, q)) = case Integer.sign p + of LESS => Rat (Integer.neg q, Integer.neg p) + | EQAUL => raise DIVZERO + | GREATER => Rat (q, p); fun rounddown (Rat (p, q)) = Rat (Integer.div p q, 1);