14 std::vector<UnitCellCoord>
const &_ucc_permute)
15 : m_ucc_permute(_ucc_permute),
18 throw std::runtime_error(
19 std::string(
"Error in 'SymBasisPermute(const SymOp& op, const "
20 "StrucType& struc, double tol)'\n") +
21 " Could not get integer point transformation matrix.");
SymBasisPermute(SymOp const &_op, Lattice const &_lat, std::vector< UnitCellCoord > const &_ucc_permute)
Construct SymBasisPermute.
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
const matrix_type & matrix() const
Const access of entire cartesian symmetry matrix.
Eigen::Matrix3d cart2frac(const Eigen::Ref< const Eigen::Matrix3d > &cart_mat, const Lattice &lat)
Returns 'frac_mat' which is transformation of 'cart_mat' if cart_vec_after = cart_mat*cart_vec then f...
Eigen::CwiseUnaryOp< decltype(Local::lround_l< typename Derived::Scalar >), const Derived > lround(const Eigen::MatrixBase< Derived > &val)
Round Eigen::MatrixXd to Eigen::MatrixXl.
bool is_integer(const Eigen::MatrixBase< Derived > &M, double tol)
Check if Eigen::Matrix is integer.