1 #ifndef UTIL_POINT_SYMMETRY_H 2 #define UTIL_POINT_SYMMETRY_H 4 #include <util/space/Dimension.h> 5 #include <util/containers/FMatrix.h> 60 int R(
int i,
int j)
const;
84 static bool hasIdentity_;
87 static void makeIdentity();
165 {
return !(A == B); }
184 if (!hasIdentity_) makeIdentity();
friend bool operator!=(const PointSymmetry &A, const PointSymmetry &B)
Are two PointSymmetry objects not equivalent?
PointSymmetry & operator=(const PointSymmetry &other)
Assignment operator.
friend PointSymmetry operator*(const PointSymmetry &A, const PointSymmetry &B)
Return the product A*B of two symmetry objects.
FMatrix< int, Dimension, Dimension > Matrix
Typedef for internal matrix.
static const PointSymmetry & identity()
Return the identity element.
PointSymmetry inverse() const
Return the inverse of this symmetry element.
Utility classes for scientific computation.
int & R(int i, int j)
Return an element of the matrix by reference.
PointSymmetry()
Default constructor.
friend std::ostream & operator<<(std::ostream &out, const PointSymmetry &A)
Output stream inserter for a PointSymmetry.
An IntVector is an integer Cartesian vector.
friend bool operator==(const PointSymmetry &A, const PointSymmetry &B)
Are two PointSymmetry objects equivalent?
A PointSymmetry represents a crystallographic point group symmetry.