16 #ifndef BORNAGAIN_SAMPLE_LATTICE_ISELECTIONRULE_H
17 #define BORNAGAIN_SAMPLE_LATTICE_ISELECTIONRULE_H
51 : m_a(a), m_b(b), m_c(c), m_mod(modulus)
62 return (
m_a * coordinate[0] +
m_b * coordinate[1] +
m_c * coordinate[2]) %
m_mod == 0;
Defines basic vectors in Z^3, R^3, C^3.
Three-dimensional vector template, for use with integer, double, or complex components.
Abstract base class for selection rules.
virtual bool coordinateSelected(const ivector_t &coordinate) const =0
virtual ISelectionRule * clone() const =0
virtual ~ISelectionRule()
Selection rule (v*q)modulus!=0, defined by vector v(a,b,c) and modulus.
SimpleSelectionRule(int a, int b, int c, int modulus)
virtual SimpleSelectionRule * clone() const
virtual bool coordinateSelected(const ivector_t &coordinate) const
virtual ~SimpleSelectionRule()