Re: PROFESSIONAL floating-point algorithms.

From: Edward G. Nilges (
Date: 01/05/04

Date: 4 Jan 2004 21:02:08 -0800

Willem <> wrote in message news:<>...
> Edward wrote:
> ) It is a common logic error in dysfunctional business organizations and
> ) proto-Fascist societies to believe that the reverse of a universal
> ) ...
> Didn't I just explain this to you elsethread ?
> You used the exact same fallacious logic to attack my point of view.
> Please pay attention, you're really making a fool of yourself here.

We'll see about that, dear chap.
> )> It is, in fact, stupid. Whilst I agree that it is easier to make a correct
> )> program fast than it is to make a fast program correct, that does not mean
> )> we are obliged to ignore all we know about good programming practice when
> )> writing the initial code.
> )>
> ) Again, your logic is completely fallacious because you caricature the
> ) reverse of a generalization as the reverse generalization.
> Now *every* point you disagree with is a reverse generalization ?
> I see no generalization in the point above. You seem to be suffering from
> dyslexia, if I were you I would go see a doctor.

I quote: "that does not mean we are obliged to ignore all we know
about good programming practice when writing the initial code."
Richard falsely represents the opposite case as ignoring ALL we know
and in quantificational logic this becomes:

     (x)[weKnow(x) -> ignore(x)]

This wasn't my claim which was instead

     (Ex)[weKnow(x) & ignore(x)]

which is the rapid prototyping and agile philosophy: ignore SOME
practices x.

In the original example, we might have a VB program for translation to
C, because we've been taken prisoner by Richard Heathfield and set to
this ridiculous job. To show the boss a prototype we might very well
rapidly prototype the initial version and transliterate

For intIndex1 = 1 To Len(strInstring)


for (intIndex1 = 0; intIndex1 < strlen(strInstring); intIndex1++) { }

We do this because Richard has threatened to take us out in back of
the chip shop and thrash us if we don't have a quick result. When we
show him the initial version we promise to create Beta 2.0 in the next
15 minutes and modify the For loops to

size_t sizLength = strlen(strInstring);
for (intIndex1 = 0; intIndex1 <= sizLength;; intIndex1++) { }

He then thrashes us anyway pour encourager and because he's off his
head, of course, for using Hungarian notation.

> ) However, we are familiar with the way the overdevelopment of coding
> ) skills can in fact hypertrophy skills in informal logic, along with a
> ) sense of proportion, a sense of humor, and emotional balance.
> Using pluralis majestatis, I see.. Or is this the bedside manner you
> picked up from the nurse that's been taking care of you ?
> In any case, I must say, this is a pretty good description of yourself.

You might improve your technical communication style to my level. For
example, note in the above how I always keep the discussion moving
forward by tight coupling of humor with instruction. I learned this as
a teacher, and the CIS director compared my teaching style to good
jazz which is able to keep the student's attention by driving forward
and inserting laughter and surprise. Your sour little attempts fall
flat by comparision.

White men can jump. Try it sometime.

> ) Any CPU that has a slow random access memory for any reason could make
> ) the first example fail in the sense of being not preferable to the
> ) second example.
> )
> ) This could be a CPU designed deliberately with slow RAM and a fast
> ) firmware search instruction or it could be a CPU that is needed but on
> ) point of failure such that RAM access is slow.
> There *cannot* be a CPU designed with slow RAM *and* a fast firmware search
> instruction. The search instruction itself has to access RAM, you see.

I SAID, idiota, that the CPU changes variables by executing IO
instructions to refresh the memory which is "read mostly". At the
level of the instruction to "scan for Nul" the search instruction
accesses RAM but by hardware or firmware which cannot be used by the

I SAID, idiota, that you cannot alter the read mostly memory save by
executing IO commands which are time-consuming.

Let me simplify things for you. The program is so large in relation to
the actual RAM of the chip, which runs on a toaster, or something,
that local variables can no longer be generated inside of procedures!
Boom: it becomes best practice to scan for a string, UNLESS large
amounts of inline code are generated, say by Richard's GNU C compiler,
by the which the solution is to turn inlining off.

People are claiming in this newsgroup to have actual experience with
small memories but I don't see it in your comments. In the past I have
written code at the threshold of memory limits and I also saw what
happens inside large programs (such as the IBM 1401 compiler I
describe in the IEEE journal) when some clown thinks memory is free,
and that he can insert a multiply/divide subroutine just anywhere.

> Also, I would like you to name one CPU that has a firmware search
> instruction that is as fast as reading one value for strings of 32 bytes or
> less. With documentation, of course.
Do your own homework. Furthermore, I've described the CPU such that it
could be simulated.
> SaSW, Willem