Files Classes Functions Hierarchy
00001 #ifndef BINOPPROPERTIES_H 00002 #define BINOPPROPERTIES_H 00003 00004 #include <cassert> 00005 using namespace std; 00006 00007 #include <typedefs.h> 00008 00009 00036 class binopproperties 00037 { 00038 public: 00039 00042 binopproperties( uintc * mat_, uintc N_) 00043 : mat(mat_), N(N_) {} 00044 00046 uintc * mat; 00048 uintc N; 00049 00050 // Operations 00051 00053 uintc inverseright(bool & found, uintc i, uintc e) const; 00055 uintc inverseleft(bool & found, uintc k, uintc e) const; 00057 uintc identityfind(bool & found) const; 00059 uintc matik(uintc i, uintc k) const 00060 { assert(i<N); assert(k<N); return mat[i*N+k]; } 00061 00062 // Determine properties of Operator. 00063 00066 boolc isClosed() const; 00068 boolc isCommutative() const; 00070 boolc isAssociative() const; 00073 boolc isGroup() const; 00075 boolc isGroupAbelian() const; 00076 00077 00078 }; 00079 00080 #endif 00081 00082
1.5.8