Adding Generalized Eigenvalue functions to IT++

I have added a functions call to lapack DGGEV and ZGGEV functions to solve generalized eigenvalue problem. There are three files to modify: lapack.h, eigen.h, and eigen.cpp. The diff files can be obtained from this link.
To test the code, I ran an example for generalized complex eigenvalue problem found in the NAG site. The test [...]

Calling lapack functions from C++ codes

I have been using IT++ for my C++ class matrix and vectors. It is a great libraries. However, it lacks the function to solve generalized eigenvalue problem. so I need to link directly to lapack to do this. I follow the wrapper used in eigen.cpp to link to ZGGEV function of lapack. I tested the [...]

IT++ multiplication scalar and matrix

I got error when I tried to multiply a double with a complex matrix. It turns out because IT++ 4.0.6 only implement :
operator*(const double, const cmat)
So it gives error when do : (cmat*double)
To fix this, apply the patch below:
— itpp-4.0.6/itpp/base/operators.cpp 2008-10-08 19:52:24.000000000 +0800
+++ NumericalComputation/itpp-4.0.6/itpp/base/operators.cpp 2009-03-10 14:08:55.000000000 +0800
@@ -238,6 +238,7 @@
return temp;
}
+
cmat operator*(const [...]

Compiling IT++ with MKL library

I downloaded it++ 4.0.6 and tried to compile using MKL library. To do that, I need first to set the environment path
export LDFLAGS=-L/opt/intel/Compiler/11.0/081/mkl/lib/32/
export CPPFLAGS=-I/opt/intel/Compiler/11.0/081/mkl/include
and then I run the configure with this option
./configure –prefix=$HOME/local F77=gfortran –with-blas=”-lmkl_intel -lmkl_sequential -lmkl_core -lpthread” –with-lapack=”-lmkl_lapack”
With this settings configure can detect my MKL library
UPDATE: though it can detect MKL, but it gives [...]

Send/receive C++ vector using MPI

I am using IT++ for some of my code and I tried to parallelize it. It came to the point where I need to sum up all the vectors from all the process. So in MPI, I will need to use MPI_Reduce. My question is since IT++ vector is not an array, can we then [...]

C++ code using acos for complex number in IT++

I am currently trying out IT++ and so far it was great. It is as easy as Octave but written for C++ programming. One thing that I had trouble was that in my code I need to compute
complex acos(complex a)
However, it gives me error
for the function acos. It turns out acos for complex number was [...]