On Wed, 21 Nov 2007, David Mathog wrote:

Joe Landman <[EMAIL PROTECTED]> wrote:
There are a myriad
of ways to handle complex in C, but you can't easily write

        complex A,B,C,D

        A = B + C*D

with anything like the clarity of Fortran.

The reason it's clear is that + means addition, and * means
multiplication, exactly as you'd expect.

Of course, this is usually the time at which the C++ folks come out of
the background and start talking about objects, interfaces,
overloading, ...

Anyone ever debugged an overloaded operator?  It ain't fun, at any level.

Operator overloading reminds me of Bill Clinton's:
"It depends what the meaning of 'is' is."  If operator
overloading is used unwisely, so that the meaning of "+" is not just
"addition of this type of data", then pity the poor schmuck who has to
maintain the code.  Unfortunately you don't have to look far for
data types where there is no single operator overload mapping that
makes sense.  If A,B,C,D are 3D vectors then + has a single obvious
meaning, but * is ambiguous, is it a dot product or a cross product?

Unless, of course, one works in a graded (geometric) division algebra...
but yes, I agree.  And it isn't much harder to call csum(a,b,c) where
they are complex structs, or do whatever the GSL uses to accomplish the
same thing (I haven't used its complex arithmetic much).

That's the point where C++ overloading breaks down, at least for me,
and a function or #define is easier to work with, something like :

 A = B + CROSS_PRODUCT(C,D)

Ah but are A and B vectors or pseudovectors?  Just kidding...;-)

  rgb


Regards,

David Mathog
[EMAIL PROTECTED]
Manager, Sequence Analysis Facility, Biology Division, Caltech
_______________________________________________
Beowulf mailing list, [email protected]
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf


--
Robert G. Brown
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone(cell): 1-919-280-8443
Web: http://www.phy.duke.edu/~rgb
Lulu Bookstore: http://stores.lulu.com/store.php?fAcctID=877977
_______________________________________________
Beowulf mailing list, [email protected]
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf

Reply via email to