src/Tools/rat.ML
changeset 24522 ec3e5c1a0479
parent 24521 9565ac68c3cd
child 24584 01e83ffa6c54
equal deleted inserted replaced
24521:9565ac68c3cd 24522:ec3e5c1a0479
    93 
    93 
    94 fun neg (Rat (p, q)) = Rat (Integer.neg p, q);
    94 fun neg (Rat (p, q)) = Rat (Integer.neg p, q);
    95 
    95 
    96 fun inv (Rat (p, q)) = case Integer.sign p
    96 fun inv (Rat (p, q)) = case Integer.sign p
    97  of LESS => Rat (Integer.neg q, Integer.neg p)
    97  of LESS => Rat (Integer.neg q, Integer.neg p)
    98   | EQAUL => raise DIVZERO
    98   | EQUAL => raise DIVZERO
    99   | GREATER => Rat (q, p);
    99   | GREATER => Rat (q, p);
   100 
   100 
   101 fun rounddown (Rat (p, q)) = Rat (Integer.div p q, 1);
   101 fun rounddown (Rat (p, q)) = Rat (Integer.div p q, 1);
   102 
   102 
   103 fun roundup (Rat (p, q)) = case Integer.divmod p q
   103 fun roundup (Rat (p, q)) = case Integer.divmod p q