Implementation of functions in math.h on clc-wiki

P

P.J. Plauger

If there is truly only one way to do something, we all agree (At least,
if i'm reading you correctly) that it's not copyrightable. What if there
are only two ways to do something? Are they both copyrightable? Is only
one? If there are more than two, are all but one copyrightable?

Looks like you're working toward a constructive definition of
copyrightability similar to Shannon's work on entropy in
information theory. The real world isn't so precise, since it's
determined by judges, lawyers, and jurors. If there's only two
ways to express something and two parties choose the same way,
the odds are 50/50 that neither party copied the other (or that
one did indeed do so). If there are twenty uncorrelated
decisions, however, and all come down the same way, the odds
are one in a million that the match is coincidental. You then
check to see which expression predated the other, then whether
the author of the later work had access to the earlier. etc. etc.
In short, copyrightable is a concept along the lines of portable;
it just ain't black and white.
.....
The question is whether the idea of "a function, whose first argument is
a pointer to double and whose second argument is int, returning int [0
if the double pointed at was zero, -1 if it is a normal number, -2 if it
is denormalized, 1 if it is infinite, 2 if it is not a number], and mod-
ifying the double pointed at, if normal or denormalized, such that it is
truncated to the number of bits right of the radix point specified in
the second argument" (this was intended to be an accurate and complete
description of your _Dint() function) is copyrightable.

No, that isn't the question at hand. Rather, you should ask, "if
only one implementation of a library has this set of functions,
including the rather unusual _Dint function, and the author of
this later work also makes use of such a function, and that author
had access to the earlier work -- and on top of everything else
you find great swatches of code practically indistinguishable --
what are the odds that the earlier expression was infringed?
"Copyrightability" is not a boolean, any more than "portability" is.
My description
of it may be, and your implementation is. But is the idea itself
copyrightable? Copyright law doesn't generally traffic in *ideas* - it's
like recipes - the set of steps themselves aren't copyrightable, only
the physical text of the recipe [the expression of those steps] is.

You're teaching your grandmother how to suck eggs.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
K

Keith Thompson

P.J. Plauger said:
Looks like you're working toward a constructive definition of
copyrightability similar to Shannon's work on entropy in
information theory. The real world isn't so precise, since it's
determined by judges, lawyers, and jurors. If there's only two
ways to express something and two parties choose the same way,
the odds are 50/50 that neither party copied the other (or that
one did indeed do so). If there are twenty uncorrelated
decisions, however, and all come down the same way, the odds
are one in a million that the match is coincidental. You then
check to see which expression predated the other, then whether
the author of the later work had access to the earlier. etc. etc.
In short, copyrightable is a concept along the lines of portable;
it just ain't black and white.

I fully agree that "it just ain't black and white", but I have to
disagree with your statement about probabilities.

If there are two equally likely ways to do something, that means that
two parties who do it independently have a 50% chance of doing it the
same way. It doesn't mean that, given that two parties have done it
the same way, there's a 50% probability that one copied the other.
That probability can only be computed given the a priori probability
that one would copy the other in the first place. For example, if the
two parties can be absolutely proven not to have had access to each
other's work, the probability that one copied the other is essentially
zero.

I'm not saying this has any real bearing on the particular case being
discussed here. I haven't commented on that because, though I own a
copy of _The Standard C Library_, I haven't taken the time to compare
it to the posted code.
 
J

Jordan Abel

If there is truly only one way to do something, we all agree (At least,
if i'm reading you correctly) that it's not copyrightable. What if there
are only two ways to do something? Are they both copyrightable? Is only
one? If there are more than two, are all but one copyrightable?

Looks like you're working toward a constructive definition of
copyrightability similar to Shannon's work on entropy in
information theory. The real world isn't so precise, since it's
determined by judges, lawyers, and jurors. If there's only two
ways to express something and two parties choose the same way,
the odds are 50/50 that neither party copied the other (or that
one did indeed do so). If there are twenty uncorrelated
decisions, however, and all come down the same way, the odds
are one in a million that the match is coincidental. You then
check to see which expression predated the other, then whether
the author of the later work had access to the earlier. etc. etc.
In short, copyrightable is a concept along the lines of portable;
it just ain't black and white.
.....
The question is whether the idea of "a function, whose first argument is
a pointer to double and whose second argument is int, returning int [0
if the double pointed at was zero, -1 if it is a normal number, -2 if it
is denormalized, 1 if it is infinite, 2 if it is not a number], and mod-
ifying the double pointed at, if normal or denormalized, such that it is
truncated to the number of bits right of the radix point specified in
the second argument" (this was intended to be an accurate and complete
description of your _Dint() function) is copyrightable.

No, that isn't the question at hand. Rather, you should ask, "if
only one implementation of a library has this set of functions,
including the rather unusual _Dint function, and the author of
this later work also makes use of such a function, and that author
had access to the earlier work

You just switched from infringement per se to evidence of infringement
to make that argument - some distinction without a difference that was.

I don't find it that unusual - the decimal equivalent is in IEEE
whatever-it-was, right? Decimal to binary isn't that much of a leap.

If I were implementing from scratch, I might write a function with
similar side-effects to your _Dint for normal arguments and use it in
combination with fpclassify to implement ceil.
 
P

P.J. Plauger

Shouldn't have let this one go by earlier:
[aside: given that the poem was written in 1920, it probably wasn't the
best example you might have used. But your point still stands, in
general]

I think it illustrates my overarching point beautifully -- that
the knowledge of copyright law among people who generate IP for
a living is spotty at best. You'll find that the copyrights on
Robert Frost's work are alive and earning money. Just try to
exploit his writings, even from 1920, without getting permission
from Henry Holt and Co. or Frost's estate. The law now says a
copyright extends for the life of the author plus 70 years.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
P

P.J. Plauger

I fully agree that "it just ain't black and white", but I have to
disagree with your statement about probabilities.

If there are two equally likely ways to do something, that means that
two parties who do it independently have a 50% chance of doing it the
same way. It doesn't mean that, given that two parties have done it
the same way, there's a 50% probability that one copied the other.
That probability can only be computed given the a priori probability
that one would copy the other in the first place. For example, if the
two parties can be absolutely proven not to have had access to each
other's work, the probability that one copied the other is essentially
zero.

Sorry, I was trying to be brief, at the risk of being imprecise. Yes,
to me one of the beauties of copyright law is that you have to show
that the alleged infringer had access to a prior work to be guilty
of copying it. That's why a clean room implementation is a priori
a defense against such accusations. Patents, regrettably, do not work
that way.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
J

Jordan Abel

Looks like you're working toward a constructive definition of
copyrightability similar to Shannon's work on entropy in information
theory. The real world isn't so precise, since it's determined by
judges, lawyers, and jurors. If there's only two ways to express
something and two parties choose the same way, the odds are 50/50 that
neither party copied the other (or that one did indeed do so). If
there are twenty uncorrelated decisions, however, and all come down
the same way, the odds are one in a million that the match is
coincidental. You then check to see which expression predated the
other, then whether the author of the later work had access to the
earlier. etc. etc. In short, copyrightable is a concept along the
lines of portable; it just ain't black and white.

OK. Say that one party admits to copying the other. So it _is_ black and
white whether the author of the later work copied the earlier work.
There is still the question of whether this constitutes infringement.
_That_ is what I mean when I talk about copyrightability.

A work, or a part of a work, either is elegible for copyright or it is
not. There's no "grey area status" for there to be a grey area as far as
I can tell, though there might be areas that still need to be examined
in a court of law. And there have been some bizarre decisions in the
past [e.g. fonts]
 
P

P.J. Plauger

I guess what I'm trying to get at is: at what point does a certain
author's presentation of say, the Pythagorean Theorem, become
copyrightable?

A common touchstone is to ask, "Do you have to say it exacty that
way?" If there's only one sensible way to say something, like x^2 +
y^2 = z^2, then there's very little protection in copyright law. But
if you take the road less traveled, as it were, you'd better not quote
much more than the cliched part of Robert Frost's great poem without
getting permission.

If there is truly only one way to do something, we all agree (At least,
if i'm reading you correctly) that it's not copyrightable. What if there
are only two ways to do something? Are they both copyrightable? Is only
one? If there are more than two, are all but one copyrightable?

Looks like you're working toward a constructive definition of
copyrightability similar to Shannon's work on entropy in
information theory. The real world isn't so precise, since it's
determined by judges, lawyers, and jurors. If there's only two
ways to express something and two parties choose the same way,
the odds are 50/50 that neither party copied the other (or that
one did indeed do so). If there are twenty uncorrelated
decisions, however, and all come down the same way, the odds
are one in a million that the match is coincidental. You then
check to see which expression predated the other, then whether
the author of the later work had access to the earlier. etc. etc.
In short, copyrightable is a concept along the lines of portable;
it just ain't black and white.
.....
The question is whether the idea of "a function, whose first argument is
a pointer to double and whose second argument is int, returning int [0
if the double pointed at was zero, -1 if it is a normal number, -2 if it
is denormalized, 1 if it is infinite, 2 if it is not a number], and mod-
ifying the double pointed at, if normal or denormalized, such that it is
truncated to the number of bits right of the radix point specified in
the second argument" (this was intended to be an accurate and complete
description of your _Dint() function) is copyrightable.

No, that isn't the question at hand. Rather, you should ask, "if
only one implementation of a library has this set of functions,
including the rather unusual _Dint function, and the author of
this later work also makes use of such a function, and that author
had access to the earlier work

You just switched from infringement per se to evidence of infringement
to make that argument - some distinction without a difference that was.

No, I switched *back* to reality. You introduced the concept of
"copyrightability" and I went along for the ride, at least for a
spell. Well guess what, "copyrightability" is the degenerate boolean
function "true". *Anybody* can fill out the proper form and send off
damn near any written expression (plus a few other things) and file
for a copyright. Even more strongly, *every* expression is born with
a copyright, which has some clout whether you register it or not.
So copyrightability doesn't mean squat. What matters is how *defensible*
a copyright is, and that's where you start talking about evidence.
(This is sounding more and more like the perennial debates about
portability that grace these electronic pages from time to time.)

And FWIW, I once got a judge to declare a copyright registration
null and void. Seems the guy just registered a whole slew of my
code claiming himself as joint author. Since I hadn't agreed to
that arrangement, his registration was fraudulent. But in a real
sense it didn't matter, because his copyright claim would have
held no water in any action he took against me or anybody else.
But for the sake of tidiness...
I don't find it that unusual - the decimal equivalent is in IEEE
whatever-it-was, right?

No. Just something loosely analogous. And about a quarter of a
century later, IIRC. And with quite a different name. etc. etc.
Decimal to binary isn't that much of a leap.

You're still shucking and jiving, IMO.
If I were implementing from scratch, I might write a function with
similar side-effects to your _Dint for normal arguments and use it in
combination with fpclassify to implement ceil.

You might indeed. One could then compare the two expressions to judge
the likelihood that the newer one infringes the older. But shucking
and jiving aside, most of the time infringement is pretty clear cut.
Either the copyist is just plain lazy and/or brazen, or s/he's
clueless about what constitutes infringement. It doesn't take a lot
of effort to distance a new expression from an older one enough to
avoid claims of infringement. In the case that started this thread,
you can see that effort expended in some places but not in others.

I'm still willing to bet on cluelessness in this particular matter,
at least until the author speaks for himself.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
J

Jordan Abel

Shouldn't have let this one go by earlier:
[aside: given that the poem was written in 1920, it probably wasn't the
best example you might have used. But your point still stands, in
general]

I think it illustrates my overarching point beautifully -- that
the knowledge of copyright law among people who generate IP for
a living is spotty at best. You'll find that the copyrights on
Robert Frost's work are alive and earning money. Just try to
exploit his writings, even from 1920, without getting permission
from Henry Holt and Co. or Frost's estate. The law now says a
copyright extends for the life of the author plus 70 years.

Key word - the law _now_ says that. That law does not apply to works
whose copyright term of 75 years had already expired before it was
passed in 1998.

Of course, Frost lived until 1963, so it's probable that he continued
writing and that those works from after 1923 are still under copyright.
 
P

P.J. Plauger

OK. Say that one party admits to copying the other. So it _is_ black and
white whether the author of the later work copied the earlier work.
There is still the question of whether this constitutes infringement.
_That_ is what I mean when I talk about copyrightability.

If he admits he copied, he infringed. How much *damage* that caused
the wounded party is the stuff of litigation.
A work, or a part of a work, either is elegible for copyright or it is
not.

Nope, it just *is*. See my earlier post.
There's no "grey area status" for there to be a grey area as far as
I can tell, though there might be areas that still need to be examined
in a court of law.

The grey areas have to do with the nature of infringement, and the
damage that it causes.
And there have been some bizarre decisions in the
past [e.g. fonts]

I agree that some past decisions are bizarre, and fonts are a particularly
sorry case. (You can copyright the *name* of a font, but not all the work
you put into drawing all those pretty letters.) But that's the law for
you -- a product of fallible humans wrought by contention. (Not unlike
software, and NASCAR victories.)

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
P

P.J. Plauger

Shouldn't have let this one go by earlier:
[aside: given that the poem was written in 1920, it probably wasn't the
best example you might have used. But your point still stands, in
general]

I think it illustrates my overarching point beautifully -- that
the knowledge of copyright law among people who generate IP for
a living is spotty at best. You'll find that the copyrights on
Robert Frost's work are alive and earning money. Just try to
exploit his writings, even from 1920, without getting permission
from Henry Holt and Co. or Frost's estate. The law now says a
copyright extends for the life of the author plus 70 years.

Key word - the law _now_ says that. That law does not apply to works
whose copyright term of 75 years had already expired before it was
passed in 1998.

Of course, Frost lived until 1963, so it's probable that he continued
writing and that those works from after 1923 are still under copyright.

It's more than probable, it's certain. Read what I said again. A
copyright extends for the *life of the author* plus 70 years. The
day Frost died in 1963 it was the life of the author plus 50 years.
Even without your keyword, his stuff is still covered.

And you once again underscore my point -- people who generate IP
for a living are way too ignorant of copyright law for their own
good (or mine, for that matter).

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
J

Jordan Abel

[sci.math dropped. comp.lang.c should probably also be dropped, but
then where could this conversation be continued?]

If he admits he copied, he infringed. How much *damage* that caused
the wounded party is the stuff of litigation.


Nope, it just *is*. See my earlier post.

http://www.copyright.gov/circs/circ1.html says:

Several categories of material are generally not eligible for
federal copyright protection. These include among others:

* Works that have not been fixed in a tangible form of expression
(for example, choreographic works that have not been notated or recor-
ded, or improvisational speeches or performances that have not been
written or recorded)

* Titles, names, short phrases, and slogans; familiar symbols or
designs; mere variations of typographic ornamentation, lettering, or
coloring; mere listings of ingredients or contents

* Ideas, procedures, methods, systems, processes, concepts,
principles, discoveries, or devices, as distinguished from a des-
cription, explanation, or illustration

* Works consisting entirely of information that is common property
and containing no original authorship (for example: standard cal-
endars, height and weight charts, tape measures and rulers, and
lists or tables taken from public documents or other common sources)

Also: Works by the U. S. Government are not eligible for U. S.
copyright protection.
There's no "grey area status" for there to be a grey area as
far as I can tell, though there might be areas that still need to
be examined in a court of law.

The grey areas have to do with the nature of infringement, and the
damage that it causes.
And there have been some bizarre
decisions in the past [e.g. fonts]

I agree that some past decisions are bizarre, and fonts are a particularly
sorry case. (You can copyright the *name* of a font, but not all the work
you put into drawing all those pretty letters.)

You can trademark the name. What you can copyright is the font file, and
the data that went into it [hinting and so on]. But I'm sure that's what
you meant. I do agree that this should not be the case, and it was
the result of an unfortunate misunderstanding which, I think, would
not have been made if the decision were being made now instead of in
1976.
 
J

Jordan Abel

[sci.math removed]
Shouldn't have let this one go by earlier:

[aside: given that the poem was written in 1920, it probably wasn't the
best example you might have used. But your point still stands, in
general]

I think it illustrates my overarching point beautifully -- that
the knowledge of copyright law among people who generate IP for
a living is spotty at best. You'll find that the copyrights on
Robert Frost's work are alive and earning money. Just try to
exploit his writings, even from 1920, without getting permission
from Henry Holt and Co. or Frost's estate. The law now says a
copyright extends for the life of the author plus 70 years.

Key word - the law _now_ says that. That law does not apply to works
whose copyright term of 75 years had already expired before it was
passed in 1998.

Of course, Frost lived until 1963, so it's probable that he continued
writing and that those works from after 1923 are still under copyright.

It's more than probable, it's certain. Read what I said again. A
copyright extends for the *life of the author* plus 70 years. The
day Frost died in 1963 it was the life of the author plus 50 years.

Was not. Copyright duration of life of the author plus 50 years was
defined in the Copyright Act of 1976, and did not apply to works
published before January 1st, 1978. Works published before January 1st,
1978 instead had their terms extended by 19 years to a total of 75.
Specifically, the length of the second term [that is, after renewal] was
extended from 28 to 47 years.
Even without your keyword, his stuff is still covered.

Not quite.
 
C

Christian Bau

"Rod Pemberton said:
So, one can use the exact same idea that you presented, as long as that
exact same idea is expressed in a completely different manner?

Copyright is about copying.

You can write anything you like, even if it ends up looking exactly the
same, but you cannot copy, and you cannot copy + modify, even if it
looks quite different afterwards.

The only importance of "looking the same" is that if two things are
looking the same, then it is much less likely that they have been
created independently.
 
A

A. Sinan Unur

But shucking and jiving aside, most of the time infringement is
pretty clear cut.

FWIW, I saw the OP before seeing your response to it. Having learned an
immense amount from your book (I think I bought it in 1997), having read
through the math.h chapter quite a few times, the first thought that
occurred to me when I saw the code posted on the wiki was "I wonder if
Plauger has given permission for his code to be used".

Sinan
 
R

Ronald Bruck

P.J. Plauger said:
At a quick glance, I'd say you're violating my copyright in the
most blatant and irresponsible manner. If the infringing stuff
isn't off the internet in short order, I will be taking legal
action.

I'm going back to your original response for my remarks and questions.

At first I thought, "Oh, this is like SCO's suit against IBM". I
wondered what could possibly be in math.h which isn't obvious. I even
wondered whether you were THE P. J. Plauger, or whether the post was a
forgery.

I glanced at a couple of functions from the library, and the
implementations seemed straightforward. I assumed the constants came
from the Remez algorithm, which any competent graduate student could
implement and apply--or, as you note in a later post, you can use
Maple; in any case, I don't consider these to be very secret or
private. Surely they should be regarded as derivative of others' work.
There is an enormous literature on implementing mathematical functions
to the minimum number of ulps, even in extra-high precision [e.g. David
Bailey, the Gnu Multi-Precision Library]. Most of the algorithmic
stuff is open-literature (implementations may be copyrighted, or more
usually "copylefted"), and are far deeper and more extensive than
anything I see in math.h. Such a literature is one of the advantages
of an academic establishment.)

But as the dialogue progressed, e.g. with _Dint, I began to realize
that some serious infringement HAD taken place. Now I begin to worry
about the SCO lawsuit; I surely hope Linus Torvalds documented his
work.

In particular, I was impressed by your defense of copyright as opposed
to software patents (which I have always found offensive--almost as
offensive as patenting sections of the human genome). I have no
argument that a small company like Dinkumware has to protect its
sources of revenue.

But as a mathematician and USER of software, I have to wonder what's
the point of isolating possible machine dependencies so precisely.
Every compiler I've ever used has come with its own math.h, and very
often I've adopted the chip maker's version to replace the standard
libraries (ESPECIALLY implementations of BLAS and LAPACK, which are
enormously more intricate). It's easy enough to write a script to
detect what platform the program is being compiled for, and to use
highly-optimized libraries for the particular platform.

So what would be the advantage, to me, of using Dinkumware's products?
Perhaps if I were a developer trying to get my product out on 18
different processors, I could see it; but even then, I'd HAVE to use a
compiler specific to each processor, and surely these will come with
their own libraries. Of course, these often have bugs (and the
perambulations in code necessary to circumvent bugs are notorious).

So I repeat, what's the point? (Understand, I've only ever developed
on the P4, the AMD64, and the PPC, so I may not fully appreciate the
difficulties.)

--Ron Bruck
 
J

jacob navia

Chip Eastham a écrit :
jacob said:
Gregory Pietsch a écrit :
I'm writing a portable implementation of the C standard library for
http://www.clc-wiki.net and I was wondering if someone could check the
functions in math.h for sanity/portability/whatever. I'm almost halfway
through writing the over 200 functions needed to implement C99's
version of math.h, and I would like to have some feedback and/or expert
advice on my implementations.

Sincerely, Gregory Pietsch

You write in math.h:

/* The <math.h> header shall provide for the following constants. The
values
are of type double and are accurate within the precision of the double
type.
*/

#define M_E (2.7182818284590452353602874713526624977572)
/* Value of e */
#define M_LOG2E (1.4426950408889634073599246810018921374266)
/* Value of log2e */

[snip]


#define M_SQRT1_2 (0.7071067811865475244008443621048490392848)
/* Value of 1/sqrt(2) */
---------------------------------------------------------------------



Hi, jacob:

You wrote (to complete the quoted material above):

Where do you have that from?

It is not in the C99 standard... Maybe in some other standard?


I have no idea how Gregory Pietsch went about preparing his math.h
or its "portable" implementation. The #define's above are consistent
with this math.h specification, copyright 1997 by The Open Group:

http://www.opengroup.org/onlinepubs/007908799/xsh/math.h.html

By C99 most writers seem to mean ISO/IEC 9899:1999 as amended
by a couple of corrections. See for example this page at gnu.org:

http://gcc.gnu.org/c99status.html

A rationale for the new standard and a copy of the working paper that
incorporates certain corrections are linked here:

http://www.open-std.org/JTC1/SC22/WG14/www/standards

This document has more than one hundred references to math.h,
many of them in Annex F on floating-point arithmetic.

Note copyrights in standards are often held by the bodies which
produce them. This is useful in maintaining the integrity of these
published works but often surprises those who expect "information
should be free".

For this reason there is an official policy that printed copies of ISO
(International Organization for Standardization) standards should be
obtained through ones national member organization, links to lists
of which are here:

http://www.iso.org/iso/en/aboutiso/isomembers/index.html

regards, chip

Thanks. I know now where they come from at least!
 
R

Rod Pemberton

P.J. Plauger said:
Yes. That is sufficient, if not always necessary. I think you're
accusing me of saying it's always absolutely necessary. There
are degrees of acceptable difference, depending on the uniqueness
of each part of the expression.


Do you have to call it _Dint? There's no standard that says such
a critter exists. Does the first argument have to be a pointer
to double, and the second argument a signed integer bit offset?
Nothing like that in Fortran, IIRC. Do the return values have to
be defined in <math.h> as:

#define FP_INFINITE 2
#define FP_NAN 1
#define FP_NORMAL (-1)
#define FP_SUBNORMAL (-2)
#define FP_ZERO 0

(which was on the internet until a few hours ago, placed there
by a guy who asserted, "I'm writing a portable implementation of
the C standard library")? You might compare to this excerpt from
my <ymath.h>:

#define _DENORM (-2) /* C9X only */
#define _FINITE (-1)
#define _INFCODE 1
#define _NANCODE 2

(A little creativity there, but not much.) And so on, and so on.
None of these things *have* to be that way to implement the
clever idea of a fraction stripping function. So if you see a
ceil function that depends critically on a function spelled
the same way as yours, with the same signature as yours, with
almost identically the same return codes as yours -- with, in
fact, practically the same token sequence as yours -- is this
merely *evidence* of the possibility of infringement or is this
frigging infringement? I'd trust my fate to a dozen jurors
with no programming knowledge, just common sense, on that one.

As I understand it, you're attempting to secure an exclusive right to
control all forms of expression of your idea which is illegal. For you,
"degrees of acceptable difference" seems to be the key. He had a few
"degrees" of acceptable difference, but that was apparently insufficient as
you noted. So, let's say he reimplements your idea, which you claim is
perfectly acceptable, with the changes you suggested. Is that sufficient
"degrees of acceptable difference?" Or, will there be another round of
"it's still to close to my expression!" At what point does *his* expression
of *your* idea, become *his* lawful expression without granting you total
control of your idea, but only control of your expression? It's clear his
expression can't just paraphrase your expression. It's clear his expression
can't mildly obfuscate your expression. With your suggestions, it's clear
his expression needs major to extreme obfuscation in the expression of your
idea. Or, it needs a completely new method of implementation. In which
case, it's no longer your idea, but his idea and, you've gained an exclusive
right to all implementations of the idea.
Bullshit.

Wether you believe me or not, I believe you have a software patent through
the use of a copyright. Copyright-misuse of this sort has resulted in
fortfeiture of copyright. I suspect you've never heard of copyright-misuse:
http://en.wikipedia.org/wiki/Copyright_misuse



Rod Pemberton
 
P

P.J. Plauger

As I understand it, you're attempting to secure an exclusive right to
control all forms of expression of your idea which is illegal.

Then you don't understand it properly.
For you,
"degrees of acceptable difference" seems to be the key.

It's a useful guideline, yes.
He had a few
"degrees" of acceptable difference, but that was apparently insufficient
as
you noted. So, let's say he reimplements your idea, which you claim is
perfectly acceptable, with the changes you suggested. Is that sufficient
"degrees of acceptable difference?"

Maybe. I have to see the final version, since at this point I question
the OP's ability to distinguish infringing from non-infringing derivation.
Or, will there be another round of
"it's still to close to my expression!" At what point does *his*
expression
of *your* idea, become *his* lawful expression without granting you total
control of your idea, but only control of your expression?

In the extreme case, when a court of law dismisses my case or finds
in his favor. Operationally, when I know I don't have a snowball's
chance in hell of prevailing in court. Practically, when I and a
couple of my friends think he's brought enough new to the party.
It's clear his
expression can't just paraphrase your expression. It's clear his
expression
can't mildly obfuscate your expression. With your suggestions, it's
clear
his expression needs major to extreme obfuscation in the expression of
your
idea.

Obfuscation is a poor tool for proving uniqueness of expression,
since it slows comprehension severely.
Or, it needs a completely new method of implementation. In which
case, it's no longer your idea, but his idea and, you've gained an
exclusive
right to all implementations of the idea.

My, you do have a twisty way of thinking, don't you? You left out about
half a dozen sane and practical steps in the middle there, in your
haste to reach the stratosphere.
Wether you believe me or not, I believe you have a software patent through
the use of a copyright. Copyright-misuse of this sort has resulted in
fortfeiture of copyright. I suspect you've never heard of
copyright-misuse:
http://en.wikipedia.org/wiki/Copyright_misuse

Stop hyperventilating.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
P

P.J. Plauger

P.J. Plauger said:
At a quick glance, I'd say you're violating my copyright in the
most blatant and irresponsible manner. If the infringing stuff
isn't off the internet in short order, I will be taking legal
action.

I'm going back to your original response for my remarks and questions.

At first I thought, "Oh, this is like SCO's suit against IBM". I
wondered what could possibly be in math.h which isn't obvious.
Wow.

I even
wondered whether you were THE P. J. Plauger, or whether the post was a
forgery.

I glanced at a couple of functions from the library, and the
implementations seemed straightforward. I assumed the constants came
from the Remez algorithm, which any competent graduate student could
implement and apply--or, as you note in a later post, you can use
Maple; in any case, I don't consider these to be very secret or
private. Surely they should be regarded as derivative of others' work.
There is an enormous literature on implementing mathematical functions
to the minimum number of ulps, even in extra-high precision [e.g. David
Bailey, the Gnu Multi-Precision Library]. Most of the algorithmic
stuff is open-literature (implementations may be copyrighted, or more
usually "copylefted"), and are far deeper and more extensive than
anything I see in math.h. Such a literature is one of the advantages
of an academic establishment.)

Us greedy capitalists read the literature too, y'know.
But as the dialogue progressed, e.g. with _Dint, I began to realize
that some serious infringement HAD taken place.
Thanks.

Now I begin to worry
about the SCO lawsuit; I surely hope Linus Torvalds documented his
work.

I think the issue is only loosely related, but what the hell, that's
his problem.
In particular, I was impressed by your defense of copyright as opposed
to software patents (which I have always found offensive--almost as
offensive as patenting sections of the human genome). I have no
argument that a small company like Dinkumware has to protect its
sources of revenue.

Thanks again.
But as a mathematician and USER of software, I have to wonder what's
the point of isolating possible machine dependencies so precisely.
Every compiler I've ever used has come with its own math.h, and very
often I've adopted the chip maker's version to replace the standard
libraries (ESPECIALLY implementations of BLAS and LAPACK, which are
enormously more intricate). It's easy enough to write a script to
detect what platform the program is being compiled for, and to use
highly-optimized libraries for the particular platform.

If the platform has them, perhaps.
So what would be the advantage, to me, of using Dinkumware's products?
Perhaps if I were a developer trying to get my product out on 18
different processors, I could see it; but even then, I'd HAVE to use a
compiler specific to each processor, and surely these will come with
their own libraries. Of course, these often have bugs (and the
perambulations in code necessary to circumvent bugs are notorious).

So I repeat, what's the point? (Understand, I've only ever developed
on the P4, the AMD64, and the PPC, so I may not fully appreciate the
difficulties.)

Evidently. You cited the most obvious -- bugs. We've developed what
I believe to be the best math testing harness in the business (and
in academia as well, from what I've seen so far). We've used it to
test all sorts of math libraries out there, and we've found all
sorts of problems. Don't get me wrong, the basic double math library
required by C89 is generally pretty good when you get it from the
likes of Microsoft, IBM, or Sun. But beyond that obvious quality
circle lies a mishmash. The evidence to date is that we test other
people's code way more than they do. That's particularly true of
open source. (It's a lot more fun to write new code and spread it
around the world with your name on it than it is to write tests
and run them.) We also use these tests to develop our own math
functions, of course, so we know they're good.

But if you don't care whether your math functions return correct
answers, it's fine to use whatever comes with your compiler.

Then there's the matter of completeness. We provide a complete
set of C99 math functions in all four IEEE precisions -- 24-bit,
53-bit, 64-bit, and 113-bit. Those compilers that pretend to
supply 24-bit float usually just wrap 53-bit double, so you get
no performance boost as you might expect. We've found a couple
of compilers that claim to support 64-bit long double, but
reliably deliver only 53-bit results. At the other extreme,
some 113-bit functions try way too hard, evidently because
their authors didn't know when to stop adding terms. We use
our tests to ensure a proper balance between accuracy and speed.

But if you're content to use just the C89 double math functions,
and you don't care about performance, you may not need anything
better.

What we offer, by contrast, is the assurance that you can use
our library on a variety of popular platforms, all the functions
you need are there, and they work right everywhere. To pull that
off we've had to be pretty inventive, over many years. You may
believe that the academic literature is a ready source of all
the information you need to knock out a decent math library,
but we know better. For one thing, it's still a big step from
most academic papers to good working code. For another, many
of the techniques we've tried from the literature over the past
several years have proved to be unstable, inaccurate, or simply
wrong.

We're just starting to build the competitive analysis part of
our web site to go with our new product launch. Soon you will
be able to see a few comparisons between our new library and
what comes with different compilers. And we'll provide a few
essays on the lesser known pitfalls of numerical computing.
Maybe then you'll see the point in licensing yet another
library when you already have one you've been using for years.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
J

Jordan Abel

Stop hyperventilating.

You _did_ suggest that you owned the idea of using a common function
with those particular side-effects and return values to implement a
floor and ceil function. Owning "ideas" is outside of copyright law. You
can own the specific token sequences implementing each function, but you
seem to think you own the idea of having a third function that works in
a particular way to do most of the work that is shared in common between
floor() and ceil(). (Note that even without this I don't dispute that
this was still infringement, but that it easily could have not been if
he'd implemented his own ceil(), even if he had still used a _Dint()
function.)

You said "some creativity, but not much", in comparing the #define's of
FP_* in his math.h vs your own differently-named constants internal to
_Dint. However, the token sequences "# define" and "( - 1 )" (etc)
clearly lack originality and are thus not copyrightable. The idea of
using -1 to represent normal, -2 to represent denormalised values, etc,
is an idea rather than an expression of an idea, and thus also not
copyrightable. What's left there? The names. Which he didn't use. I
think the basic disconnect here is that you do not understand the fact
that there do exist categories of works that are not eligible for
copyright protection.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,781
Messages
2,569,616
Members
45,306
Latest member
TeddyWeath

Latest Threads

Top