Hi,
I am trying to solve eigenvalue problem using zfeast_hcsrev routine, here is the excerpt from my code
MKL_INT fpm[128];
feastinit(fpm);
fpm[0] = 1;
fpm[1] = 20;
char uplo = 'U';
MKL_INT n = 85;
double emin = 11.4;
double emax = 12;
double epsout;
MKL_INT loop;
MKL_INT m0 = 20;
MKL_INT m;
double en[m0];
std::complex<double>* xeig = new complex<double>[nimbsize * m0];
double res[m0];
MKL_INT info;
zfeast_hcsrev(&uplo, &n, (const MKL_Complex16*) baseHamFull.mat, (const long long int*) baseHamFull.ia,
(const long long int*) baseHamFull.ja, fpm, &epsout, &loop, &emin, &emax,
&m0, en, (MKL_Complex16*) xeig, &m, res, &info);
And here is what I get:
Intel MKL Extended Eigensolvers: complex double precision driver
Intel MKL Extended Eigensolvers: List of input parameters fpm(1:64)-- if different from default
Intel MKL Extended Eigensolvers: fpm(1)=1
Intel MKL Extended Eigensolvers: fpm(2)=20
Search interval [1.140000000000000e+01;1.200000000000000e+01]
Intel MKL Extended Eigensolvers: Size subspace 20
#Loop | #Eig | Trace | Error-Trace | Max-Residual
Intel MKL Extended Eigensolvers WARNING: No eigenvalue has been found in the proposed search interval.
==>INFO code =: 1
Intel MKL Extended Eigensolvers WARNING: No eigenvalue has been found in the proposed search interval.
==>INFO code =: 1
1 0
You can see in the files the matrix which I have supplied in CSR format. I know that there are eigenvalues in this range, by solving with different library. Some of the eigenvalues are
11.8341 11.839 11.877 11.8801 11.8922 11.9136 11.9127 11.9215 11.929 11.9321 11.9489 11.9538 11.9518 11.9586 11.9678 11.9763 11.9837 11.9935 11.9974 12.0009
Can you say what I am doing wrong? Also in my problems usually I need lowest eigenvalues, but don't usually know the range where to look for them. Is there a way to implement this in Feast or not?
Thank you for your help.
Areg Ghazaryan