 |
My Project
debian-1:4.1.2-p1+ds-2
|
Go to the source code of this file.
◆ basis_elt()
Definition at line 422 of file nforder.cpp.
423 if (((
m->rows() == 1) && (i <= m->cols())) || ((
m->cols() == 1) && (i <= m->rows()))) {
425 number t1 =
n_Init(0,
m->basecoeffs());
426 for (
int j=0; ((
j<
m->rows()) || (j<m->cols()));
j++) {
431 number t2 =
n_Init(1,
m->basecoeffs());
436 Werror(
"Error in basis_elt. Not a vector.");
◆ multring()
◆ nforder_delete()
◆ onestep()
◆ pmaximal()
◆ radicalmodpbase()
Definition at line 446 of file nforder.cpp.
481 for (
int i=1;
i<=n;
i++) {
510 for (
int i=1;
i<=n;
i++) {
515 for (
int i=1;
i<=kdim;
i++) {
525 for (
int i=1;
i<=n;
i++) {
527 nbase->setcol(
i, tmp);
◆ rowhnf()
void nforder_delete(nforder *o)
void concatcol(bigintmat *a, bigintmat *b)
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
bigintmat * traceMatrix()
static FORCE_INLINE BOOLEAN n_Greater(number a, number b, const coeffs r)
ordered fields: TRUE iff 'a' is larger than 'b'; in Z/pZ: TRUE iff la > lb, where la and lb are the l...
static FORCE_INLINE BOOLEAN n_IsOne(number n, const coeffs r)
TRUE iff 'n' represents the one element.
void basis_elt(bigintmat *m, int i)
coeffs basecoeffs() const
void multmap(bigintmat *a, bigintmat *m)
bigintmat * bimMult(bigintmat *a, bigintmat *b)
void hnf()
transforms INPLACE to HNF
void skaldiv(number b)
Macht Ganzzahldivision aller Matrixeinträge mit b.
static FORCE_INLINE number n_Add(number a, number b, const coeffs r)
return the sum of 'a' and 'b', i.e., a+b
int kernbase(bigintmat *a, bigintmat *c, number p, coeffs q)
a basis for the nullspace of a mod p: only used internally in Round2. Don't use it.
bool copy(bigintmat *b)
Kopiert Einträge von b auf Bigintmat.
void getColRange(int j, int no, bigintmat *a)
copies the no-columns staring by j (so j...j+no-1) into the pre-allocated a
bigintmat * modhnf(number p, coeffs c)
computes HNF(this | p*I)
int isOne()
is matrix is identity
static FORCE_INLINE number n_Mult(number a, number b, const coeffs r)
return the product of 'a' and 'b', i.e., a*b
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
void getcol(int j, bigintmat *a)
copies the j-th column into the matrix a - which needs to be pre-allocated with the correct size.
number pseudoinv(bigintmat *a)
Speichert in Matrix a die Pseudoinverse, liefert den Nenner zurück.
void setcol(int j, bigintmat *m)
Setzt j-te Spalte gleich übergebenem Vektor (Matrix) m.
void elMult(bigintmat *a, bigintmat *b)
void Werror(const char *fmt,...)
bigintmat * radicalmodpbase(nforder *o, number p, coeffs c)
nforder * onestep(nforder *o, number p, coeffs c)
number multring(bigintmat *nbase, nforder *o, number p)
void inpTranspose()
transpose in place
bool skalmult(number b, coeffs c)
Multipliziert zur Matrix den Skalar b hinzu.