From: steve on 27 Feb 2010 17:36 On Feb 27, 1:06 pm, nos...(a)see.signature (Richard Maine) wrote: > Richard Maine <nos...(a)see.signature> wrote: > > steve <kar...(a)comcast.net> wrote: > > > > Well, it was impossible to implement general purpose special > > > functions in Fortran until the IEEE 754 intrinsic module was > > > standardized. > > > "Impossible" seems like a bit of an overstatement, particularly insomuch > > as I'm sure counterexamples exist. Not that I'm going to bother to > > search for suitable citations of such counterexamples. > > After saying I wasn't going to :-) See > <http://jin.ece.uiuc.edu/routines/routines.html> > which happens to be the second hit (after the wikipedia definition) when > I Google "special function." I do not vouch for the accuracy, > efficiency, or anything else of those particular implementations; I > didn't bother to research that. If you want to start quibbling about > such things, that would be a different topic from the above overly broad > claim, which is unqualified with any such conditions. They are certainly > sufficient as an existance proof by example. Apparently, you and I have a different concepts of what "general purpose" means. I guess you can declare that your general purpose routine don't handle subnormal numbers, Inf, and NaN. That doesn't seem too general. If you're not concerned about accuracy, then I guess I can claim I've implemented every special function ever written down or that will be written. My implementation returns '42' for all possible input. It's not very accurate in some cases, but it's an implementation. BTW, you may want to run the code you found ftnchek. With over 2000 warning about "comparison mixes terms of different precision" and "promotion may not give desired precision", I wouldn't vouch for its accuracy either. PS: You might want to read the readme file. It contains this statement: 2) In the main programs that calculate a sequence of special functions, we usually set the maximum order or degree to 100 or 250. However, this is not a limit. To compute functions with a higher order or degree, all you need to do is simply set the dimension of proper arrays higher. Given that the Bessel function routines use backwards recursion and appear to do no rescaling, it may be quite easy to break this library by requesting a sequence with more that 620 or so terms. Hmmm, well a test of mcjynb.for won't allow one to compute j_650(z) for z = (2,0). One can at most compute j_120(z). Does that count as 'general purpose'? -- steve
From: Richard Maine on 27 Feb 2010 17:54 steve <kargls(a)comcast.net> wrote: > On Feb 27, 1:06 pm, nos...(a)see.signature (Richard Maine) wrote: > > Richard Maine <nos...(a)see.signature> wrote: > > > steve <kar...(a)comcast.net> wrote: > > > > > > Well, it was impossible to implement general purpose special > > > > functions in Fortran until the IEEE 754 intrinsic module was > > > > standardized. > > > > > "Impossible" seems like a bit of an overstatement, particularly insomuch > > > as I'm sure counterexamples exist. Not that I'm going to bother to > > > search for suitable citations of such counterexamples. > > > > After saying I wasn't going to :-) See > > <http://jin.ece.uiuc.edu/routines/routines.html> > > which happens to be the second hit (after the wikipedia definition) when > > I Google "special function." I do not vouch for the accuracy, > > efficiency, or anything else of those particular implementations; I > > didn't bother to research that. If you want to start quibbling about > > such things, that would be a different topic from the above overly broad > > claim, which is unqualified with any such conditions. They are certainly > > sufficient as an existance proof by example. > > Apparently, you and I have a different concepts of what "general > purpose" means. Yes, apparently. We also seem to have different concepts of what most of the other words in question mean. That includes "impossible" and "implementation." The cited routines are clearly not exercises in thumbing one's nose at legalistic loopholes to claim that returning the value 42 can count as an implementation. They are "serious" implementations. As Glen notes, there is a published book on them. As I said, I won't argue about the specifics of their quality. I haven't researched it and don't intend to. But if your definitions mean that things such as this don't count as implementations, then yes, we obviously don't have the same definitions. I suspect that mine are a lot closer to what most people would understand the words to mean. As far as I can tell, yours amounts to "nobody else can say whether something counts; they have to ask you whether it passes muster." Makes me wonder whether you think that any Fortran compilers exist. I could certainly come up with comparable definitions by which none do exist or ever have existed. -- Richard Maine | Good judgment comes from experience; email: last name at domain . net | experience comes from bad judgment. domain: summertriangle | -- Mark Twain
From: steve on 27 Feb 2010 18:21 On Feb 27, 2:54 pm, nos...(a)see.signature (Richard Maine) wrote: > steve <kar...(a)comcast.net> wrote: > > On Feb 27, 1:06 pm, nos...(a)see.signature (Richard Maine) wrote: > > > Richard Maine <nos...(a)see.signature> wrote: > > > > steve <kar...(a)comcast.net> wrote: > > > > > > Well, it was impossible to implement general purpose special > > > > > functions in Fortran until the IEEE 754 intrinsic module was > > > > > standardized. > > > > > "Impossible" seems like a bit of an overstatement, particularly insomuch > > > > as I'm sure counterexamples exist. Not that I'm going to bother to > > > > search for suitable citations of such counterexamples. > > > > After saying I wasn't going to :-) See > > > <http://jin.ece.uiuc.edu/routines/routines.html> > > > which happens to be the second hit (after the wikipedia definition) when > > > I Google "special function." I do not vouch for the accuracy, > > > efficiency, or anything else of those particular implementations; I > > > didn't bother to research that. If you want to start quibbling about > > > such things, that would be a different topic from the above overly broad > > > claim, which is unqualified with any such conditions. They are certainly > > > sufficient as an existance proof by example. > > > Apparently, you and I have a different concepts of what "general > > purpose" means. > > Yes, apparently. We also seem to have different concepts of what most of > the other words in question mean. That includes "impossible" and > "implementation." The cited routines are clearly not exercises in > thumbing one's nose at legalistic loopholes to claim that returning the > value 42 can count as an implementation. They are "serious" > implementations. As Glen notes, there is a published book on them. I'm sure the intend of the authors is a serious implementation. I claim that these are not general purpose routines due to the limitations imposed by the authors and imposed by language. -- steve
From: glen herrmannsfeldt on 27 Feb 2010 18:37 steve <kargls(a)comcast.net> wrote: (snip) > I'm sure the intend of the authors is a serious implementation. > I claim that these are not general purpose routines due to the > limitations imposed by the authors and imposed by language. The UW math library has the book and diskette. Also, it seems, UW has journals with reviews of the book. -- glen
From: steve on 27 Feb 2010 18:46
On Feb 27, 3:37 pm, glen herrmannsfeldt <g...(a)ugcs.caltech.edu> wrote: > steve <kar...(a)comcast.net> wrote: > > (snip) > > > I'm sure the intend of the authors is a serious implementation. > > I claim that these are not general purpose routines due to the > > limitations imposed by the authors and imposed by language. > > The UW math library has the book and diskette. Also, it seems, > UW has journals with reviews of the book. > I've read some of the code. -- steve |