Main Page | Modules | Namespace List | Class Hierarchy | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

VectorDomain Class Template Reference

#include <vector-domain.h>

Inheritance diagram for VectorDomain:

DotProductDomain VectorDomainBase VectorDomainBase

template<class Field>
class LinBox::VectorDomain< Field >


Reordering and permutation operations

These routines provide support for swapping vectors and permuting their entries.

typedef std::pair< unsigned
int, unsigned int > 
Transposition
typedef std::vector< TranspositionPermutation
template<class Vector> void swap (Vector &v1, Vector &v2) const
template<class Vector, class Iterator> Vectorpermute (Vector &v, Iterator P_start, Iterator P_end) const

Public Types

typedef Field::Element Element

Public Member Functions

 VectorDomain (const VectorDomain &VD)
VectorDomainoperator= (const VectorDomain &VD)
const Fieldfield () const
Vector Domain
template<class Vector> std::ostream & write (std::ostream &os, const Vector &x) const
template<class Vector> std::istream & read (std::istream &is, Vector &x) const
Vector arithmetic operations
These routes are analogs of field arithmetic operations, but they take vectors of elements as input. Vector-vector dot product and vector-vector axpy are supported here.

template<class Vector1, class Vector2> Vector1 & copy (Vector1 &res, const Vector2 &v) const
template<class Vector1, class Vector2> Vector1 & copy (Vector1 &res, const Vector2 &v, size_t i, size_t len=0) const
template<class Vector1, class Vector2> bool areEqual (const Vector1 &v1, const Vector2 &v2) const
template<class Vector> bool isZero (const Vector &v) const
template<class Vector1, class Vector2> Elementdot (Element &res, const Vector1 &v1, const Vector2 &v2) const
template<class Vector1, class Vector2> Elementdotprod (Element &res, const Vector1 &v1, const Vector2 &v2) const
template<class Vector1, class Vector2, class Vector3> Vector1 & add (Vector1 &res, const Vector2 &y, const Vector3 &x) const
template<class Vector1, class Vector2> Vector1 & addin (Vector1 &y, const Vector2 &x) const
template<class Vector1, class Vector2, class Vector3> Vector1 & sub (Vector1 &res, const Vector2 &y, const Vector3 &x) const
template<class Vector1, class Vector2> Vector1 & subin (Vector1 &y, const Vector2 &x) const
template<class Vector1, class Vector2> Vector1 & neg (Vector1 &res, const Vector2 &x) const
template<class Vector> Vectornegin (Vector &y) const
template<class Vector1, class Vector2> Vector1 & mul (Vector1 &res, const Vector2 &x, const Element &a) const
template<class Vector> Vectormulin (Vector &x, const Element &a) const
template<class Vector1, class Vector2, class Vector3> Vector1 & axpy (Vector1 &res, const Element &a, const Vector2 &x, const Vector3 &y) const
template<class Vector1, class Vector2> Vector1 & axpyin (Vector1 &y, const Element &a, const Vector2 &x) const
Implementation-Specific Methods.
These methods are not required of all {LinBox Fields} and are included only for this implementation of the archetype.

 VectorDomain (const Field &F)

Protected Member Functions

template<class Vector> std::ostream & writeSpecialized (std::ostream &os, const Vector &x, VectorCategories::DenseVectorTag) const
template<class Vector> std::ostream & writeSpecialized (std::ostream &os, const Vector &x, VectorCategories::SparseSequenceVectorTag) const
template<class Vector> std::ostream & writeSpecialized (std::ostream &os, const Vector &x, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector> std::ostream & writeSpecialized (std::ostream &os, const Vector &x, VectorCategories::SparseParallelVectorTag) const
template<class Vector> std::istream & readSpecialized (std::istream &is, Vector &x, VectorCategories::DenseVectorTag) const
template<class Vector> std::istream & readSpecialized (std::istream &is, Vector &x, VectorCategories::SparseSequenceVectorTag) const
template<class Vector> std::istream & readSpecialized (std::istream &is, Vector &x, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector> std::istream & readSpecialized (std::istream &is, Vector &x, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseSequenceVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseAssociativeVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseParallelVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::DenseVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::DenseVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::DenseVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> bool areEqualSpecialized (const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector> bool isZeroSpecialized (const Vector &v, VectorCategories::DenseVectorTag) const
template<class Vector> bool isZeroSpecialized (const Vector &v, VectorCategories::SparseSequenceVectorTag) const
template<class Vector> bool isZeroSpecialized (const Vector &v, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector> bool isZeroSpecialized (const Vector &v, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseSequenceVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseAssociativeVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseParallelVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::DenseVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::DenseVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::DenseVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, size_t i, size_t len, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, size_t i, size_t len, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, size_t i, size_t len, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & copySpecialized (Vector1 &res, const Vector2 &v, size_t i, size_t len, VectorCategories::SparseParallelVectorTag) const
template<class Vector> VectorcopySpecialized (Vector &res, const Vector &v, size_t i, size_t len, VectorCategories::DenseVectorTag) const
template<class Vector> VectorcopySpecialized (Vector &res, const Vector &v, size_t i, size_t len, VectorCategories::SparseSequenceVectorTag) const
template<class Vector> VectorcopySpecialized (Vector &res, const Vector &v, size_t i, size_t len, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector> VectorcopySpecialized (Vector &res, const Vector &v, size_t i, size_t len, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseSequenceVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseAssociativeVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseParallelVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::DenseVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::DenseVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::DenseVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> ElementdotSpecialized (Element &res, const Vector1 &v1, const Vector2 &v2, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & addSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & addSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & addSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & addSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & addinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & addinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & addinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & addinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & subSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & subSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & subSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & subSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & subinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & subinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & subinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & subinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & negSpecialized (Vector1 &res, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & negSpecialized (Vector1 &res, const Vector2 &x, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & negSpecialized (Vector1 &res, const Vector2 &x, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & negSpecialized (Vector1 &res, const Vector2 &x, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector> VectorneginSpecialized (Vector &y, VectorCategories::DenseVectorTag) const
template<class Vector> VectorneginSpecialized (Vector &y, VectorCategories::SparseSequenceVectorTag) const
template<class Vector> VectorneginSpecialized (Vector &y, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector> VectorneginSpecialized (Vector &y, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & mulSpecialized (Vector1 &res, const Vector2 &x, const Element &a, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & mulSpecialized (Vector1 &res, const Vector2 &x, const Element &a, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & mulSpecialized (Vector1 &res, const Vector2 &x, const Element &a, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & mulSpecialized (Vector1 &res, const Vector2 &x, const Element &a, VectorCategories::SparseParallelVectorTag) const
template<class Vector> VectormulinSpecialized (Vector &x, const Element &a, VectorCategories::DenseVectorTag) const
template<class Vector> VectormulinSpecialized (Vector &x, const Element &a, VectorCategories::SparseSequenceVectorTag) const
template<class Vector> VectormulinSpecialized (Vector &x, const Element &a, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector> VectormulinSpecialized (Vector &x, const Element &a, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & axpySpecialized (Vector1 &res, const Vector2 &y, const Element &a, const Vector3 &x, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & axpySpecialized (Vector1 &res, const Vector2 &y, const Element &a, const Vector3 &x, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & axpySpecialized (Vector1 &res, const Vector2 &y, const Element &a, const Vector3 &x, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & axpySpecialized (Vector1 &res, const Vector2 &y, const Element &a, const Vector3 &x, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & axpyinSpecialized (Vector1 &y, const Element &a, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2> Vector1 & axpyinSpecialized (Vector1 &y, const Element &a, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & axpyinSpecialized (Vector1 &y, const Element &a, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & axpyinSpecialized (Vector1 &y, const Element &a, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2> Vector1 & axpyinSpecialized (Vector1 &y, const Element &a, const Vector2 &x, VectorCategories::SparseSequenceVectorTag, VectorCategories::SparseSequenceVectorTag) const
template<class Vector1, class Vector2> Vector1 & axpyinSpecialized (Vector1 &y, const Element &a, const Vector2 &x, VectorCategories::SparseAssociativeVectorTag, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector1, class Vector2> Vector1 & axpyinSpecialized (Vector1 &y, const Element &a, const Vector2 &x, VectorCategories::SparseParallelVectorTag, VectorCategories::SparseParallelVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & addSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & addSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & addSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & addSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2> Vector1 & addinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2> Vector1 & addinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & subSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::DenseVectorTag, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & subSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag, VectorCategories::DenseVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & subSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2, class Vector3> Vector1 & subSpecialized (Vector1 &res, const Vector2 &y, const Vector3 &x, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2> Vector1 & subinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2> Vector1 & subinSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2> Vector1 & negSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::DenseVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2> Vector1 & negSpecialized (Vector1 &y, const Vector2 &x, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector1, class Vector2> Vector1 & axpyinSpecialized (Vector1 &y, const Element &a, const Vector2 &x, VectorCategories::GenericVectorTag, VectorCategories::GenericVectorTag) const
template<class Vector> void swapSpecialized (Vector &v1, Vector &v2, VectorCategories::DenseVectorTag) const
template<class Vector> void swapSpecialized (Vector &v1, Vector &v2, VectorCategories::SparseSequenceVectorTag) const
template<class Vector> void swapSpecialized (Vector &v1, Vector &v2, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector> void swapSpecialized (Vector &v1, Vector &v2, VectorCategories::SparseParallelVectorTag) const
template<class Vector, class Iterator> VectorpermuteSpecialized (Vector &v, Iterator P_start, Iterator P_end, VectorCategories::DenseVectorTag) const
template<class Vector, class Iterator> VectorpermuteSpecialized (Vector &v, Iterator P_start, Iterator P_end, VectorCategories::SparseSequenceVectorTag) const
template<class Vector, class Iterator> VectorpermuteSpecialized (Vector &v, Iterator P_start, Iterator P_end, VectorCategories::SparseAssociativeVectorTag) const
template<class Vector, class Iterator> VectorpermuteSpecialized (Vector &v, Iterator P_start, Iterator P_end, VectorCategories::SparseParallelVectorTag) const

Member Typedef Documentation

typedef Field::Element Element
 

Reimplemented from DotProductDomain.

typedef std::pair<unsigned int, unsigned int> Transposition
 

Permutation

A permutation is represented as a vector of pairs, each pair representing a transposition.

typedef std::vector<Transposition> Permutation
 


Constructor & Destructor Documentation

VectorDomain const VectorDomain< Field > &  VD  )  [inline]
 

Copy constructor. Constructs VectorDomain object by copying the domain. This is required to allow matrix domain objects to be passed by value into functions.

Parameters:
MD VectorDomain object.

VectorDomain const Field F  )  [inline]
 

Construct from a field

Parameters:
F Field from which to construct


Member Function Documentation

VectorDomain& operator= const VectorDomain< Field > &  VD  )  [inline]
 

Assignment operator. Assigns VectorDomain object MD to field.

Parameters:
MD VectorDomain object.

const Field& field  )  const [inline]
 

Retrieve the underlying field Return a reference to the field that this matrix domain object uses

Returns:
reference to field

std::ostream& write std::ostream &  os,
const Vector x
const [inline]
 

Print vector of field elements. This function assumes the field element has already been constructed and initialized.

Returns:
output stream to which field element is written.
Parameters:
os output stream to which field element is written.
x field element.

std::istream& read std::istream &  is,
Vector x
const [inline]
 

Read vector of field elements. This function assumes the field element has already been constructed and initialized.

Returns:
input stream from which field element is read.
Parameters:
is input stream from which field element is read.
x field element.

Vector1& copy Vector1 &  res,
const Vector2 &  v
const [inline]
 

Vector copy Copy a vector to another vector, possibly converting to a different representation

Parameters:
res Output vector
v Input vector
Returns:
reference to output vector

Vector1& copy Vector1 &  res,
const Vector2 &  v,
size_t  i,
size_t  len = 0
const [inline]
 

Vector copy Copy a vector to a portion of another vector, possibly converting to a different representation

Parameters:
res Output vector
i Index to which to copy
len Length (in indices) of output vector to invalidate. If len == 0, then copy the whole vector v
v Input vector
Returns:
reference to output vector

bool areEqual const Vector1 &  v1,
const Vector2 &  v2
const [inline]
 

Vector equality

Parameters:
v1 Input vector
v2 Input vector
Returns:
true if and only if the vectors v1 and v2 are equal

bool isZero const Vector v  )  const [inline]
 

Vector equality with zero

Parameters:
v Input vector
Returns:
true if and only if the vector v is zero

Element& dot Element res,
const Vector1 &  v1,
const Vector2 &  v2
const [inline]
 

Vector-vector dot product

Parameters:
res element into which to store result
v1 Input vector
v2 Input vector

Element& dotprod Element res,
const Vector1 &  v1,
const Vector2 &  v2
const [inline]
 

Vector1& add Vector1 &  res,
const Vector2 &  y,
const Vector3 &  x
const [inline]
 

Vector add res <- y + x

Parameters:
res Vector into which to store result
y Input vector y
x Input vector x

Vector1& addin Vector1 &  y,
const Vector2 &  x
const [inline]
 

Vector in-place add y <- y + x

Parameters:
y Input vector y; result is stored here
x Input vector x

Vector1& sub Vector1 &  res,
const Vector2 &  y,
const Vector3 &  x
const [inline]
 

Vector subtract res <- y - x

Parameters:
res Vector into which to store result
y Input vector y
x Input vector x

Vector1& subin Vector1 &  y,
const Vector2 &  x
const [inline]
 

Vector in-place subtract y <- y - x

Parameters:
y Input vector y; result is stored here
x Input vector x

Vector1& neg Vector1 &  res,
const Vector2 &  x
const [inline]
 

Vector negate res <- -x

Parameters:
res Vector into which to store result
x Input vector x

Vector& negin Vector y  )  const [inline]
 

Vector in-place negate y <- -y

Parameters:
y Input vector y; result is stored here

Vector1& mul Vector1 &  res,
const Vector2 &  x,
const Element a
const [inline]
 

Scalar-vector multiplication res <- a * x

Parameters:
res Vector into which to store result
x Input vector x
a Input element a

Vector& mulin Vector x,
const Element a
const [inline]
 

In-place scalar-vector multiplication x <- a * x

Parameters:
res Vector into which to store result
x Input vector x
a Input element a

Vector1& axpy Vector1 &  res,
const Element a,
const Vector2 &  x,
const Vector3 &  y
const [inline]
 

Vector axpy res <- y + a*x

Parameters:
res Vector into which to store result
a Scalar element a
x Input vector x
y Input vector y

Vector1& axpyin Vector1 &  y,
const Element a,
const Vector2 &  x
const [inline]
 

Vector in-place axpy y <- y + a*x

Parameters:
y Input vector y; result is stored here
a Scalar element a
x Input vector x

void swap Vector v1,
Vector v2
const [inline]
 

Swap the contents of the two given vectors.

Parameters:
v1 First vector
v2 Second vector

Vector& permute Vector v,
Iterator  P_start,
Iterator  P_end
const [inline]
 

Permute the entries of a given vector using the given permutation

Parameters:
v Vector to permute
P_start Iterator of the start of the permutation to apply
P_end Iterator of the end of the permutation to apply
Returns:
Reference to v