#include <abstract.h>
Inheritance diagram for RingAbstract:
If a template is instantiated on the ring archetype, we can change the ring it is using by changing the derived class of this class. This allows us to change the ring used in a template without having to reinstantiate it. This minimizes code bloat, but it also introduces indirection through the use of pointers and virtual functions which is inefficient.
Object Management | |
There are no public constructors for this class. It should only be used in tandem with \Ref{FieldArchetype}. | |
virtual | ~RingAbstract (void) |
virtual bool | isUnit (const Element &x) const=0 |
virtual bool | isZeroDivisor (const Element &x) const=0 |
class | RingArchetype |
FieldArchetype is friend. | |
Public Types | |
typedef FieldAbstract::Element | Element |
element type. | |
typedef FieldAbstract::RandIter | RandIter |
Random iterator generator type. |
|
element type.
Reimplemented from FieldAbstract. Reimplemented in RingEnvelope. |
|
Random iterator generator type.
Reimplemented from FieldAbstract. Reimplemented in RingEnvelope. |
|
Destructor. Required because of virtual member functions. Virtual. |
|
Invertibility test. Test if ring element is invertible. This function assumes the ring element has already been constructed and initialized. Purely virtual.
|
|
Divisibility of zero test. Test if ring element is a zero divisor. This function assumes the ring element has already been constructed and initialized. Purely virtual.
|
|
FieldArchetype is friend.
|