gemmi/symmetry.hpp file

Namespaces

namespace gemmi
namespace gemmi::impl
namespace std

Classes

struct gemmi::Op
struct gemmi::GroupOps
struct gemmi::GroupOps::Iter
struct gemmi::SpaceGroup
struct gemmi::SpaceGroupAltName
template<class Dummy>
struct gemmi::impl::Tables_
struct gemmi::ReciprocalAsuChecker
template<>
struct std::hash<gemmi::Op>

Enums

enum class CrystalSystem: unsigned char { Triclinic =0, Monoclinic, Orthorhombic, Tetragonal, Trigonal, Hexagonal, Cubic }
enum class PointGroup: unsigned char { C1 =0, Ci, C2, Cs, C2h, D2, C2v, D2h, C4, S4, C4h, D4, C4v, D2d, D4h, C3, C3i, D3, C3v, D3d, C6, C3h, C6h, D6, C6v, D3h, D6h, T, Th, O, Td, Oh }
enum class Laue: unsigned char { L1 =0, L2m, Lmmm, L4m, L4mmm, L3, L3m, L6m, L6mmm, Lm3, Lm3m }

Typedefs

using spacegroup_tables = impl::Tables_<void>

Functions

auto skip_blank(const char* p) -> const char*
auto operator==(const Op& a, const Op& b) -> bool
auto operator!=(const Op& a, const Op& b) -> bool
auto operator*(const Op& a, const Op& b) -> Op
auto operator*=(Op& a, const Op& b) -> Op&
auto parse_triplet_part(const std::string& s) -> std::array<int, 4>
auto parse_triplet(const std::string& s) -> Op
void append_small_number(std::string& s, int n)
void append_sign_of(std::string& s, int n)
void append_op_fraction(std::string& s, int w)
auto make_triplet_part(int x, int y, int z, int w, char style = 'x') -> std::string
auto centring_vectors(char lattice_symbol) -> std::vector<Op::Tran>
auto split_centering_vectors(const std::vector<Op>& ops) -> GroupOps
auto hall_rotation_z(int N) -> Op::Rot
auto hall_translation_from_symbol(char symbol) -> Op::Tran
auto hall_matrix_symbol(const char* start, const char* end, int pos, int& prev) -> Op
auto parse_hall_change_of_basis(const char* start, const char* end) -> Op
auto generators_from_hall(const char* hall) -> GroupOps
auto symops_from_hall(const char* hall) -> GroupOps
auto crystal_system_str(CrystalSystem system) -> const char*
auto point_group_hm(PointGroup pg) -> const char*
auto pointgroup_to_laue(PointGroup pg) -> Laue
auto laue_to_pointgroup(Laue laue) -> PointGroup
auto laue_class_str(Laue laue) -> const char*
auto crystal_system(Laue laue) -> CrystalSystem
auto crystal_system(PointGroup pg) -> CrystalSystem
auto point_group_index_and_category(int space_group_number) -> unsigned char
auto point_group(int space_group_number) -> PointGroup
auto is_sohncke(int space_group_number) -> bool
auto is_enantiomorphic(int space_group_number) -> bool
auto get_basisop(int basisop_idx) -> const char*
auto find_spacegroup_by_number(int ccp4) -> const SpaceGroup* noexcept
auto get_spacegroup_by_number(int ccp4) -> const SpaceGroup&
auto get_spacegroup_reference_setting(int number) -> const SpaceGroup&
auto find_spacegroup_by_name(std::string name, double alpha = 0., double gamma = 0.) -> const SpaceGroup* noexcept
auto get_spacegroup_by_name(const std::string& name) -> const SpaceGroup&
auto get_spacegroup_p1() -> const SpaceGroup&
auto find_spacegroup_by_ops(const GroupOps& gops) -> const SpaceGroup*
auto find_spacegroup_by_change_of_basis(const SpaceGroup* sg, const Op& cob) -> const SpaceGroup*