Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

ftwo.cpp

00001 #include "ftwo.H"
00002 using namespace std;
00003 
00004 F_2::F_2(){
00005   value= 0;
00006 }
00007 
00008 F_2::F_2(long n){
00009   value= n & 1;//n mod 2
00010 }
00011 
00012 
00013   // arithmetic
00014 F_2& F_2::operator+=(const F_2& that){
00015   value ^= that.value;
00016   return *this;
00017 }
00018 
00019 F_2 F_2::operator+(const F_2& that) const {
00020   return F_2( value ^ that.value );
00021 }
00022 
00023 F_2& F_2::operator-=(const F_2& that){
00024   value ^= that.value;
00025   return *this;
00026 }
00027 
00028 F_2 F_2::operator-(const F_2& that) const {
00029   return F_2( value ^ that.value );
00030 }
00031 
00032 
00033 F_2& F_2::operator*=(const F_2& that){
00034   value &= that.value;
00035   return *this;
00036 }
00037 
00038 F_2 F_2::operator*(const F_2& that) const {
00039   return F_2( value & that.value );
00040 }
00041 
00042 F_2& F_2::operator/=(const F_2& that){
00043   value &= that.value;
00044   return *this;
00045 }
00046 
00047 F_2 F_2::operator/(const F_2& that) const {
00048   return F_2( value & that.value );
00049 }
00050 
00051 
00052 F_2& F_2::operator-() {
00053   return *this;
00054 }
00055 
00056 F_2 F_2::operator-() const {
00057   return *this;
00058 }
00059 
00060 
00061 // comparison
00062 bool F_2::operator<(const F_2& that) const {
00063   return value < that.value;
00064 }
00065 
00066 bool F_2::operator==(const F_2& that) const {
00067   return value == that.value;
00068 }
00069 
00070 bool F_2::operator!=(const F_2& that) const {
00071   return value != that.value;
00072 }
00073 
00074   // printing
00075 ostream& operator<<(ostream& os, const F_2& x){
00076     
00077   os << x.value;
00078   return os;
00079 }
00080 
00081 ofstream& operator<<(ofstream& file, F_2& x){
00082 
00083   file << x.value;
00084   return file;
00085 }
00086 
00087 void operator>>(ifstream& file, F_2& x){
00088   bool val;
00089 
00090   file >> val;
00091   x.value= val;
00092 }
00093 
00094 
00095 
00096 
00097 
00098 F_2 operator+(long n, const F_2& x){
00099   return F_2(n ^ x.value);
00100 }
00101 
00102 
00103 F_2 operator-(long n, const F_2& x){
00104   return F_2(n ^ x.value);
00105 }
00106 
00107 F_2 operator*(long n, const F_2& x){
00108   return F_2(n & x.value);
00109 }
00110 
00111 F_2 operator/(long n, const F_2& x){
00112   return F_2(n & x.value);
00113 }
00114 
00115 
00116 
00117 
00118 
00119 
00120 
00121 
00122 
00123 
00124 

Generated on Wed Jun 18 17:22:41 2008 for Pierre Guillot by  doxygen 1.3.9.1