Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: Notesfiles; site ea.UUCP
Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!inuxc!pur-ee!uiucdcs!ea!mwm
From: mwm@ea.UUCP
Newsgroups: net.physics
Subject: Re: RE: Unix for physicists (attn:finn) - (nf)
Message-ID: <9900001@ea.UUCP>
Date: Thu, 14-Jun-84 17:51:00 EDT
Article-I.D.: ea.9900001
Posted: Thu Jun 14 17:51:00 1984
Date-Received: Fri, 22-Jun-84 04:04:45 EDT
References: <90@utastro.UUCP>
Lines: 48
Nf-ID: #R:utastro:-9000:ea:9900001:000:2054
Nf-From: ea!mwm    Jun 14 16:51:00 1984

#R:utastro:-9000:ea:9900001:000:2054
ea!mwm    Jun 14 16:51:00 1984

/***** ea:net.physics / astrovax!elt /  4:20 pm  Jun 12, 1984 */
The best solution, in my opinion, is to switch to C thus getting a good
compiler and a superior language;

Ed Turner
astrovax!elt
/* ---------- */

Switching to C for numerical calculations is the single *worst* thing I
could do. I'd rather use assembler. Not because I hate C, mind you, but
because C does two things that utterly ruin it for floating-point intensive
computations:

1) All floating point arithmetic in C is done in double precision.
	Whether you want it or not, and no matter how you declared it.
	Can you really afford to have the computation time of your
	code run twice as long as it used to?

2) C insists on being able to rearrange expressions, no matter how you
	parenthesize them. Hence, your (carefully arranged to avoid
	catastrophic subtraction) "(a - b) + c" could get compiled to
	"(a + c) - b", thus giving you spurious zeros that you wrote the
	code to avoid. Right on par with the interlemon giving
	2 ^ 16 * 1 = 0.

In addition, I would be surprised if *any* compiler using the pcc back end
could generate code that runs as fast as the code generated by the VMS
FORTRAN compiler.

I already sent mail on this, but running VMS in a number-crunching shop
(engineers, physicists, etc) has several advantages over Unix.  An on-line
help system. A good FORTRAN compiler. Manager-level control of the
environment that rivals the users control of the Unix environment.  Running
a VMS shop for that group is *much* easier than running a Unix shop for
them, especially if you don't have source to Unix.

Before you start asking what I'm doing on the net, I recommended to our
management that we run VMS. They chose Unix because a binary for it is
cheaper than a binary for VMS and a FORTRAN compiler. Ninety percent of the
trouble I've had running this system wouldn't have happened under VMS.  Of
course, I wouldn't have gotten all the neat toys to play with that come
with/for Unix (FP, Icon, CLU, Franz Lisp, etc.). I won some, me and my boss
lost some.