Repository : ssh://darcs.haskell.org//srv/darcs/packages/base

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/a8b47d5f6f2b33f18e90c95353c6383c0ccdfa9f

>---------------------------------------------------------------

commit a8b47d5f6f2b33f18e90c95353c6383c0ccdfa9f
Author: Ian Lynagh <[email protected]>
Date:   Wed Jul 18 15:33:28 2012 +0100

    Simplify how gcd @ Int is implemented

>---------------------------------------------------------------

 GHC/Real.lhs |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/GHC/Real.lhs b/GHC/Real.lhs
index a011989..67389b6 100644
--- a/GHC/Real.lhs
+++ b/GHC/Real.lhs
@@ -657,13 +657,13 @@ lcm x y         =  abs ((x `quot` (gcd x y)) * y)
 
 #ifdef OPTIMISE_INTEGER_GCD_LCM
 {-# RULES
-"gcd/Int->Int->Int"             gcd = gcdInt
+"gcd/Int->Int->Int"             gcd = gcdInt'
 "gcd/Integer->Integer->Integer" gcd = gcdInteger
 "lcm/Integer->Integer->Integer" lcm = lcmInteger
  #-}
 
-gcdInt :: Int -> Int -> Int
-gcdInt a b = fromIntegral (gcdInteger (fromIntegral a) (fromIntegral b))
+gcdInt' :: Int -> Int -> Int
+gcdInt' (I# x) (I# y) = I# (gcdInt x y)
 #endif
 
 integralEnumFrom :: (Integral a, Bounded a) => a -> [a]



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to