On 03/01/2020 20:14, Fabien COELHO wrote: > > 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?
Ah, true. How widespread are these architectures that need this special treatment? Is it really worth handling? > I'm unsure about gcd(INT_MIN, 0) should error. Possibly 0 would be nicer? What justification for that do you have? -- Vik Fearing