fix lapacke config

Reference issue

What does this implement/fix?

Include lapacke.h before ForwardDeclarations.h so that lapack_int can be defined consistently with the external lapack library. If MKL is used, we use their config file. Otherwise, we use the one included with Eigen (has include guard _LAPACKE_H_). Users may include an optional lapacke_config.h with HAVE_LAPACK_CONFIG_H to override the defaults.

Change lapacke.h to define (default) complex types as std::complex<float> , std::complex<double>. Add option to define lapack_int as int64_t with LAPACK_ILP64 switch (per https://netlib.org/lapack/lapacke_config.h). I specifically placed the macro guards in Core below #include <complex> so we don't need to worry about the complex headers being included.

Fix QR bindings to use std::complex instead of scomplex as those are specific to MKL and not Eigen in general.

Additional information

Edited by Charles Schlosser

Merge request reports

Loading