linbox
1
|
#include <field-axpy.h>
Public Types | |
typedef Field::Element | Element |
Definition of element type. | |
Public Member Functions | |
FieldAXPY (const Field &F) | |
FieldAXPY (const FieldAXPY< Field > &faxpy) | |
FieldAXPY< Field > & | operator= (const FieldAXPY &faxpy) |
Element & | mulacc (const Element &a, const Element &x) |
Element & | get (Element &y) |
FieldAXPY & | assign (const Element y) |
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.
Constructor. A faxpy object if constructed from a Field and a field element. Copies of this objects are stored in the faxpy object.
F | field F in which arithmetic is done |
Assignment operator
faxpy |
Add a*x to y y += a*x.
a | constant reference to element a |
x | constant reference to element x |
Assign method. Stores new field element for arithmetic.
y_init | constant reference to element a |