3 #include "PointSymmetry.h" 5 #include <util/format/Int.h> 6 #include <util/space/IntVector.h> 13 PointSymmetry PointSymmetry::identity_;
14 bool PointSymmetry::hasIdentity_ =
false;
40 R_(i, j) = other.R_(i,j);
48 void PointSymmetry::makeIdentity()
54 identity_.R_(i, j) = 1;
56 identity_.R_(i, j) = 0;
71 C.R_(i, j) = R_(j, i);
86 R_(i, j) = other.R_(i,j);
101 if (A.R_(i, j) != B.R_(i,j)) {
120 C.R_(i, j) += A.R_(i, k)*B.R_(k, j);
137 U[i] += S.R_(i,j)*V[j];
153 U[i] += V[j]*S.R_(j,i);
167 out <<
Int(A.R_(i,j));
const int Dimension
Dimensionality of space.
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.
PointSymmetry inverse() const
Return the inverse of this symmetry element.
Utility classes for scientific computation.
Wrapper for an int, for formatted ostream output.
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.