I usually work with Python, but my basic knowledge of c++ allows me to switch when I need to increase the speed of my code.
Currently, I have a python script that (among other things) computes the mean and standard deviation of all principal minors (of a specified order) of a square matrix. Minors are determinants of submatrices (see Wikipedia for definition). Even a matrix with 30x30 entries has more than a billion different submatrices and thus more than a billion different minors. So even tiny time differences in the computation of minors matter a lot to me.
Python/NumPy uses LAPACK routines for creating submatrices and computing determinants. So I assumed that it would be best to use the same routines in c++. However, it seems that more experienced programmers tend to dissuade beginners from using the LAPACK library in c++ (see other question on stackexchange) and instead point to other packages, such as Armadillo or Eigen.
As far as I understand, Armadillo and Eigen are libraries that again rely on LAPACK, but I don't know if these libraries generate some kind of overhead that might slow things down.
So my question is: Should I expect that I pay for Armadillo's or Eigen's "beginner friendliness" with an increase in computation time (if compared to LAPACK)? If so, how much?