linbox  1
Public Member Functions | Protected Member Functions
RandIterAbstract Class Reference

#include <abstract.h>

Inheritance diagram for RandIterAbstract:
RandIterEnvelope< Field >

List of all members.

Public Member Functions

virtual RandIterAbstractconstruct (const FieldAbstract &F, const integer &size=0, const integer &seed=0) const =0
virtual RandIterAbstractclone (void) const =0
virtual RandIterAbstractoperator= (const RandIterAbstract &x)=0
virtual ~RandIterAbstract (void)
virtual Elementrandom (Element &a) const =0

Protected Member Functions

 RandIterAbstract (void)

Detailed Description

Random field element generator. This encapsulated class is a generator of random field elements for the encapsulating field. It is required to contain constructors from a field object and two integers. The first integer being a cardinality of a set to draw the random elements from, and the second being a seed for the random number generator. It is also required to contain a copy constructor, a destructor, and random() which acts on a reference to a field element. The random value is written to the argument and also returned as a reference.


Constructor & Destructor Documentation

virtual ~RandIterAbstract ( void  )
inlinevirtual

Destructor.

RandIterAbstract ( void  )
inlineprotected

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


Member Function Documentation

virtual RandIterAbstract* construct ( const FieldAbstract F,
const integer size = 0,
const integer seed = 0 
) const
pure virtual

Virtual constructor from field, sampling size, and seed. Required because constructors cannot be virtual. Passes construction on to derived classes. The random field element iterator works in the field F, is seeded by seed, and it returns any one element with probability no more than 1/min (size, F.cardinality (c)). A sampling size of zero means to sample from the entire field. A seed of zero means to use some arbitrary seed for the generator. Purely virtual.

Parameters:
FLinBox field archetype object in which to do arithmetic
sizeconstant integer reference of sample size from which to sample (default = 0)
seedconstant integer reference from which to seed random number generator (default = 0)

Implemented in RandIterEnvelope< Field >.

virtual RandIterAbstract* clone ( void  ) const
pure virtual

Virtual copy constructor. Required because constructors cannot be virtual. Passes construction on to derived classes. Purely virtual.

Returns:
pointer to new RandIterAbstract object in dynamic memory.

Implemented in RandIterEnvelope< Field >.

virtual RandIterAbstract& operator= ( const RandIterAbstract x)
pure virtual

Assignment operator. Purely virtual.

Parameters:
xconstant reference to RandIterAbstract object
Returns:
reference to self

Implemented in RandIterEnvelope< Field >.

virtual Element& random ( Element a) const
pure virtual

Random field element creator. Purely virtual.

Returns:
reference to ElementAbstract object

Implemented in RandIterEnvelope< Field >.


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