You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've encountered some compile errors while using the GenEigsComplexShiftSolver class in the Spectra library for complex eigenvalue analysis of complex matrices. The issues are as follows:
File: GenEigsComplexShiftSolver.h
Lines where the problem occurred: 81, 106, 107, 108, 116
Error: std::complex is being instantiated with std::complex types, which is recognized as an unsupported type according to the C++ standard.
It appears to me that the issue may be arising from certain parts of the complex matrix processing being handled as complex numbers when they should be treated as real numbers. In order to perform complex eigenvalue analysis for complex matrices, it might be necessary to correctly distinguish between real and complex numbers in these sections.
Here was the code I used and the error/warning messages in visual studio 2022 against success in building.
C2676 Binary '>': '_Ty' does not define this operator or a conversion to a type acceptable to the predefined operator.
\include\Spectra\GenEigsComplexShiftSolver.h Line: 116
C4996 'std::complex<std::complex>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. \include\Spectra\GenEigsComplexShiftSolver.h 81
C4996 'std::complex<std::complex>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. \include\Spectra\GenEigsComplexShiftSolver.h 106
C4996 'std::complex<std::complex>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. \include\Spectra\GenEigsComplexShiftSolver.h 107
C4996 'std::complex<std::complex>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. \include\Spectra\GenEigsComplexShiftSolver.h 108
The text was updated successfully, but these errors were encountered:
Hi @dsl2501, currently Spectra does not support complex-valued matrices. The GenEigsComplexShiftSolver solver uses a complex-valued shift, but the matrix itself is real-valued.
I was trying to follow the Hermitian matrix job, Krylov-Schur Solver, by dotnotlock of 2021 Oct. After reviewing his approach in closed session #130 and files and lines of #132, I am aware of no completion of that job (symmetric complex-valued sparse Hermitian matrix) too.
As I am keenly interested in non-Hermitian sparse matrix exgendecomposition for the larger eigenvalues with huge matrices, I
wishes best for your and this community's implementation of this issue.
I've encountered some compile errors while using the GenEigsComplexShiftSolver class in the Spectra library for complex eigenvalue analysis of complex matrices. The issues are as follows:
File: GenEigsComplexShiftSolver.h
Lines where the problem occurred: 81, 106, 107, 108, 116
Error: std::complex is being instantiated with std::complex types, which is recognized as an unsupported type according to the C++ standard.
It appears to me that the issue may be arising from certain parts of the complex matrix processing being handled as complex numbers when they should be treated as real numbers. In order to perform complex eigenvalue analysis for complex matrices, it might be necessary to correctly distinguish between real and complex numbers in these sections.
Here was the code I used and the error/warning messages in visual studio 2022 against success in building.
#include <Eigen/Core>
#include <Eigen/Dense>
#include <Spectra/GenEigsComplexShiftSolver.h>
#include <Spectra/MatOp/DenseGenComplexShiftSolve.h>
#include
#include
int main() {
const int size = 4096;
std::default_random_engine generator;
std::uniform_real_distribution distribution(0.0, 1.0);
}
Error/warning messages
C2676 Binary '>': '_Ty' does not define this operator or a conversion to a type acceptable to the predefined operator.
\include\Spectra\GenEigsComplexShiftSolver.h Line: 116
C4996 'std::complex<std::complex>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. \include\Spectra\GenEigsComplexShiftSolver.h 81
C4996 'std::complex<std::complex>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. \include\Spectra\GenEigsComplexShiftSolver.h 106
C4996 'std::complex<std::complex>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. \include\Spectra\GenEigsComplexShiftSolver.h 107
C4996 'std::complex<std::complex>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. \include\Spectra\GenEigsComplexShiftSolver.h 108
The text was updated successfully, but these errors were encountered: