8 m_lat(lat), m_tol(_tol) {}
19 return (*
this)(op.
matrix());
34 for(
int i = 0; i < 3; i++) {
35 for(
int j = 0; j < 3; j++) {
36 tfrac_op(i, j) =
round(tfrac_op(i, j));
47 if(std::abs(tfrac_op.determinant()) != 1) {
51 return _check(tfrac_op.cast<
double>());
86 tMat = tMat * tMat.transpose();
SymOp sym_op() const
Return the SymOp, constructed from the map_error and cart_op stored after performing an equivalence c...
bool operator()(const Lattice &B) const
Is this lattice the same, even if they have different lattice vectors.
const Eigen::Matrix3d & lat_column_mat() const
3x3 matrix with lattice vectors as its columne
const matrix_type & matrix() const
Const access of entire cartesian symmetry matrix.
const Eigen::Matrix3d & inv_lat_column_mat() const
Inverse of Lattice::lat_column_mat() It is the transformation matrix 'C2F', such that f = C2F * c whe...
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
const Lattice & lat() const
const Eigen::Matrix3d & lat_column_mat() const
LatticeIsEquivalent(const Lattice &lat, double _tol=TOL)
bool _check(const Eigen::Matrix3d &tfrac_op) const
Find the effect of applying symmetry to the lattice vectors.
bool is_integer(const Eigen::MatrixBase< Derived > &M, double tol)
Check if Eigen::Matrix is integer.
double map_error() const
Return the mapping error, calculated after performing an equivalence check.
Eigen::Matrix3d m_cart_op
const Eigen::Matrix3d & inv_lat_column_mat() const
Eigen::Matrix3d cart_op() const
Return the cartesian SymOp matrix, stored after performing an equivalence check.
bool almost_equal(const GenericCluster< CoordType > &LHS, const GenericCluster< CoordType > &RHS, double tol)
bool is_unimodular(const Eigen::MatrixBase< Derived > &M, double tol)
Check if Eigen::Matrix is unimodular.