From: steve on
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
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
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
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
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