/* version 2007.09.24, D. J. Bernstein; public domain */ #ifndef DAGBIT16_H #define DAGBIT16_H #include "dagbit.h" class dagbit8; class dagbit32; class dagbit16 { public: dagbit b[16]; dagbit16(); dagbit16(int); dagbit16(dagbit8); dagbit16(dagbit32); void key(long long,int); void input(long long,int); void output(long long); dagbit16& operator=(int); dagbit16& operator=(const dagbit8&); dagbit16& operator=(const dagbit16&); friend dagbit16 operator~(dagbit16); friend dagbit16 operator&(dagbit16,dagbit16); friend dagbit16 operator|(dagbit16,dagbit16); friend dagbit16 operator^(dagbit16,dagbit16); friend dagbit16 operator+(dagbit16,dagbit16); friend dagbit16 operator-(dagbit16,dagbit16); friend dagbit16 operator<<(dagbit16,int); friend dagbit16 operator>>(dagbit16,int); dagbit16& operator&=(const dagbit16 &x) { *this = *this & x; } dagbit16& operator|=(const dagbit16 &x) { *this = *this | x; } dagbit16& operator^=(const dagbit16 &x) { *this = *this ^ x; } dagbit16& operator+=(const dagbit16 &x) { *this = *this + x; } dagbit16& operator-=(const dagbit16 &x) { *this = *this - x; } dagbit16& operator<<=(int n) { *this = *this << n; } dagbit16& operator>>=(int n) { *this = *this >> n; } } ; #endif