diff --git a/rational.html b/rational.html index 1198f65..b065d21 100644 --- a/rational.html +++ b/rational.html @@ -694,38 +694,64 @@ required elsewhere, the calculation is performed inline.
+ In December, 1999, I implemented the initial version of the rational number + class, and submitted it to the boost.org + mailing list. Some discussion of the implementation took place on the mailing + list. In particular, Andrew D. Jewell pointed out the importance of ensuring + that the risk of overflow was minimised, and provided overflow-free + implementations of most of the basic operations. The name rational_cast was + suggested by Kevlin Henney. Ed Brey provided invaluable comments - not least + in pointing out some fairly stupid typing errors in the original code!
-David Abrahams contributed helpful feedback on the documentation. +
David Abrahams contributed helpful feedback on the documentation.
-A long discussion of the merits of providing a conversion from floating -point to rational took place on the boost list in November 2000. Key -contributors included Reggie Seagraves, Lutz Kettner and Daniel Frey (although -most of the boost list seemed to get involved at one point or another!). Even -though the end result was a decision not to implement anything, the -discussion was very valuable in understanding the issues. +
+ A long discussion of the merits of providing a conversion from floating + point to rational took place on the boost list in November 2000. Key + contributors included Reggie Seagraves, Lutz Kettner and Daniel Frey (although + most of the boost list seemed to get involved at one point or another!). Even + though the end result was a decision not to implement anything, the + discussion was very valuable in understanding the issues. +
-Stephen Silver contributed useful experience on using the rational class -with a user-defined integer type. +
+ Stephen Silver contributed useful experience on using the rational class + with a user-defined integer type. +
-Nickolay Mladenov provided the current implementation of operator+= and -operator-=. +
+ Nickolay Mladenov provided the current implementation of operator+= and + operator-=. +
++ Discussion of the issues surrounding Koenig lookup and std::swap took place + on the boost list in January 2001. +
++ Daryle Walker provided a Boolean conversion operator, so that a rational can + be used in the same Boolean contexts as the built-in numeric types, in December + 2005. He added the cross-instantiation constructor template in August 2013. +
++ July 2014: Updated numerator/denominator accessors to return values by constant + reference: this gives a performance improvement when using with multiprecision (class) types. +
++ July 2014: Updated to use BOOST_THROW_EXCEPTION uniformly throughout. +
++ July 2014: Added support for C++11 constexpr constructors, plus tests to match. +
++ Nov 2014: Added support for gcd and lcm of rational numbers. +
++ Dec 2016: Reworked constructors and operators to prohibit narrowing implicit + conversions, in particular accidental conversion from floating point types. +
-Discussion of the issues surrounding Koenig lookup and std::swap took place -on the boost list in January 2001. - -
Daryle Walker provided a Boolean conversion operator, so that a rational can -be used in the same Boolean contexts as the built-in numeric types, in December -2005. He added the cross-instantiation constructor template in August 2013. - -
Revised August 30, 2013
+Revised July 14, 2017
© Copyright Paul Moore 1999-2001; © Daryle Walker 2005, 2013. Permission to copy, use, modify, sell and distribute this document is granted