Rational Numbers
BlitzMax Forums/Brucey's Modules/Rational Numbers| 
 | ||
| Announcing yet another addition to the modules related to mathematics : BaH.Rational Rational numbers are any number that can be expressed as the ratio or quotient a/b, of two integers. Fractions! This module is built on the Boost library, so you will also need BaH.Boost. (Other modules already using BaH.Boost, include BaH.Mathtoolkit and BaH.DateTime), Here's a small example of use : 1/3 * 1/6 = 1/18 Local third:TRational = Rational(1, 3) ' 1/3 Local sixth:TRational = Rational(1, 6) ' 1/6 Local eighteenth:TRational = third.MultiplyR(sixth) ' multiply by rational The download is available from the google code site, here. Have fun :-) | 
| 
 | ||
|  can be expressed as the quotient a/b of two integers  I would call it the ratio of two integers, just to drive home the point. | 
| 
 | ||
| Very true. Thanks. | 
| 
 | ||
| Interesting ! I wonder in what situation this module would be useful. | 
| 
 | ||
| Didn't that already exists as one of your modules? Or do I have a deja-vu? Or did I write such an module a long time ago? Strange ;-) Usage Example: Writing an scientific calculator. This is just another situation which screams for operator overloading. ;-) Wouldn't it be cool to just say: Local a:TRational, b:TRational, c:TRational a = Rational(1, 3) b = Rational(2, 5) c = a * b But this is just a wish… unlikely that Mark does something like that. | 
| 
 | ||
|   Wouldn't it be cool to just say:  Yes, it would... which is how it works in C++, and as such in the wrapper : 
boost::rational<int> * bmx_rational_multiplyr(boost::rational<int> * rat, boost::rational<int> * value) {
	boost::rational<int> * r = new boost::rational<int>();
	*r = *rat * *value;
	return r;
}
Unfortunately, we have to live with what BlitzMax allows us to do...   Didn't that already exists as one of your modules?  It's been in SVN for a while, but unreleased. | 
| 
 | ||
| yes please more maths brucey! | 
| 
 | ||
|  yes please more maths brucey!   I imagine this stuff would be up your alley... which is implemented in BaH.MathToolkit. I'm always on the lookout for other interesting (non-GPL) libraries... :-) |