linbox
|
Interface for all functionnalities provided for BlasMatrix. More...
#include <blas-domain.h>
Public Member Functions | |
BlasMatrixDomain (const Field &F) | |
Constructor of BlasDomain. | |
BlasMatrixDomain (const BlasMatrixDomain< Field > &BMD) | |
Copy constructor. | |
const Field & | field () const |
Field accessor. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | mul (Operand1 &C, const Operand2 &A, const Operand3 &B) const |
multiplication. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | add (Operand1 &C, const Operand2 &A, const Operand3 &B) const |
addition. | |
template<class Operand1 , class Operand2 > | |
Operand1 & | copy (Operand1 &B, const Operand2 &A) const |
copy. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | sub (Operand1 &C, const Operand2 &A, const Operand3 &B) const |
substraction C = A-B | |
template<class Operand1 , class Operand3 > | |
Operand1 & | subin (Operand1 &C, const Operand3 &B) const |
substraction (in place) C -= B | |
template<class Operand1 , class Operand3 > | |
Operand1 & | addin (Operand1 &C, const Operand3 &B) const |
addition (in place) C += B | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | mul (Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const |
multiplication with scaling. | |
template<class Operand1 , class Operand2 > | |
Operand1 & | mulin_left (Operand1 &A, const Operand2 &B) const |
In place multiplication. | |
template<class Operand1 , class Operand2 > | |
Operand2 & | mulin_right (const Operand1 &A, Operand2 &B) const |
In place multiplication. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | axpy (Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const |
axpy. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | axpyin (Operand1 &C, const Operand2 &A, const Operand3 &B) const |
axpyin. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | maxpy (Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const |
maxpy. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | maxpyin (Operand1 &C, const Operand2 &A, const Operand3 &B) const |
maxpyin. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | axmy (Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const |
axmy. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | axmyin (Operand1 &C, const Operand2 &A, const Operand3 &B) const |
axmyin. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | muladd (Operand1 &D, const Element &beta, const Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const |
general matrix-matrix multiplication and addition with scaling. | |
template<class Operand1 , class Operand2 , class Operand3 > | |
Operand1 & | muladdin (const Element &beta, Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const |
muladdin. | |
template<class Matrix1 , class Matrix2 > | |
bool | areEqual (const Matrix1 &A, const Matrix2 &B) |
template<class Matrix1 > | |
bool | isZero (const Matrix1 &A) |
template<class Matrix1 > | |
bool | isIdentity (const Matrix1 &A) |
template<class Matrix1 > | |
bool | isIdentityGeneralized (const Matrix1 &A) |
template<class Matrix > | |
std::ostream & | write (std::ostream &os, const Matrix &A) const |
Print matrix. | |
template<class Matrix > | |
std::istream & | read (std::istream &is, Matrix &A) const |
Read matrix. | |
Solutions available for matrix respecting BlasMatrix interface | |
template<class Matrix > | |
Matrix & | inv (Matrix &Ainv, const Matrix &A) const |
Inversion. | |
template<class Matrix > | |
Matrix & | invin (Matrix &Ainv, Matrix &A) const |
Inversion (in place) | |
template<class Matrix > | |
Matrix & | invin (Matrix &A) const |
Inversion (the matrix A is modified) | |
template<class Matrix > | |
Matrix & | div (Matrix &C, const Matrix &A, const Matrix &B) const |
Division. | |
template<class Matrix > | |
Matrix & | inv (Matrix &Ainv, const Matrix &A, int &nullity) const |
Inversion w singular check. | |
template<class Matrix > | |
Matrix & | invin (Matrix &Ainv, Matrix &A, int &nullity) const |
Inversion (the matrix A is modified) w singular check. | |
template<class Matrix > | |
unsigned int | rank (const Matrix &A) const |
Rank. | |
template<class Matrix > | |
unsigned int | rankin (Matrix &A) const |
in-place Rank (the matrix is modified) | |
template<class Matrix > | |
Element | det (const Matrix &A) const |
determinant | |
template<class Matrix > | |
Element | detin (Matrix &A) const |
in-place Determinant (the matrix is modified) | |
Solvers for Matrix (respecting BlasMatrix interface) | |
with Operand as right or left hand side | |
template<class Operand , class Matrix > | |
Operand & | left_solve (Operand &X, const Matrix &A, const Operand &B) const |
linear solve with matrix right hand side. | |
template<class Operand , class Matrix > | |
Operand & | left_solve (const Matrix &A, Operand &B) const |
linear solve with matrix right hand side, the result is stored in-place in B. | |
template<class Operand , class Matrix > | |
Operand & | right_solve (Operand &X, const Matrix &A, const Operand &B) const |
linear solve with matrix right hand side. | |
template<class Operand , class Matrix > | |
Operand & | right_solve (const Matrix &A, Operand &B) const |
linear solve with matrix right hand side, the result is stored in-place in B. | |
template<class Polynomial , class Matrix > | |
Polynomial & | minpoly (Polynomial &P, const Matrix &A) const |
minimal polynomial computation. | |
template<class Polynomial , class Matrix > | |
Polynomial & | charpoly (Polynomial &P, const Matrix &A) const |
characteristic polynomial computation. | |
template<class Polynomial , class Matrix > | |
std::list< Polynomial > & | charpoly (std::list< Polynomial > &P, const Matrix &A) const |
characteristic polynomial computation. | |
template<class Polynomial > | |
Polynomial & | mulpoly (Polynomial &res, const Polynomial &P1, const Polynomial &P2) const |
Interface for all functionnalities provided for BlasMatrix.
Operand1& mul | ( | Operand1 & | C, |
const Operand2 & | A, | ||
const Operand3 & | B | ||
) | const [inline] |
multiplication.
C = A*B
Operand1& add | ( | Operand1 & | C, |
const Operand2 & | A, | ||
const Operand3 & | B | ||
) | const [inline] |
addition.
C = A+B
Operand1& copy | ( | Operand1 & | B, |
const Operand2 & | A | ||
) | const [inline] |
copy.
B = A
Operand1& mul | ( | Operand1 & | C, |
const Element & | alpha, | ||
const Operand2 & | A, | ||
const Operand3 & | B | ||
) | const [inline] |
multiplication with scaling.
C = alpha.A*B
Operand1& mulin_left | ( | Operand1 & | A, |
const Operand2 & | B | ||
) | const [inline] |
In place multiplication.
A = A*B
Operand2& mulin_right | ( | const Operand1 & | A, |
Operand2 & | B | ||
) | const [inline] |
In place multiplication.
B = A*B
Operand1& axpy | ( | Operand1 & | D, |
const Operand2 & | A, | ||
const Operand3 & | B, | ||
const Operand1 & | C | ||
) | const [inline] |
axpy.
D = A*B + C
Operand1& axpyin | ( | Operand1 & | C, |
const Operand2 & | A, | ||
const Operand3 & | B | ||
) | const [inline] |
axpyin.
C += A*B
Operand1& maxpy | ( | Operand1 & | D, |
const Operand2 & | A, | ||
const Operand3 & | B, | ||
const Operand1 & | C | ||
) | const [inline] |
maxpy.
D = C - A*B
Operand1& maxpyin | ( | Operand1 & | C, |
const Operand2 & | A, | ||
const Operand3 & | B | ||
) | const [inline] |
maxpyin.
C -= A*B
Operand1& axmy | ( | Operand1 & | D, |
const Operand2 & | A, | ||
const Operand3 & | B, | ||
const Operand1 & | C | ||
) | const [inline] |
axmy.
D= A*B - C
Operand1& axmyin | ( | Operand1 & | C, |
const Operand2 & | A, | ||
const Operand3 & | B | ||
) | const [inline] |
axmyin.
C = A*B - C
Operand1& muladd | ( | Operand1 & | D, |
const Element & | beta, | ||
const Operand1 & | C, | ||
const Element & | alpha, | ||
const Operand2 & | A, | ||
const Operand3 & | B | ||
) | const [inline] |
general matrix-matrix multiplication and addition with scaling.
D= beta.C + alpha.A*B
Operand1& muladdin | ( | const Element & | beta, |
Operand1 & | C, | ||
const Element & | alpha, | ||
const Operand2 & | A, | ||
const Operand3 & | B | ||
) | const [inline] |
muladdin.
C= beta.C + alpha.A*B.
Division.
C = A B^{-1} ==> C . B = A
Operand& left_solve | ( | Operand & | X, |
const Matrix & | A, | ||
const Operand & | B | ||
) | const [inline] |
linear solve with matrix right hand side.
AX=B
Operand& left_solve | ( | const Matrix & | A, |
Operand & | B | ||
) | const [inline] |
linear solve with matrix right hand side, the result is stored in-place in B.
Operand& right_solve | ( | Operand & | X, |
const Matrix & | A, | ||
const Operand & | B | ||
) | const [inline] |
linear solve with matrix right hand side.
XA=B
Operand& right_solve | ( | const Matrix & | A, |
Operand & | B | ||
) | const [inline] |
linear solve with matrix right hand side, the result is stored in-place in B.
Polynomial& mulpoly | ( | Polynomial & | res, |
const Polynomial & | P1, | ||
const Polynomial & | P2 | ||
) | const [inline] |
bool areEqual | ( | const Matrix1 & | A, |
const Matrix2 & | B | ||
) | [inline] |
bool isZero | ( | const Matrix1 & | A | ) | [inline] |
std::ostream& write | ( | std::ostream & | os, |
const Matrix & | A | ||
) | const [inline] |
Print matrix.
os | Output stream to which matrix is written. |
A | Matrix. |
std::istream& read | ( | std::istream & | is, |
Matrix & | A | ||
) | const [inline] |
Read matrix.
is | Input stream from which matrix is read. |
A | Matrix. |