Bonsoir Vik,

 +int4gcd_internal(int32 arg1, int32 arg2)
 +{
 +       int32   swap;
 +
 +       /*
 +        * Put the greater value in arg1.
 +        * This would happen automatically in the loop below, but avoids  an
 +        * expensive modulo simulation on some architectures.
 +        */
 +       if (arg1 < arg2)
 +       {
 +               swap = arg1;
 +               arg1 = arg2;
 +               arg2 = swap;
 +       }


The point of swapping is to a void possibly expensive modulo, but this should be done on absolute values, otherwise it may not achieve its purpose as stated by the comment?

gcd() is now strictly positive, so INT_MIN is no longer a valid result.

Ok.

I'm unsure about gcd(INT_MIN, 0) should error. Possibly 0 would be nicer?

--
Fabien.


Reply via email to