There is one use case for gcd of rationals in C++11:
[time.traits.specializations]/p1-2:
---
template
GCD and LCM can be defined for rationals, if one takes "divisible" to mean "divisible with an integer quotient" and, similarly, "multiple" to mean "multiple by an integer." Then, for example, GCD(1/2, 1/3) = 1/6 and LCM(1/2, 1/3) = 1.
On Jul 21, 2011, at 7:44 AM, Júlio Hoffimann wrote:
Hi Thomas,
Thank you for the intention, but as far as i know, GCD and LCM makes no sense in the rational field. Any rational number is divisible by all rationals. For instance, given two rationals b, r in Q, r != 0, you can write:
b = (b * r^-1) * r
and then b is divisible by r.
Regards, Júlio.
2011/7/21 Thomas Taylor
Dear boost users and maintainers, As I needed these functions myself I have added a gcd and an lcm for the rational type. Feel free to do with the code whatever you want, if suitable add it to rational.hpp. Presumably this could be reworked as partial specialisation of boost::math::gcd and boost::math::lcm respectively (if there is a trait like is_rational).
HTH, Thomas
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Christopher Henrich chenrich@monmouth.com mathinteract.com
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users