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.