15#include <Eigen/Eigenvalues>
34 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, eOnStorageOrder>;
35using Matrix3d = Eigen::Matrix<double, 3, 3, eOnStorageOrder>;
36using Matrix4d = Eigen::Matrix<double, 4, 4, eOnStorageOrder>;
37using AtomMatrix = Eigen::Matrix<double, Eigen::Dynamic, 3, eOnStorageOrder>;
44using AtomMatrixF = Eigen::Matrix<double, 3, Eigen::Dynamic, Eigen::ColMajor>;
51 return Eigen::Map<const VectorXd>(a.data(), a.size())
52 .dot(Eigen::Map<const VectorXd>(b.data(), b.size()));
62 assert(flat_colmajor.size() >=
static_cast<size_t>(3 * nat));
63 return Eigen::Map<const AtomMatrix>(flat_colmajor.data(), nat, 3);
Eigen::Matrix< double, 3, 3, eOnStorageOrder > RotationMatrix
double matDot(const AtomMatrix &a, const AtomMatrix &b)
SIMD-optimized dot product for contiguous Eigen matrices.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, eOnStorageOrder > MatrixXd
Eigen::Matrix< double, 3, 3, eOnStorageOrder > Matrix3d
Eigen::Matrix< double, 4, 4, eOnStorageOrder > Matrix4d
Eigen::Matrix< double, 3, Eigen::Dynamic, Eigen::ColMajor > AtomMatrixF
constexpr int eOnStorageOrder
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
RAII resource manager for the ARTn C library with global synchronization.
AtomMatrix from_fortran_layout_vector(const std::vector< double > &flat_colmajor, int nat)
Reconstruct AtomMatrix from a flat column-major vector (e.g.