linbox
Public Types
FieldAbstract Class Referenceabstract

field base class. More...

#include <abstract.h>

+ Inheritance diagram for FieldAbstract:

Public Types

typedef ElementAbstract Element
 element type.
 
typedef RandIterAbstract RandIter
 Random iterator generator type.
 

Object Management

There are no public constructors for this class.

It should only be used in tandem with FieldArchetype.

class FieldArchetype
 FieldArchetype is friend.
 
virtual ~FieldAbstract (void)
 Destructor. More...
 
virtual FieldAbstractclone () const =0
 Virtual copy constructor. More...
 
virtual FieldAbstractoperator= (const FieldAbstract &F)=0
 Assignment operator. More...
 
virtual Elementinit (Element &x, const integer &y) const =0
 Initialization of field element from an integer. More...
 
virtual integerconvert (integer &x, const Element &y) const =0
 Conversion of field element to an integer. More...
 
virtual integercardinality (integer &c) const =0
 Cardinality. More...
 
virtual integercharacteristic (integer &c) const =0
 Characteristic. More...
 
 FieldAbstract ()
 Default Constructor. More...
 

Detailed Description

field base class.

Found in the file

See also
{linbox/field/abstract.h}. Abstract base class used to implement the field archetype to minimize code bloat. All public member functions of this class are purely virtual and must be implemented by all derived classes.

If a template is instantiated on the field archetype, we can change the field it is using by changing the derived class of this class. This allows us to change the field 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.

Constructor & Destructor Documentation

◆ ~FieldAbstract()

virtual ~FieldAbstract ( void  )
inlinevirtual

Destructor.

Required because of virtual member functions. Virtual.

◆ FieldAbstract()

FieldAbstract ( )
inlineprotected

Default Constructor.

Required by derived classes, but protected because this class should never be constructed by itself.

Member Function Documentation

◆ clone()

virtual FieldAbstract* clone ( ) const
pure virtual

Virtual copy constructor.

Required because constructors cannot be virtual. Passes construction on to derived classes. Purely virtual. This function is not part of the common object interface.

Returns
pointer to new object in dynamic memory.

Implemented in RingEnvelope< Ring >, FieldEnvelope< Field >, and FieldEnvelope< Ring >.

◆ operator=()

virtual FieldAbstract& operator= ( const FieldAbstract F)
pure virtual

Assignment operator.

Purely virtual.

Returns
reference to self
Parameters
Fconstant reference to FieldAbstract object

Implemented in RingEnvelope< Ring >, FieldEnvelope< Field >, and FieldEnvelope< Ring >.

◆ init()

virtual Element& init ( Element x,
const integer y 
) const
pure virtual

Initialization of field element from an integer.

Behaves like C++ allocator construct. This function assumes the output field element x has already been constructed, but that it is not already initialized. Purely virtual.

Returns
reference to field element.
Parameters
xfield element to contain output (reference returned).
yinteger.

Implemented in FieldEnvelope< Field >, FieldEnvelope< Ring >, and RingEnvelope< Ring >.

◆ convert()

virtual integer& convert ( integer x,
const Element y 
) const
pure virtual

Conversion of field element to an integer.

This function assumes the output field element x has already been constructed, but that it is not already initialized. Purely virtual.

Returns
reference to integer.
Parameters
xreference to interger to contain output (reference returned).
yconstant field element.

Implemented in FieldEnvelope< Field >, FieldEnvelope< Ring >, and RingEnvelope< Ring >.

◆ cardinality()

virtual integer& cardinality ( integer c) const
pure virtual

Cardinality.

Return integer representing cardinality of the domain. Returns a non-negative integer for all domains with finite cardinality, and returns -1 to signify a domain of infinite cardinality. Purely virtual.

Returns
integer representing cardinality of the domain

Implemented in FieldEnvelope< Field >, FieldEnvelope< Ring >, and RingEnvelope< Ring >.

◆ characteristic()

virtual integer& characteristic ( integer c) const
pure virtual

Characteristic.

Return integer representing characteristic of the domain. Returns a positive integer to all domains with finite characteristic, and returns 0 to signify a domain of infinite characteristic. Purely virtual.

Returns
integer representing characteristic of the domain.

Implemented in FieldEnvelope< Field >, FieldEnvelope< Ring >, and RingEnvelope< Ring >.


The documentation for this class was generated from the following file: