Thread overview
DMD 0.136 release
Oct 17, 2005
Walter Bright
Oct 17, 2005
pragma
Oct 17, 2005
pragma
Oct 17, 2005
Walter Bright
Oct 20, 2005
Don Clugston
Oct 21, 2005
Walter Bright
Oct 21, 2005
Don Clugston
Oct 22, 2005
Ivan Senji
October 17, 2005
Bug fix rollup.

http://www.digitalmars.com/d/changelog.html


October 17, 2005
In article <divlv7$2o0g$1@digitaldaemon.com>, Walter Bright says...
>
>Bug fix rollup.
>
>http://www.digitalmars.com/d/changelog.html
>
>

/observes changelog

Walter, I certainly wouldn't want to be a cockroach in /your/ home.  Your bug-smashing capabilities are staggering.

I don't say this enough: Thanks for the update!

- Eric Anderton
October 17, 2005
In article <divlv7$2o0g$1@digitaldaemon.com>, Walter Bright says...
>
>Bug fix rollup.
>
>http://www.digitalmars.com/d/changelog.html
>
>

/observes changelog

Walter, I certainly wouldn't want to be a cockroach in /your/ home.  Your bug-smashing capabilities are staggering.

I don't say this enough: Thanks for the update!

- Eric Anderton
October 17, 2005
"pragma" <pragma_member@pathlink.com> wrote in message news:dj154q$111k$1@digitaldaemon.com...
> Walter, I certainly wouldn't want to be a cockroach in /your/ home.  Your bug-smashing capabilities are staggering.

LOL. I pay a monthly tribute to the Ant-Man, and he maintains the Line Of Death around the house.

> I don't say this enough: Thanks for the update!

You're welcome. Bugs bug me.


October 20, 2005
Walter Bright wrote:
> Bug fix rollup.
> 
> http://www.digitalmars.com/d/changelog.html
> 

Walter -

With lgamma and tgamma, something was lost in translation.
Both functions are returning incorrect values for small x.

Test program follows.
(Perhaps it would be worth having a seperate file including unit tests for all the built-in C functions).

Also, the changelog for 0.136 could mention that you added std.math.poly.
(which can now be commented out of std.math2, I don't know if having both polys included will cause problems?).

BTW, any chance of getting those asinh, acosh, atanh functions into std.math? If you like, I could make ddocs for them so that you could just paste them in.
If you did this, then std.math2 could be deprecated (now that poly() and trunc() are in std.math, the only things left in math2 are avg, sum, min, max, which should be templates anyway, and probably do not belong in std.math at all; and abs(), which is a trivial overload of fabs and iabs).

-Don.

=====================================================
import std.math;
import std.stdio;

real loggamma(real x) { return lgamma(x); }

unittest {

  // x, correct loggamma(x), correct d/dx loggamma(x).
  static real[] testpoints = [
    8.0L,                    8.525146484375L      + 1.48766904143001655310E-5,   2.01564147795560999654E0L,
	8.99993896484375e-1L,    6.6375732421875e-2L  + 5.11505711292524166220E-6L, -7.54938684259372234258E-1,
    7.31597900390625e-1L,    2.2369384765625e-1   + 5.21506341809849792422E-6L, -1.13355566660398608343E0L,
    2.31639862060546875e-1L, 1.3686676025390625L  + 1.12609441752996145670E-5L, -4.56670961813812679012E0,
    1.73162841796875L,      -8.88214111328125e-2L + 3.36207740803753034508E-6L, 2.33339034686200586920E-1L,
    1.23162841796875L,      -9.3902587890625e-2L  + 1.28765089229009648104E-5L, -2.49677345775751390414E-1L,
    7.3786976294838206464e19L,   3.301798506038663053312e21L - 1.656137564136932662487046269677E5L,
                          4.57477139169563904215E1L,
    1.08420217248550443401E-19L, 4.36682586669921875e1L + 1.37082843669932230418E-5L,
                         -9.22337203685477580858E18L,
//    1.0L, 0.0L, -5.77215664901532860607E-1L,
//    2.0L, 0.0L, 4.22784335098467139393E-1L,
    -0.5L,  1.2655029296875L    + 9.19379714539648894580E-6L, 3.64899739785765205590E-2L,
    -1.5L,  8.6004638671875e-1L + 6.28657731014510932682E-7L, 7.03156640645243187226E-1L,
    -2.5L, -5.6243896484375E-2L + 1.79986700949327405470E-7, 1.10315664064524318723E0L,
    -3.5L,  -1.30902099609375L  + 1.43111007079536392848E-5L, 1.38887092635952890151E0L
   ];
 	for (int i=0; i<testpoints.length; i+=3) {
	 assert( feqrel(loggamma(testpoints[i]), testpoints[i+1]) > real.mant_dig-5);
	 }
}

int main()
{
 return 0;
}

October 21, 2005
"Don Clugston" <dac@nospam.com.au> wrote in message news:dj7j0d$13h5$1@digitaldaemon.com...
> Walter Bright wrote:
> > Bug fix rollup.
> >
> > http://www.digitalmars.com/d/changelog.html
> >
>
> Walter -
>
> With lgamma and tgamma, something was lost in translation. Both functions are returning incorrect values for small x.

Aggh!

> Test program follows.
> (Perhaps it would be worth having a seperate file including unit tests
> for all the built-in C functions).
>
> Also, the changelog for 0.136 could mention that you added std.math.poly. (which can now be commented out of std.math2, I don't know if having both polys included will cause problems?).

No, it won't be a problem having both, as they have different mangled names.

> BTW, any chance of getting those asinh, acosh, atanh functions into std.math?

Absolutely. I haven't incorporated them yet due to sloth on my part.

> If you like, I could make ddocs for them so that you could just paste them in.

I can't pass up an offer like that!


> If you did this, then std.math2 could be deprecated (now that poly() and
> trunc() are in std.math, the only things left in math2 are avg, sum,
> min, max, which should be templates anyway, and probably do not belong
> in std.math at all; and abs(), which is a trivial overload of fabs and
> iabs).

I agree.

P.S. I also think I agree with your proposal to not allow floating promotions to complex.


October 21, 2005
Walter Bright wrote:
>>BTW, any chance of getting those asinh, acosh, atanh functions into
>>std.math?
> 
> Absolutely. I haven't incorporated them yet due to sloth on my part.
> 
>>If you like, I could make ddocs for them so that you could
>>just paste them in.
> 
> I can't pass up an offer like that!
> 
> 
>>If you did this, then std.math2 could be deprecated (now that poly() and
>>trunc() are in std.math, the only things left in math2 are avg, sum,
>>min, max, which should be templates anyway, and probably do not belong
>>in std.math at all; and abs(), which is a trivial overload of fabs and
>>iabs).
> 
> I agree.
> 
> P.S. I also think I agree with your proposal to not allow floating
> promotions to complex.

Fantastisch!
I've just set up a 'MathExtra' project on DSource, where I'm putting all the stuff I've ported from Cephes. It's getting far to big to post here.
Right now, it only has the first draft of the statistical stuff.
I'll include the hyp trig stuff there as well, and if those implicit conversions are removed, I can easily throw in complex trig. It should not take long to overtake C++ and C99 on mathematics.
October 22, 2005
Don Clugston wrote:
> If you did this, then std.math2 could be deprecated (now that poly() and trunc() are in std.math, the only things left in math2 are avg, sum, min, max, which should be templates anyway, and probably do not belong in std.math at all; and abs(), which is a trivial overload of fabs and iabs).
> 
> -Don.

Who ever writes these templates can they please accept T[] ... instead of T[] as argument please.