Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

FieldAXPY Class Template Reference

#include <field-axpy.h>

List of all members.


Detailed Description

template<class Field>
class LinBox::FieldAXPY< Field >

FieldAXPY object.

This class is used to wrap the operation y = y + a * x. It acts as an accumulator for y.

Through the use of template specialization, objects of this type can be used to speed up vector dot product operations. In particular, for finite fields, dividing by the modulus and taking the remainder is expensive. In many cases, this can be postponed until the end of the dot product operation, thus vastly improving performance.

This object is constructed from the field object F and a field element a which it stores and thus can use several times. The use of an object instead of a static variable to store the element a makes this method thread-safe.

Parameters:
Field  \Ref{LinBox} field


Public Types

typedef Field::Element Element
 Definition of element type.


Public Methods

 FieldAXPY (const Field &F)
 FieldAXPY (const FieldAXPY< Field > &faxpy)
FieldAXPY< Field > & operator= (const FieldAXPY &faxpy)
Elementmulacc (const Element &a, const Element &x)
Elementaccumulate (const Element &t)
Elementget (Element &y)
FieldAXPY & assign (const Element y)
void reset ()


Member Typedef Documentation

typedef Field::Element Element
 

Definition of element type.


Constructor & Destructor Documentation

FieldAXPY const Field   F [inline]
 

Constructor. A faxpy object if constructed from a Field and a field element. Copies of this objects are stored in the faxpy object.

Parameters:
F  field F in which arithmetic is done

FieldAXPY const FieldAXPY< Field > &    faxpy [inline]
 

Copy constructor.

Parameters:
faxpy 


Member Function Documentation

Element& accumulate const Element   t [inline]
 

FieldAXPY& assign const Element    y [inline]
 

Assign method. Stores new field element for arithmetic.

Returns:
reference to self
Parameters:
y_init  constant reference to element a

Element& get Element   y [inline]
 

Retrieve y

Performs the delayed modding out if necessary

Element& mulacc const Element   a,
const Element   x
[inline]
 

Add a*x to y y += a*x.

Parameters:
a  constant reference to element a
x  constant reference to element x

FieldAXPY<Field>& operator= const FieldAXPY< Field > &    faxpy [inline]
 

Assignment operator

Parameters:
faxpy 

void reset   [inline]
 


Generated on Mon Jun 20 09:16:52 2005 for linbox by doxygen1.2.18