std.rational?

H. S. Teoh hsteoh at quickfur.ath.cx
Fri Sep 27 08:16:50 PDT 2013


On Fri, Sep 27, 2013 at 03:47:20PM +0200, Joseph Rushton Wakeling wrote:
[...]
> I've made a fork <https://github.com/WebDrake/Rational> and tweaked
> the code to be in line with current D/Phobos style (David Simcha's
> last update is from over 2 years ago so it's out of date in that
> respect).  I did this manually, line by line, so I could have a
> proper read-through of the code.
> 
> On the basis of that read-through it looks pretty comprehensive and
> well-thought-out.  There are various workarounds for bugs which
> probably need to be re-examined depending on whether those bugs have
> been fixed or not.  In any case it compiles fine with current DMD,
> and the unittests are thorough and have 94% code coverage -- good
> job, David!
> 
> One thing I don't like: David uses "num" and "denom" for the public
> methods to get numerator and denominator.

For the record, I'm OK with it. I don't like "numerator" and
"denominator" as it's needlessly verbose. It's already clear what "num"
and "denom" mean in a rational number library, no need to spell it all
out.

But, others may have a different opinion on this. As far as the review
is concerned, I don't mind either way.


[...]
> Anyway, if anyone else wants to take a look through and give me any
> comments, they'd be welcome.

I'll see if I can take a look at it sometime -- no guarantees, though,
as I'm busy with other things these days.


> (Bearophile, I will add your requested Fraction, but I'd like to get
> more info on what everyone else thinks of the code as it is before
> making any additions:-)
[...]

Honestly, I don't think that's necessary. It's just a one-line alias,
trivial to add in user code. For Phobos code, I think writing
Rational!BigInt is better, to make it clear what underlying number type
is being used to instantiate the template.


T

-- 
One Word to write them all, One Access to find them, One Excel to count them all, And thus to Windows bind them. -- Mike Champion


More information about the Digitalmars-d mailing list