|
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 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] |
| 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. |
1.7.4