[Matrix-SIG] Re: blitz++ vs. NumPy?

John Turner turner@blueskystudios.com
Thu, 17 Dec 1998 10:51:58 -0500 (EST)


>>>>> "APM" == Andrew P Mullhaupt <amullhau@ix.netcom.com>
>>>>> "John" == John Turner <turner@blueskystudios.com>
>>>>> "PA" == Phil Austin <phil@geog.ubc.ca>

APM> Does Blitz++ support multidimensional arrays, etc.?

John> Yes.  It's almost as good as Fortran 9x that way.

PA> .. and that's essentially the design objective--Blitz makes 
PA> efficient F90 array operations available in C++.  

I understand that objective.  If forced to write something that needs
efficient array operations in C++, there's a good chance I would use
Blitz++.  But for such a project, given the choice I'd personally
rather use a language that had arrays as 1st-class objects and leave
these kinds of issues to the compiler writers.

Languages are tools.  Some are screwdrivers, some are pliers, some are 
swiss army knives.  They have different strengths and weaknesses.

However, to bring this somewhat back to NumPy relevance, a move to
Blitz++ may very well be the correct direction for NumPy.  It would
have advantages over the current situation, and I can't very well
argue for a move to a modern Fortran replacement for the current
LAPACK/BLAS base since:

o there's no free F9x compiler,
o there's no free F9x to C converter (that I know of), and
o many commercial F9x compilers are still immature

Though Blitz++ suffers from the immaturity of many commercial C++
compilers, too, my impression is that since there is communication
with egcs development there will continue to be a freely-available
compiler capable of building Blitz++ (even if sporadically).

PA> There is another expression-template style array class that
PA> provides many standard linear algebra operations:

That's the great thing about C++.  There are so many array classes to
choose from (A++/P++, MV++, TNT, etc. etc. etc.).

(Sorry.  I'm being a jerk.)

--
John A. Turner
Senior Research Associate, Blue Sky | VIFX
http://www.bluesky-vifx.com/
http://www.lanl.gov/home/turner/

"If your only tool is C++, everything starts to look like a thumb."