Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.
We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.
Thank you for your understanding.
I am using LAPACKE_chbevd to calculate the eigenvalues and eigenvectors of a matrix, but the results are incorrect.
LAPACKE_chbevd
From LAPACKE_chbevd:-11919.6, -8524.17, -6111.67, -2497.23, 2114.36, 3121.9, 9681.48, 14156.4
The correct eigenvalues should be approximately:
-0.0141504, -0.00595834, -0.0012536, 0.000805093, 0.00987138, 204.135, 7947.25, and 24044.7.
Could you help me verify this? Thank you.
#define N 8 lapack_complex_float h_cov_arm[N * N] = { {4140.65f, -2.24197e-06f}, {137.897f, 3938.01f}, {-158.647f, -1241.86f}, {-1936.52f, 2616.06f}, {-743.871f, 2664.88f}, {623.323f, -4050.98f}, {-1115.17f, 1268.56f}, {-1067.13f, 133.398f}, {137.897f, -3938.01f}, {4154.02f, 3.32665e-06f}, {-1563.14f, -967.872f}, {2961.04f, 2489.75f}, {3325.31f, 1229.58f}, {-3941.03f, -737.05f}, {1463.98f, 2163.99f}, {-995.137f, 1257.28f}, {-158.647f, 1241.86f}, {-1563.14f, 967.872f}, {3843.31f, -2.39818e-07f}, {-2763.36f, 255.503f}, {-2805.64f, 1415.83f}, {1326.26f, 228.303f}, {-3621.11f, -722.38f}, {584.441f, -3733.83f}, {-1936.52f, -2616.06f}, {2961.04f, -2489.75f}, {-2763.36f, -255.503f}, {4067.95f, -3.1887e-06f}, {3742.5f, -1311.93f}, {-2992.45f, 1599.3f}, {3214.86f, 1165.23f}, {-611.432f, 2481.71f}, {-743.871f, -2664.88f}, {3325.31f, -1229.58f}, {-2805.64f, -1415.83f}, {3742.5f, 1311.94f}, {4021.9f, -3.66673e-06f}, {-2973.91f, 342.678f}, {2854.54f, 2360.54f}, {-1725.97f, 2476.39f}, {623.323f, 4050.98f}, {-3941.03f, 737.05f}, {1326.26f, -228.303f}, {-2992.45f, -1599.3f}, {-2973.91f, -342.678f}, {4204.25f, 3.96076e-06f}, {-1613.83f, -1059.15f}, {-198.559f, -1266.46f}, {-1115.17f, -1268.56f}, {1463.98f, -2163.99f}, {-3621.11f, 722.38f}, {3214.86f, -1165.23f}, {2854.54f, -2360.54f}, {-1613.83f, 1059.15f}, {3900.07f, -1.04732e-06f}, {171.296f, 3648.69f}, {-1067.13f, -133.398f}, {-995.137f, -1257.28f}, {584.441f, 3733.84f}, {-611.432f, -2481.71f}, {-1725.97f, -2476.39f}, {-198.559f, 1266.46f}, {171.296f, -3648.69f}, {3863.89f, -2.28193e-06f} }; void ver_armpl(lapack_complex_float *cov_arm) { float w[N]; lapack_complex_float z[N*N]; armpl_int_t stat = LAPACKE_chbevd(LAPACK_ROW_MAJOR, 'V', 'U', N, N-1, cov_arm, N, w, z, N); std::cout << stat << std::endl; std::cout<<"LAPACK:"<<std::endl; for (int i=0;i<N;++i) { std::cout<<w[i]<<std::endl; } }
Hi Weiwei,If you have more questions related to the eigenvalue problem solver, or ArmPL in general, please contact us directly at support-hpc-sw@arm.com Best