On 09/05/2012 10:29 PM, Ulrich Drepper wrote:
On Wed, Sep 5, 2012 at 6:34 PM, Ed Smith-Rowland <3dw4rd@verizon.net>
wrote:
I wrote some distributions a couple months back. I wrote them as
(name-uglified) extensions to libstdc++.
Here is the Rice distribution.
I never used this distribution myself but that doesn't mean anything.
A few nits:
- you should add __generate functions (see the current svn code)
Forgot about that. Fixed.
- in the operator function, did you consider using hypot? I'm not
sure it's necessary, the x and y numbers might not require it. hypot
is usually more accurate. The multiplications are throwing away a lot
of bits which the sqrt call might need.
Hypot is a good idea. I'm not worried about overflow heresuch as
student-t.
- the operator== has the bug which we fixed in the library. You
cannot define a template friend function in the template class
definition. Look at the current libstdc++ code. Likewise for the
other friend functions.
i think I got this right. Other distros have things as I have them here.
- how about moving the operator() code and perhaps even the operator==
code into random.tcc?
They are small. i left them where they wre but I could still move them.
- move the operator!= outside the class definition, just like for the
other classes
Done.
- with the definition being in ext/random, the test cases shouldn't
reference the non-existing rice_distribution.h header
I sent an old patch I guess. Fixed.