Re: Greatest Common Divisor
От | Fabien COELHO |
---|---|
Тема | Re: Greatest Common Divisor |
Дата | |
Msg-id | alpine.DEB.2.21.2001032010470.12030@pseudo обсуждение исходный текст |
Ответ на | Re: Greatest Common Divisor (Vik Fearing <vik.fearing@2ndquadrant.com>) |
Ответы |
Re: Greatest Common Divisor
Re: Greatest Common Divisor |
Список | pgsql-hackers |
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.
В списке pgsql-hackers по дате отправления: