T.R | Title | User | Personal Name | Date | Lines |
---|
1405.1 | I vote for FORTRAN, now | CIVAGE::LYNN | Lynn Yarbrough @WNP DTN 427-5663 | Tue Mar 26 1991 10:25 | 8 |
| Right at the moment I think the overwhelming choice is FORTRAN. My main
reason for saying this is that if you want to use the parallel/vector
capabilities of DEC systems right now, the FORTRAN/HPO compiler is the best
available tool to use.
There is also no compelling reason NOT to use FORTRAN in this problem space.
The CS features of more modern languages (recursion, dynamic storage
allocation, etc) are, for the most part, not needed.
|
1405.2 | | ALLVAX::JROTH | I know he moves along the piers | Tue Mar 26 1991 10:42 | 23 |
| FORTRAN has a big plus in my book because it has complex arithmetic
and there is a lot of high quality software already available.
Our FORTRAN generates code for H precision (if you need that),
and excellent vectorized code.
However, the lack of flexible data structures is a drawback
in FORTRAN - in particular we are increasingly seeing numerical
algorithms that require a sophistication beyond linear arrays,
equivalences, common blocks and non-recursive procedures. It can and is
still done the "old way", by simulating these things, but it is not very
good in this day and age.
C is a crock in some respects for numerical processing. You have
no complex arithmetic, no eponentiation operator, you have to play
games to pass conformant arrays, etc. (I have a bias to
languages that have complex because of my interest in electrical
engineering, doing time harmonic electromagnetic field calculations,
network analysis, physical calculations and so on. This is far easier
with a complex data type.) C++ addresses some of this.
I guess for hardcore number crunching, FORTRAN is still viable.
- Jim
|
1405.3 | | GUESS::DERAMO | Dan D'Eramo | Tue Mar 26 1991 12:42 | 4 |
| There's also LISP. It has complex numbers, arrays, etc.,
and I think it even does recursion. :-)
Dan
|
1405.4 | Fortran and the calling standard | CSSE::NEILSEN | Wally Neilsen-Steinhardt | Tue Mar 26 1991 13:32 | 18 |
| If your target is an operating system with a calling standard (like VMS), then
you can program in Fortran (being a little careful about your call inteface)
and be secure in the knowledge that programmers in other languages can call you.
Which brings me to my question on
.2> However, the lack of flexible data structures is a drawback
> in FORTRAN - in particular we are increasingly seeing numerical
> algorithms that require a sophistication beyond linear arrays,
> equivalences, common blocks and non-recursive procedures. It can and is
> still done the "old way", by simulating these things, but it is not very
> good in this day and age.
Are you saying that the algorithms themselves use complex data structures, as
opposed to applying algorithms to data embedded in complex structures?
Can you give an example or two? Things must have changed since I went to
school.
|
1405.5 | Another vote for FORTRAN (-77) | VMSDEV::HALLYB | The Smart Money was on Goliath | Tue Mar 26 1991 13:57 | 4 |
| > Can you give an example or two? Things must have changed since I went to
> school.
Yes. We have computers now. :-)
|
1405.6 | in-put | VICE::JANZEN | Tom 223-5140 MLO23-4/E10 | Mon Apr 08 1991 14:00 | 24 |
| What OS are you using?
Ada doesn't have double? What is double? G_Float and D_Float are
allowed. cf. VAX Ada Language Reference Manual 3.5.7a. It looks
like H float is allowed as well but that's just from skimming.
I have written packages for complex arithmetic and matrix operations
in Ada (cf. ada_toolshed) and it worked fine.
C++ allows overloading of operators. This would allow complex
numbers (once you wrote a library) to be added like
A = B + C.
How can you say C has no complex numbers? I have written a
library of complex arithmetic in VAXC and posted it somewhere.
I used it to make smith charts to analyze transmission lines.
But I couldn't overload operators; I had to use regular calls
(e.g. AddCD(A,B) for add complex to double).
Also I wrote a matrix ops library for VAXC.
C is flexible; you can buy or write your own libraries.
Also don't forget the language doesn't matter anyway because a
more complete librayr is now a product:
Digital Extended Math Library (DXML) for VMS (I saw it in Bookreader).
it does everything. Must have VMS 5.4, and a vector VAX helps
but is not necessary. Vector operation on a scalar VAX requires
VVIEF (Vector Instruction Emulator Facility).
It handles real, complex, scalar, vector, and matrix operations.
Tom
|