This is the namespace all LinBox internal code is in.
More...
|
| template<class Field> |
| void | Zero (const Field &F, typename Field::Element *Z, const size_t ldZ, const size_t lig1, const size_t col1, const size_t lig2, const size_t col2) |
| |
| template<class Field> |
| void | Identity (const Field &F, typename Field::Element *Id, const size_t ldI, const size_t lig1, const size_t col1, const size_t lig2, const size_t col2) |
| | Creates identity matrix in F of size dim1 x dim2.
|
| |
| template<class Field> |
| Field::Element * | RightNullspaceDirect (const Field &F, typename Field::Element *A, const size_t &M, const size_t &N, const size_t &lda, size_t &ker_dim) |
| | The right or left nullspace (kernel or cokernel) of a matrix A We use the LU decomposition.
|
| |
| template<class Randiter, class Field> |
| BlasMatrix< Field > & | random_lu_rank (const Field &F, const Randiter &R, BlasMatrix< Field > &A, int &rank, const RingCategories::ModularTag &tag) |
| |
| template<class Randiter, class Ring> |
| BlasMatrix< Ring > & | random_lu_rank (const Ring &ZZ, const Randiter &R, BlasMatrix< Ring > &A, int &rank, const RingCategories::IntegerTag &tag) |
| |
| template<class Randiter, class Field> |
| BlasMatrix< Field > & | random_rankupdate (Field &F, const Randiter &R, BlasMatrix< Field > &A, int &rank, const RingCategories::IntegerTag &tag) |
| |
This is the namespace all LinBox internal code is in.
◆ Zero()
template<class Field>
| void Zero |
( |
const Field & | F, |
|
|
typename Field::Element * | Z, |
|
|
const size_t | ldZ, |
|
|
const size_t | lig1, |
|
|
const size_t | col1, |
|
|
const size_t | lig2, |
|
|
const size_t | col2 ) |
- Parameters
-
| F | |
| Z | |
| ldZ | |
| lig1 | |
| col1 | |
| lig2 | |
| col2 | |
- Todo
- use fzero
◆ Identity()
template<class Field>
| void Identity |
( |
const Field & | F, |
|
|
typename Field::Element * | Id, |
|
|
const size_t | ldI, |
|
|
const size_t | lig1, |
|
|
const size_t | col1, |
|
|
const size_t | lig2, |
|
|
const size_t | col2 ) |
Creates identity matrix in F of size dim1 x dim2.
- Warning
- diag_num peut être < 0 !
- Bug
- long et size_t ne cohabitent pas bien.
◆ RightNullspaceDirect()
template<class Field>
| Field::Element * RightNullspaceDirect |
( |
const Field & | F, |
|
|
typename Field::Element * | A, |
|
|
const size_t & | M, |
|
|
const size_t & | N, |
|
|
const size_t & | lda, |
|
|
size_t & | ker_dim ) |
The right or left nullspace (kernel or cokernel) of a matrix A We use the LU decomposition.
- Parameters
-
| F | the field in which A lives |
| A | is a matrix whose nullspace we look for. |
| M | number of lines in A |
| N | number of column of A |
| lda | the leading dimension of matrix A |
| ker_dim | the dimension of the kernel |
- Template Parameters
-
- Returns
- a matrix of leading dimension ker_dim whose column vectors span the nullspace of A. Returns
NULL (and not \(\mathbf{0}\)) if ker_dim == 0 .
◆ random_lu_rank() [1/2]
template<class Randiter, class Field>
- Todo
- !!!
- Todo
- RandomPermutation avec P de type [Matrix-Blas]Permutation
- Todo
- : L = [[L1,0],[A,L2]] ;U = [[U1,B],[0,U2]] ; LU = [[ rec(L1,U1), ftrmm(L1,B)],[ftrmm(A,U1),fgemm(A,B)+rec(L2,U2) ]] de même UL
- Todo
- create BMD.applyP(A,P,Tag::Left) ; avec P : BlasPermutation ou P : MatrixPermutation
- Todo
- Todo
- BlasPermutation a un ordre
p et une taille r distinctes !!!
◆ random_lu_rank() [2/2]
template<class Randiter, class Ring>
◆ random_rankupdate()
template<class Randiter, class Field>
- Bug
- do perms ?
- Parameters
-
- Bug
- const !