linbox
|
BLAS3 multiplication algorithms. More...
#include <vector>
#include "linbox/integer.h"
#include <givaro/extension.h>
#include <linbox/matrix/dense-matrix.h>
#include "linbox/algorithms/matrix-blas3/mul-toomcook.inl"
#include "linbox/algorithms/matrix-blas3/mul-naive.inl"
#include "linbox/algorithms/matrix-blas3/mul-cra.inl"
Data Structures | |
struct | naive |
Toom-Cook method. More... | |
Namespaces | |
LinBox | |
Namespace in which all linbox code resides. | |
LinBox::BLAS3::mulMethod | |
BLAS3 Multiplication methods. | |
Functions | |
template<class Zpz > | |
BlasMatrix< Zpz > & | ToomCook (BlasMatrix< Zpz > &TC, BlasMatrix< Zpz > &iTC) |
Build the Toom-Cook matrix helper. More... | |
template<class Zpz , class GFq > | |
std::vector< BlasMatrix< Zpz > > & | mul (std::vector< BlasMatrix< Zpz > > &C, const std::vector< BlasMatrix< Zpz > > &A, const std::vector< BlasMatrix< Zpz > > &B, const mulMethod::ToomCook< GFq > &T) |
Toom-Cook multiplication for GF(p^e) A matrix over GF(p^e) is represented by a polynomial of Z/pZ matrices. More... | |
template<class Zpz > | |
BlasMatrix< Givaro::Extension< Zpz > > & | mul (BlasMatrix< Givaro::Extension< Zpz > > &C, const BlasMatrix< Givaro::Extension< Zpz > > &A, const BlasMatrix< Givaro::Extension< Zpz > > &B, const mulMethod::ToomCook< Givaro::Extension< Zpz > > &T) |
Toom-Cook multiplication for GF(p^e) More... | |
template<class _anyMatrix , class _otherMatrix1 , class _otherMatrix2 > | |
_anyMatrix & | mul (_anyMatrix &C, const _otherMatrix1 &A, const _otherMatrix2 &B, const mulMethod::naive &) |
Triple loop ! just a simple triple loop. More... | |
BLAS3 multiplication algorithms.
BlasMatrix< Zpz > & ToomCook | ( | BlasMatrix< Zpz > & | TC, |
BlasMatrix< Zpz > & | iTC | ||
) |
Build the Toom-Cook matrix helper.
We only provide this function for dense matrices (Blas for the moment) over Z/pZ.
[out] | TC | matrix of Fp(i^j) |
[out] | iTC | inverse of TC |
TC
std::vector<BlasMatrix<Zpz> >& LinBox::BLAS3::mul | ( | std::vector< BlasMatrix< Zpz > > & | C, |
const std::vector< BlasMatrix< Zpz > > & | A, | ||
const std::vector< BlasMatrix< Zpz > > & | B, | ||
const mulMethod::ToomCook< GFq > & | T | ||
) |
Toom-Cook multiplication for GF(p^e) A matrix over GF(p^e) is represented by a polynomial of Z/pZ matrices.
Zpz | is some modular field, GFq is Givaro::Extension (or the like) |
[out] | C | result |
A | matrix | |
B | matrix |
BlasMatrix< Givaro::Extension< Zpz > > & mul | ( | BlasMatrix< Givaro::Extension< Zpz > > & | C, |
const BlasMatrix< Givaro::Extension< Zpz > > & | A, | ||
const BlasMatrix< Givaro::Extension< Zpz > > & | B, | ||
const mulMethod::ToomCook< Givaro::Extension< Zpz > > & | T | ||
) |
Toom-Cook multiplication for GF(p^e)
Zpz | is some modular field, GFq is Givaro::Extension (or the like) |
[out] | C | result |
A | matrix | |
B | matrix |
_anyMatrix & mul | ( | _anyMatrix & | C, |
const _otherMatrix1 & | A, | ||
const _otherMatrix2 & | B, | ||
const mulMethod::naive & | |||
) |
Triple loop ! just a simple triple loop.
[out] | C | result |
[in] | A | matrix |
[in] | B | matrix |