23 #include <boost/serialization/nvp.hpp> 24 #include <boost/function.hpp> 48 c_(key.c_), j_(key.j_) {
63 operator Key()
const {
return key(); }
66 void print(
const std::string&
s =
"")
const;
72 unsigned char chr()
const {
82 operator std::string()
const;
85 std::string
string()
const {
return std::string(*
this); };
89 return c_ < comp.
c_ || (comp.
c_ == c_ && j_ < comp.
j_);
94 return comp.
c_ == c_ && comp.
j_ == j_;
99 return comp == (
Key)(*
this);
104 return comp.
c_ != c_ || comp.
j_ != j_;
109 return comp != (
Key)(*
this);
117 static boost::function<bool(Key)> ChrTest(
unsigned char c);
120 GTSAM_EXPORT
friend std::ostream &
operator<<(std::ostream &,
const Symbol &);
125 friend class boost::serialization::access;
126 template<
class ARCHIVE>
128 ar & BOOST_SERIALIZATION_NVP(c_);
129 ar & BOOST_SERIALIZATION_NVP(j_);
142 namespace symbol_shorthand {
174 const unsigned char c_;
178 constexpr
unsigned char chr()
const {
return c_; }
void print(const Matrix &A, const string &s, ostream &stream)
Symbol operator()(const std::uint64_t j) const
std::ostream & operator<<(std::ostream &os, const Dih6 &m)
constexpr unsigned char chr() const
Concept check for values that can be used in unit tests.
bool operator<(const Symbol &comp) const
JacobiRotation< float > G
unsigned char chr() const
Rot2 R(Rot2::fromAngle(0.1))
bool operator==(const Symbol &comp) const
Symbol(unsigned char c, std::uint64_t j)
void serialize(ARCHIVE &ar, const unsigned int)
bool operator!=(const Symbol &comp) const
unsigned __int64 uint64_t
constexpr SymbolGenerator(const unsigned char c)
bool operator==(Key comp) const
Key symbol(unsigned char c, std::uint64_t j)
JacobiRotation< float > J
std::string string() const
Return string representation of the key.
Symbol(const Symbol &key)
bool operator!=(Key comp) const
unsigned char symbolChr(Key key)
std::uint64_t Key
Integer nonlinear key type.
std::uint64_t symbolIndex(Key key)
std::uint64_t index() const