Enumerate equivalent objects.
|
template<typename MakeInvariantSubgroup > |
| CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::EnumEquivalents (const ObjectType &generating_obj, SymOpIterator begin, SymOpIterator end, MakeInvariantSubgroup f=MakeInvariantSubgroup(), SymOpCompare compare=SymOpCompare()) |
| Constructor. More...
|
|
const ObjectType & | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::generator () const |
|
const SymOpType & | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::sym_op () const |
|
const std::vector< SymOpType > & | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::invariant_subgroup () const |
|
void | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::increment () override |
| Implement increment. More...
|
|
bool | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::_check (const SymOpType &X) const |
|
|
static const std::string | CASM::traits< EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare > >::name |
|
notstd::cloneable_ptr< ObjectType > | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_initial |
|
notstd::cloneable_ptr< ObjectType > | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_current |
|
SymOpIterator | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_symop_it |
|
SymOpIterator | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_symop_end |
|
std::vector< SymOpType > | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_invariant_subgroup |
|
SymOpCompare | CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_compare |
|
◆ _check()
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
bool CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::_check |
( |
const SymOpType & |
X | ) |
const |
|
inlineprivate |
Returns true for one element (the "minimum" SymOp) of the left cosets of the invariant subgroup
Definition at line 122 of file EnumEquivalents.hh.
◆ EnumEquivalents()
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
template<typename MakeInvariantSubgroup >
CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::EnumEquivalents |
( |
const ObjectType & |
generating_obj, |
|
|
SymOpIterator |
begin, |
|
|
SymOpIterator |
end, |
|
|
MakeInvariantSubgroup |
f = MakeInvariantSubgroup() , |
|
|
SymOpCompare |
compare = SymOpCompare() |
|
) |
| |
|
inline |
Constructor.
- Parameters
-
generating_obj | The object to enumerate equivalents of |
begin,end | A range of SymOpType |
f | A functor that outputs the subgroup of [begin,end) that leaves the generating_obj invariant |
Expected form for f:
template<typename SymOpIterator, typename SymOpOutputIterator>
SymOpOutputIterator f(
const ObjectType &generating_obj,
SymOpOutputIterator result);
Definition at line 65 of file EnumEquivalents.hh.
◆ generator()
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
const ObjectType& CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::generator |
( |
| ) |
const |
|
inline |
◆ increment()
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
|
inlineoverrideprivatevirtual |
◆ invariant_subgroup()
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
const std::vector<SymOpType>& CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::invariant_subgroup |
( |
| ) |
const |
|
inline |
◆ sym_op()
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
const SymOpType& CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::sym_op |
( |
| ) |
const |
|
inline |
◆ m_compare
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
◆ m_current
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
◆ m_initial
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
◆ m_invariant_subgroup
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
std::vector<SymOpType> CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_invariant_subgroup |
|
private |
◆ m_symop_end
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
◆ m_symop_it
template<typename ObjectType , typename SymOpIterator , typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
◆ name
template<typename ObjectType , typename SymOpIterator , typename SymOpType , typename SymOpCompare >