Compare blitz++, armadillo, boost::MultiArray

Short answer: ./configure CXX=icpc, found by reading the Blitz++ User’s Guide.

Long answer:

To compile blitz++ with intel c++ compiler, a file called bzconfig.h is required in blitz/intel/ folder. But there isn’t.

Yes and yes. Blitz++ is supposed to generate the file itself. According to the Blitz++ User’s Guide blitz.pdf included in blitz-0.10.tar.gz, section “Installation”,

Blitz++ uses GNU Autoconf, which handles rewriting Makefiles for various platforms and compilers.

More accurately, Blitz++ uses the GNU autotools tool chain (automake, autoconf, configure), which can generate makefiles, configure scripts, header files and more. The bzconfig.h files are supposed to be generated by the configure script, which comes with Blitz++, ready to use.

I just copy the one in blitz/ms/bzconfig.h in. That may give an non-optimal configuration.

If “non-optimal” means “non-working” to you, then yes. 🙂
You need an intel/bzconfig.h that accurately represents your compiler.

Anyone can tell me how to compile blitz++ with intel c++ compiler?

Read and follow the fine manual, in particular the section “Installation” mentioned above.

go into the ‘blitz-VERSION’ directory, and type:
./configure CXX=[compiler]
where [compiler] is one of xlc++, icpc, pathCC, xlC, cxx, aCC, CC, g++, KCC, pgCC or FCC.
(If you do not choose a C++ compiler, the configure script will attempt to find an appropriate compiler for the current platform.)

Have you done this? For the Intel compiler, you would need to use
./configure CXX=icpc.

In the manual, it said run bzconfig script to get the right bzconfig.h. But I don’t understand what it means.

I assume that by “it” you mean “that”. What do you mean by “manual”? My copy of the Blitz++ User’s Guide does not mention bzconfig. Are you sure that you are using the manual that corresponds to your Blitz++ version?

PS: Looking for “bzconfig” in the contents of blitz-0.10, it looks like “bzconfig” is no longer part of Blitz++, but used to be:

find . -name bzconfig -> No results

find . -print0 | xargs -0 grep -a -i -n -e bzconfig:

./blitz/compiler.h:44:    #error  In <blitz/config.h>: A working template implementation is required by Blitz++ (you may need to rerun the compiler/bzconfig script)

That needs to be updated.

./blitz/gnu/bzconfig.h:4:/* blitz/gnu/bzconfig.h. Generated automatically at end of configure. */
./configure.ac:159:# autoconf replacement of bzconfig

There you have it, these bzconfig.h files should be generated by configure.

./ChangeLog.1:1787: will now replace the old file that was generate with the bzconfig

That may be the change that switched to autoconf.

./INSTALL:107:  2. Go into the compiler subdirectory and run the bzconfig

That needs to be updated. Is this what made you look for bzconfig?

./README:27:compiler      Compiler tests (used with obsolete bzconfig script)  

Needs updating, a compiler directory is no longer included.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)